Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Column generation - cplex column model

    Posted 12/10/12 05:15 PM

    Originally posted by: JorisK


    Dear,
    I'm currently implementing a column generation model in cplex 12.4 using the Java interface.
    Each time the master problem is solved, a set of dual variables is obtained which in turn is used to solve the pricing problem. The pricing model then generates one or more columns, which are added to the model (using IloColumn's). I however encounter some problems with the dual variables:

    I get different results, depending on whether I set the following parameter:
    master.setParam(IloCplex.IntParam.AdvInd, 0); //Disable advances start

    1.
    Whenever I do NOT set the above parameter, the master problem starts from the solution it obtained at the previous column generation iteration.

    2. When I do set the above parameter, the master problem starts from a fresh solution.

    Attached is a simplified column generation algorithm. Two columns are added. Depending on whether I set the above parameter, the dual solution obtained AFTER the second iteration is different.

    1. The dual solution (AdvInd=0):

    Objective: 144.0
    Dual values: custConstrValues: http://-0.0, 144.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0
    steinerConstrValues: http://-0.0, -0.0, -0.0, -0.0, -0.0
    pi: -0.0

    2. The dual solution (AdvInd=1)(default):

    Objective: 144.0
    Dual values: custConstrValues: http://84.0, 60.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0
    steinerConstrValues: http://-0.0, -0.0, -0.0, -0.0, -0.0
    pi: -0.0

    It seems to matter a lot whether I set the above parameter. With AdvInd=0, my column generation seems to work fine: my problem instances terminates after a finite number of iterations. Without that parameter, even the simplest instance does not seem to terminate. Any clue what could go wrong? Why would I get different results in the attached test case, depending on whether I set that specific parameter?

    Thank you in advance.
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Column generation - cplex column model

    Posted 01/02/13 12:09 PM

    Originally posted by: SystemAdmin


    I did not look at your code but it is quite expected that different settings of AdvInd result in different solution vectors (note that the optimal objective function value should be the same in any case).
    If your problem has multiple optimal solutions (and most problems do) then the point from which optimization starts may well influence which of the optimal solutions is found.
    And I guess different dual vectors will result in different columns being generated, right? And this in turn may heavily influence performance of the algorithm.
    So as far as I can tell everything you describe here is expected.
    #CPLEXOptimizers
    #DecisionOptimization