Originally posted by: DSL
Dear all,
I am using CPLEX 12.5 concert technology to implement a column generation (CG) algortihm to solve some large-scale LP.
Since my program got stuck after a few iterations during some test runs, I was debugging my code and experienced a really strange phenomenon.
At first glance, the reason why the CG algorithm failed was that it ran into an infinite loop repeatedly finding a specific cloumn with positive reduced cost, but this column was already existing in the master problem. (Reduced costs should be positive in this case since the master is a maximization problem.)
I immediately checked that none of the following causes were responsible for the failure:
1) Dual prices from the master are accessed correctly. (No unnecessary copies of the dual prices are made, i.e., I feed the pricing problem using the original values from the cplex instance which solves the master problem.)
2) Reduced costs are computed correctly and there is no confusion in the definition of 'reduced costs'.
Out of curiosity, I checked the validity of the dual prices coming from the master. Therefore, I started the CPLEX interactive optimizer, solved a given instance of the master, and compared the dual prices against the values concert technology told me within my application.
Surprisingly, both sets of dual prices were remarkably different. Furthermore, using the dual prices from the interactive optimizer, the reduced cost of the generated column were zero. Thus, if concert had used the "right" dual prices, then the pricer would not have priced out an existing column (at least not with positive reduced cost).
Does anyone have had similar experience? Is there anything that can be done to be sure that reduced costs are always computed based on correct (not misleading) dual prices?
Any comments are greatly appreceiated.
Best regards,
David
#CPLEXOptimizers#DecisionOptimization