Originally posted by: Perth2
I use CPLEX with Java in a column generation context, having a restricted master problem (RPM) that I add columns to and that I solve as an LP.
I want to set the starting solution for the RMP, so as to let CPLEX solve it as effectively as possible. I have experimented with several different setups (setting of primal values, dual values, reduced costs, slacks, and setting the algorithm to Primal or Dual). However I can not see which setup works the best generally. Moreover, I am not able to see a significant speed-up in any of the setups I have tried.
Since I am adding a new column in the primal problem in each iteration, a new constraint is added to the dual problem. This constraint may make the former dual solution infeasible. However, the former primal solution is still feasible.
Should I therefore use cplex.setStart() with the former primal solution (prior to adding new columns)?
Is it necessary, in this case, to fix IloCplex.Param.RootAlgorithm to IloCplex.Algorithm.Primal so as to make sure the primal starting solution is used, and not the dual, which I know is probably infeasible?
If I have a starting solution, should't CPLEX then be able to find the next optimum using a number of simplex iterations less than or equal to the number of columns I have added? I do not observe this.
How can I see if CPLEX uses a given starting solution?
#CPLEXOptimizers#DecisionOptimization