Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Change parameters (costs) in Dantzig-Wolfe Sub Problem

    Posted 04/11/14 09:25 AM

    Originally posted by: Allexandre


    Hi,

    I built a Dantzig-Wolfe decomposition model and in each iteration I have to update the pi_[j] value. This  value came from j dual variables from j constraints in my Master Problem. I have to do this several times, inside a loop, until I reach the optimum value. But, It looks like the values that I catch from dual are not being set to the subproblem objective function.

     My subproblem objective function

    Thanks.


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Change parameters (costs) in Dantzig-Wolfe Sub Problem

    Posted 04/14/14 03:35 AM

    You post looks incomplete. In any case, you may want to try to explicitly re-create the objective function instead of updating it:

    // Remove the old objective function.
    IloObjective oldObjective = cplex.getObjective();
    cplex.getModel().remove(oldObjective);
    oldObjective.end();
    // Setup a new objective function:
    IloObjective newObjective = ...;
    cplex.getModel().add(newObjective);

    If you just change cplex.getObjective().getExpr() then the change will not be propagated to the IloCplex instance that has extracted the objective. You have to at least to cplex.getObjective().setExpr() to notify the IloCplex instance about changes to the objective function. See also the reference documentation of class IloObjective.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Change parameters (costs) in Dantzig-Wolfe Sub Problem

    Posted 04/14/14 07:08 AM

    Originally posted by: Allexandre


    Hi Daniel,

    Here is the link to the image which shows my objective function from Subproblem: https://www.dropbox.com/s/feloazsgw0ciq7m/dantzig-wolfe_sp.jpg

    To solve this, I used the IloObjective::setLinearCoef

    when I was creating the model, I kept its coeficients equal 1, for x variable. During the running, I set the new coeficients as (c[i,j] - pi[j]) for each variable x.

    But now, in the Master Problem, which is minimize an error variable e, which has coefficient equal 1, I have to update the coeficients for the master's constraints. Is there any function for this?

    Thanks.


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Change parameters (costs) in Dantzig-Wolfe Sub Problem

    Posted 08/05/14 03:02 AM

    If you store your constraints as an array of IloRange then you can use IloRange::setLinearCoef() or IloRange::setLinearCoefs() to change the coefficient of a variable in a constraint.


    #CPLEXOptimizers
    #DecisionOptimization