Decision Optimization

Decision Optimization

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

 View Only
  • 1.  Updating lower and upper bounds while solving the problem by B&C

    Posted Wed May 04, 2016 09:31 AM

    Originally posted by: OkanDukkanci


    Hi everyone,

    I'm working on a mixed integer problem. To solve this problem, I divided into two subproblem and I try to solve the first subproblem by using the traditional B&C version of CPLEX.

    While solving the first subproblem, I would like to change lower and upper bounds that are found by B&C in order not to prune any nodes that can lead to the optimal solution for the main problem.

    So, basically, is there any way to update lower and upper bounds while solving the problem by B&C?


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Updating lower and upper bounds while solving the problem by B&C

    Posted Fri May 06, 2016 01:43 AM

    Not sure I understand correctly. Can you please clarify

    1. By "lower and upper" bound you mean the global primal and dual bounds, not the bounds of variables?
    2. By "updating" you actually mean relaxing, that is, you want to change the bounds to something less strict?

    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Updating lower and upper bounds while solving the problem by B&C

    Posted Mon May 09, 2016 04:27 AM

    Originally posted by: OkanDukkanci


    1) Yes, I mean global primal and dual bounds

    2) Yes, by "updating", I mean less strict bounds.


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Updating lower and upper bounds while solving the problem by B&C

    Posted Mon May 09, 2016 05:57 AM

    Relaxing global bounds is not possible with CPLEX. And doing that looks odd to me since B&B is all about tightening the global bounds as much as possible.

    Could it be that all you need is a lazy constraint callback? If the solution process on the first model finds a solution for the first model then the callback will be presented that solution. The callback can either accept solution (in case it is feasible for the second model as well) or produce an additional constraint that cuts off this solution.


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: Updating lower and upper bounds while solving the problem by B&C

    Posted Thu May 12, 2016 06:24 AM

    Originally posted by: OkanDukkanci


    Actually, I tried a lazy constraint callback, but it increases CPU time too much. So, I try to find different ways to solve my problem.

    I have another question. Is it possible to change the "prune" feature of B&C in CPLEX? I mean, can I turn off the default version of pruning and then use prune() method?

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: Updating lower and upper bounds while solving the problem by B&C

    Posted Fri May 13, 2016 12:58 AM

    No, you cannot override this behavior. Not all nodes go through the branch callback. Once a new incumbent is found, all nodes with an objective estimate that exceeds the new primal bound are pruned. For these nodes the branch callback is not invoked.

    What you could try to do is to use the branch callback for all branching decisions and supply a worse objective estimate for all newly created nodes. But I am not sure that this is a good idea. Like I said, B&B is all about using the tightest bounds possible.


    #CPLEXOptimizers
    #DecisionOptimization