Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

Lagrangian relaxation - cutting plane procedure

  • 1.  Lagrangian relaxation - cutting plane procedure

    Posted Fri September 25, 2015 06:14 AM

    Originally posted by: Bolomanonbolo


    Hi, I am coding in C and using CPLEX 12.6 via callable libraries.

    I implemented an iterative procedure for solving a Lagrangian relaxation for a minimization problem. In each iteration, the master problem is an LP which gives an upper bound, while the subproblem is a MISOCP, which gives me a lower bound. In particular, in each iteration a constraint is added to the master problem via CPXaddwors, while some coefficients of the objective function are changed.

    My issue regards the master problems. I am using CPXlpopt for solving them. Consider the following problem RS_8_2-RLMP_2-nopool-I6-Node5.lp.

    If solved inside the algorithm, the optimal solution value is 80.397247 and CPLEX via CPXsolution displays the optimal solution

    mu[1]=100000.00
    mu[2]=100000.00
    mu[3]=21.26
    mu[4]=0.00
    mu[5]=0.00
    mu[6]=100000.00
    mu[7]=100000.00
    mu[8]=0.00
    theta=-199970.43

    While if I solve it in a new code, after reading the lp file with CPXreadcopyprob, the solution value is the same but the optimal solution value reported is:

    mu[1]=21.26
    mu[2]=0.00
    mu[3]=0.00
    mu[4]=0.00
    mu[5]=0.00
    mu[6]=0.00
    mu[7]=0.00
    mu[8]=0.00
    theta=29.57

     

    For the sake of my procedure, I would need CPLEX to always give me the second solution, the one with "small" mu.

    Is there a way to do so?

     

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Lagrangian relaxation - cutting plane procedure

    Posted Mon October 19, 2015 04:12 AM

    Originally posted by: BoJensen


    LP problems can be both primal and dual degenerated i.e have multiple alternative *optimal* solutions. In this case the solution is dual degenerated. The optimizer will pick the first optimal solution it finds, simply because it has no other information than the specified mathematical model.  It's up to the user to break the degeneracy the way he/she wishes.  
     


    #CPLEXOptimizers
    #DecisionOptimization