[Coin-lpsolver] ClpSimplex::crash () aborts on an MPS with free variables
Ariel Landau
ariel1127 at gmail.com
Thu Mar 1 17:21:07 EST 2007
Hello!
I've recently come across an MPS file that causes ClpSimplex::crash() to
call abort ().
The exact place of the abort call is shown in the following excerpt from
ClpSimplex.cpp (with row numbers as of March 1st)
6405 switch(getColumnStatus(iColumn)) {
6406
6407 case basic:
6408 thisWay=0;
6409 case isFixed:
6410 break;
6411 case isFree:
6412 case superBasic:
6413 if (djValue<-dualTolerance)
6414 thisWay = 1;
6415 else if (djValue>dualTolerance)
6416 thisWay = -1;
6417 else
6418 { thisWay =0; abort();} <--------------- EXECUTION ABORTS
HERE WITH djValue == 0 && dualTolerance == 1e-07
6419 break;
6420 case atUpperBound:
6421 if (djValue>dualTolerance)
6422 { thisWay =-1; abort();}
6423 else if (djValue<-dualTolerance)
6424 thisWay = -3;
6425 else
6426 thisWay = -2;
6427 break;
6428 case atLowerBound:
6429 if (djValue<-dualTolerance)
6430 { thisWay =1; abort();}
6431 else if (djValue>dualTolerance)
6432 thisWay = 3;
6433 else
6434 thisWay = 2;
6435 break;
6436 }
For anyone that wants to take a look, my MPS is available online at
http://ar.geocities.com/ariellandau/test_mps.zip
As it might be expected from the code excerpt above, my MPS does indeed
contain a bunch of FR variable bounds.
And if I replace these FR bounds by very large negative lower bounds (e.g.,
larger in magnitude than any of my negative variables at the optimal
solution) the abort disappears.
Any insight will be much appreciated.
Sincerely,
Ariel Landau
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20070302/e2a1bdcb/attachment.html>
More information about the Clp
mailing list