[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