[Coin-lpsolver] Bug in RowStatus: Lower vs. Upper Bound

Ulrich Spoerlein spoerlein at informatik.uni-wuerzburg.de
Tue Oct 18 06:01:37 EDT 2005


Good morning everyone,

There is a bug in CLP which I was unable to find yet. The symptoms are
as follows:

ClpSimplex::getRowStatus() is returning '3' (==atLowerBound) when in
fact the row is at it's upper bound, as can be seen from the solution or
from the basis.

I printed all the column and row stats and the basis, the whole document
is at [1].

It looks roughly like this:
getBasis().print() shows these columns
BLBLLBLLLBLLBLBBBLBBL...
and I get these stats from getColumnStatus()
13133133313313111311...

So this is fine and corresponds to the definition of the Status enum.

The rows are different:
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBUBBBBUBBBBBBBBBUBB
vs.
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111311113111111111311

So getBasis() tells me, some are at the upper bound (which in fact they
are!) but getRowStatus() is returning 3 which is defined as
"atLowerBound".

I have no clue to what's going on here.

Another thing: Shouldn't fixed cols/rows be printed as 'F' by getBasis()
and not as 'U' or 'L'?

[1] http://www.galgenberg.net/~q/clp_basis.txt

Ulrich Spoerlein
-- 
 PGP Key ID: F0DB9F44				Encrypted mail welcome!
Fingerprint: F1CE D062 0CA9 ADE3 349B  2FE8 980A C6B5 F0DB 9F44
Ok, which part of "Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn."
didn't you understand?



More information about the Clp mailing list