[Coin-lpsolver] ClpSimplex::crash () aborts on an MPS with free variables

John J Forrest jjforre at us.ibm.com
Fri Mar 2 16:25:40 EST 2007


Ariel,

Vernon Austel has looked into this and determined that it does no harm 
taking out the abort() and your submitted problem solves.

So, as simple is good, the aborts have vanished.

John Forrest



"Ariel Landau" <ariel1127 at gmail.com> 
Sent by: coin-lpsolver-bounces at list.coin-or.org
03/01/2007 05:21 PM

To
coin-lpsolver at list.coin-or.org
cc

Subject
[Coin-lpsolver] ClpSimplex::crash () aborts on an MPS with free variables






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
_______________________________________________
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/20070302/38d076a7/attachment.html>


More information about the Clp mailing list