[Coin-lpsolver] optimality of a dual solution after rhs change
John J Forrest
jjforre at us.ibm.com
Fri Mar 10 16:04:49 EST 2006
Stefan,
I will correspond with you directly as it is getting technical (and maybe
boring to coin-lpsolver).
The enableSimplexInterface was an attempt to let users build their own
algorithms in the way you are doing but it gets very complex and maybe was
not such a good idea.
John Forrest
Stefan Vigerske <stefan at mathematik.hu-berlin.de>
Sent by: coin-lpsolver-bounces at list.coin-or.org
03/10/2006 03:42 PM
To
coin-lpsolver at list.coin-or.org
cc
Subject
Re: [Coin-lpsolver] optimality of a dual solution after rhs change
Hi,
> As I thought checkSolution was not doing quite what you wanted. It left
> the slack variable super basic at it's original value so complementarity
> was lost. What you wanted was for all non-basic variables to be at
> indicated bound and then the values of the basic variables computed.
>
> I have modified checkSolution() to checkSolution(int setAtBounds=0).
This
> means that default behavior is same but if setAtBounds is 1 then values
> will be recomputed if any primal values moved while ==2 will always
> recompute. So try checkBounds(1) and see if that helps.
Thanks a lot for the effort. Yes, now the dual infeasiblity is vanished
after
a checkBounds(1). That's great. :-)
But actually not all I needed. I also would like to know if this dual
point is
optimal. I've tried several ways now to force Clp to make just one step
and
to check if the dual changes by that.
1. When I call ClpSimplex::dualPivotResult() it ends in an abort in
ClpSimplexDual::pivotResult().
2. When I switch off the scaling by ClpModel::scaling(0) and call
ClpSimplex::pivot(), then this calls ClpSimplex::unpack() in line 6474,
this
calls ClpPackedMatrix::unpack() in line 2441, this calls
CoinIndexedVector::add() in line 2114, which crashes somehow.
3. When I set the iteration limit to 1, and make a resolve, I can see no
change in the primal infeasiblities or dual value. Increasing the limit to
5
or 10 does not change anything too. Not limiting it, so doing a complete
resolve, shows that he requires around 40-50 iterations.
Is there any method to see if he needs to make a change in the dualBasis
to
improve optimality of the dual solution?
Thanks a lot of the help,
I hope it don't take too much time. If so, I might be able to live with a
complete presolve and comparision of the dual values afterwards :-),
Stefan
--
Stefan Vigerske
Humboldt University Berlin, Numerical Mathematics
http://www.math.hu-berlin.de/~stefan
_______________________________________________
Coin-lpsolver mailing list
Coin-lpsolver at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/coin-lpsolver
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20060310/c76029f2/attachment.html>
More information about the Clp
mailing list