Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only
  • 1.  how to stay close to simple branch-and-bound

    Posted Thu June 28, 2018 05:50 PM

    Originally posted by: srinit34


    Hi

    I have a branching strategy implemented in my branch callback.

    How to stay close to simple branch-and-bound ? I do not want CPLEX to add or remove anything from the model, like cuts or constraints, or variables.

    I have used these:

            cplex.setParam( IloCplex.Param.MIP.Strategy.HeuristicFreq , -ONE);
            cplex.setParam(IloCplex.Param.MIP.Limits.CutPasses, -ONE);
            cplex.setParam(IloCplex.Param.Preprocessing.Presolve, false);

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: how to stay close to simple branch-and-bound

    Posted Fri June 29, 2018 01:44 AM

    That already looks good. Are you seeing unexpected things? You may also want to disable dynamic search if you want to have "plain old B&B". Other things you may explicitly want to disable is node presolve and probing.

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: how to stay close to simple branch-and-bound

    Posted Fri June 29, 2018 07:58 AM

    Originally posted by: srinit34


    Thank you for comment.

    I already have a branch callback so it is single thread traditional.

    I have added:

            cplex.setParam(IloCplex.Param.MIP.Strategy.PresolveNode, -ONE);
            cplex.setParam(IloCplex.Param.MIP.Strategy.Probe, -ONE);

    I also tested with MIP emphasis set to best-bound, but for one MIP (p6b) I saw that CPLEX is unable to solve the MIP to completion even after several days.

    But I guess that is not really unexpected.


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: how to stay close to simple branch-and-bound

    Posted Fri June 29, 2018 08:44 AM

    At least it is not surprising that the running time explodes. You are disabling everything that makes the solution strategy reasonable in practice :-)

    For model p6b you can for example see, that in a regular solve almost all feasible solutions found come from heuristics. Also, on this model cuts quickly raise the best bound from something around -231 to something around -70 (the optimal solution being -63). With these two features disabled you have to find all these things by enumeration and that can of course take quite a while.

    Is strong branching allowed in your framework? That may improve running time a little.


    #CPLEXOptimizers
    #DecisionOptimization