Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Continuous Callback question

    Posted 05/27/14 03:28 PM

    Originally posted by: JDalal


    I have experience with correct implementation of Benders Decomposition with Lazy constraint callback for MIPs.

    Recently, I am dealing with a very large LP which is taking unacceptably long time by cplex. So,  I was thinking to decompose the LP in Bender's fashion and use callback as done for MIP.  I know that in MIP, whenever cplex finds an integer-feasible solution, the callback code is invoked. Is it same for continuous callback?   When I tried to query the master problem's (clarifying again: it is LP, not MIP) solution vector inside my callback code, I got  "no solution exists". Can somebody clarify whether it is possible to query a LP's decision variable through callback (I assume, it is invoked  whenever cplex gets a feasible LP solution) at the time cplex is still  solving it? Thanks in advance for any suggestion.


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Continuous Callback question

    Posted 05/27/14 03:46 PM

    Originally posted by: T_O


    Please remember that - assuming you are using the dual simplex method - you won't find any feasible solution during the solution process. The first primal feasible solution will be optimal.

    I guess not using the dual simplex wouldn't make any sense either, as you want to have warm start capabilities during Benders Decomposition.

    Best regards,
    Thomas


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Continuous Callback question

    Posted 06/03/14 03:06 AM

    What callback did you use? The title of your question suggests that you are using a ContinuousCallback? That callback does not even have a getValue() method, so how did you attempt to query the current solution?

    You can use a lazy constraint callback with an LP as well. You just have to force the model type to be MIP. This can be done by adding a dummy integer variable (this variable will be eliminated by presolve anyway).


    #CPLEXOptimizers
    #DecisionOptimization