Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  which callback to use for lower bounds?

    Posted 10/01/12 02:50 PM

    Originally posted by: yli41


    I am using cplex 12.2 with concert to solve a minimization MIP problem.
    For the branch and bound algorithm, lower bounds are taken from solving the linear relaxation at each node.
    Suppose now I have some heuristics at the node and it gives better lower bound than the LP bound, which callback can I use to enforce this new bound to be the bound of the node rather than the LP bound?
    Thanks!
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: which callback to use for lower bounds?

    Posted 10/02/12 09:33 AM

    Originally posted by: SystemAdmin


    A branch-and-bound algorithm cannot make too much use of such a lower bound. But still, you could do one of the following:
    1. Use a cut callback and add a cut "objective function >= lower bound". This is usually not recommended since it is observed to degrade solver performance.
    2. Use a branch callback. If your lower bound at the current node exceeds the incumbent objective function then you can safely prune the node.
    3. Use a branch callback and create the same nodes that CPLEX would create. However, instead of using the objective function estimate that CPLEX provides use the one that you calculated. You would have to of course make sure that this estimate does not decrease within a subtree. This way CPLEX can prune the nodes for you. I never tried that myself but I think it should work.
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: which callback to use for lower bounds?

    Posted 10/02/12 10:06 AM

    Originally posted by: yli41


    I have tried 1 and 2, and wanted to see if there is better way to do it. I will try 3 and see. Thank you very much!
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: which callback to use for lower bounds?

    Posted 10/02/12 09:34 AM

    Originally posted by: SystemAdmin


    A branch-and-bound algorithm cannot make too much use of such a lower bound. But still, you could do one of the following:
    1. Use a cut callback and add a cut "objective function >= lower bound". This is usually not recommended since it is observed to degrade solver performance.
    2. Use a branch callback. If your lower bound at the current node exceeds the incumbent objective function then you can safely prune the node.
    3. Use a branch callback and create the same nodes that CPLEX would create. However, instead of using the objective function estimate that CPLEX provides use the one that you calculated. You would have to of course make sure that this estimate does not decrease within a subtree. This way CPLEX can prune the nodes for you. I never tried that myself but I think it should work.
    #CPLEXOptimizers
    #DecisionOptimization