I'm currently using CPLEX to solve a (very large) linear program produced by the Reformulation Linearization Technique, within my own branch-and-bound framework. I'm solving the LP with the dual simplex algorithm. After a fixed number of iterations, I'd like to stop the solver and obtain a lower (dual) bound on my minimization problem. Of course, I can obtain the dual values via IloCplex.getDuals(), but is there a way to get just the dual objective value directly using the Java API?
Apologies for the simple question, but I've been unable to find the answer after scouring the Java API docs and the discussion forum here.
Thanks a lot,
Pinned topic Dual bound for a continuous optimization problem?
Answered question This question has been answered.
Unanswered question This question has not been answered yet.
Updated on 2012-12-05T22:27:37Z at 2012-12-05T22:27:37Z by SystemAdmin
Re: Dual bound for a continuous optimization problem?2012-12-04T14:35:34ZThis is the accepted answer. This is the accepted answer.A quick addendum to my question: I found a CPLEX tech note that discusses how to compute the dual objective using getDuals(), getReducedCosts(), getLB(), and getUB(). Of course, this is what I'm trying to avoid.
So the question is still open: is there a Java API call to obtain the dual bound after running Dual Simplex?
Re: Dual bound for a continuous optimization problem?2012-12-04T22:37:34ZThis is the accepted answer. This is the accepted answer.It looks like calling IloCplex::getObjValue() does exactly what I want when the Simplex algorithm terminates early. That is, when using Dual simplex it returns the dual objective, and when using Primal simplex it returns the primal objective.