Hello!<br><br>I've recently come across an MPS file that causes ClpSimplex::crash() to call abort ().<br>The exact place of the abort call is shown in the following excerpt from ClpSimplex.cpp (with row numbers as of March 1st)
<br><br>6405 switch(getColumnStatus(iColumn)) {<br>6406<br>6407 case basic:<br>6408 thisWay=0;<br>6409 case isFixed:<br>6410 break;<br>6411 case isFree:
<br>6412 case superBasic:<br>6413 if (djValue<-dualTolerance)<br>6414 thisWay = 1;<br>6415 else if (djValue>dualTolerance)<br>6416 thisWay = -1;<br>6417 else
<br>6418 { thisWay =0; abort();} <--------------- EXECUTION ABORTS HERE WITH djValue == 0 && dualTolerance == 1e-07<br>6419 break; <br>6420 case atUpperBound:
<br>6421 if (djValue>dualTolerance)<br>6422 { thisWay =-1; abort();}<br>6423 else if (djValue<-dualTolerance)<br>6424 thisWay = -3;<br>6425 else<br>6426 thisWay = -2;
<br>6427 break;<br>6428 case atLowerBound:<br>6429 if (djValue<-dualTolerance)<br>6430 { thisWay =1; abort();}<br>6431 else if (djValue>dualTolerance)<br>
6432 thisWay = 3;<br>6433 else<br>6434 thisWay = 2;<br>6435 break;<br>6436 }<br><br>For anyone that wants to take a look, my MPS is available online at <a href="http://ar.geocities.com/ariellandau/test_mps.zip">
http://ar.geocities.com/ariellandau/test_mps.zip</a><br>As it might be expected from the code excerpt above, my MPS does indeed contain a bunch of FR variable bounds.<br>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.<br><br>Any insight will be much appreciated.<br><br>Sincerely,<br><br>Ariel Landau<br><br>