[Scip] SCIPlpiIgnoreInstability

Sebastian Ruther Sebastian.Ruther at uon.edu.au
Wed Dec 5 02:37:30 MET 2012


  Hello,

I have an issue when setting "lp/checkstability" to FALSE. SCIP asserts 
in function SCIPlpiIgnoreInstability when the lpi->solstat is 
CPX_STAT_ABORT_IT_LIM.

In some iteration the call to solveNodeInitialLP returned 
SCIP_LPSOLSTAT_OBJLIMIT. As is described there, it then solves without 
fastmip for 1 iteration.
For this, dual simplex returns CPX_STAT_ABORT_IT_LIM. In lpSolveStable 
it calls SCIP_CALL( SCIPlpiIgnoreInstability(lp->lpi, &success) ); and 
asserts there. The call stack is below. Note that I am still running 
SCIP 2.1.1 (I am finishing the Ph.D in 2 months so would like to avoid 
updating)


In SCIPlpiIgnoreInstability it says:

    assert(lpi->solstat == CPX_STAT_UNBOUNDED
       || lpi->solstat == CPX_STAT_NUM_BEST
       || lpi->solstat == CPX_STAT_OPTIMAL_INFEAS);

    /* replace instable status with optimal status */
    if( lpi->solstat == CPX_STAT_NUM_BEST || lpi->solstat == 
CPX_STAT_OPTIMAL_INFEAS )
       lpi->solstat = CPX_STAT_OPTIMAL;

can I add  "|| lpi->solstat == CPX_STAT_ABORT_IT_LIM" to the if statement?
Also, in the assert you check for CPX_STAT_UNBOUNDED. Should that status 
also be reset to CPX_STAT_OPTIMAL?

Regards,
Sebastian




      binscip.exe!SCIPlpiIgnoreInstability(SCIP_LPi * 
lpi=0x0000000001365ae0, unsigned int * success=0x000000000020e6d4)  Line 
2986 + 0x44 bytes    C
 >    binscip.exe!lpSolveStable(SCIP_Lp * lp=0x000000000114bad0, 
SCIP_Set * set=0x000000000042dd80, SCIP_Stat * stat=0x0000000001d7f3a0, 
SCIP_LPAlgo lpalgo=SCIP_LPALGO_DUALSIMPLEX, int itlim=1, int 
harditlim=-1, unsigned int resolve=0, int fastmip=1, unsigned int 
tightfeastol=0, unsigned int fromscratch=0, unsigned int keepsol=0, 
unsigned int * timelimit=0x000000000020e8e4, unsigned int * 
lperror=0x000000000020f0e4)  Line 11988 + 0x16 bytes    C

      binscip.exe!lpSolve(SCIP_Lp * lp=0x000000000114bad0, SCIP_Set * 
set=0x000000000042dd80, SCIP_Stat * stat=0x0000000001d7f3a0, SCIP_LPAlgo 
lpalgo=SCIP_LPALGO_DUALSIMPLEX, int resolveitlim=1, int harditlim=-1, 
unsigned int needprimalray=0, unsigned int needdualray=0, unsigned int 
resolve=1, int fastmip=1, unsigned int tightfeastol=0, unsigned int 
fromscratch=0, unsigned int keepsol=0, unsigned int * 
lperror=0x000000000020f0e4)  Line 12339 + 0x8c bytes    C

      binscip.exe!SCIPlpSolveAndEval(SCIP_Lp * lp=0x000000000114bad0, 
BMS_BlkMem * blkmem=0x000000000042bce0, SCIP_Set * 
set=0x000000000042dd80, SCIP_Stat * stat=0x0000000001d7f3a0, 
SCIP_EventQueue * eventqueue=0x0000000000c03e00, SCIP_EventFilter * 
eventfilter=0x000000000eccbe00, SCIP_Prob * prob=0x0000000000bb5c80, int 
itlim=-1, unsigned int limitresolveiters=1, unsigned int aging=1, 
unsigned int keepsol=0, unsigned int * lperror=0x000000000020f0e4)  Line 
12957 + 0x84 bytes    C

      binscip.exe!solveNodeInitialLP(BMS_BlkMem * 
blkmem=0x000000000042bce0, SCIP_Set * set=0x000000000042dd80, SCIP_Stat 
* stat=0x0000000001d7f3a0, SCIP_Prob * prob=0x0000000000bb5c80, 
SCIP_Primal * primal=0x0000000000b9fc20, SCIP_Tree * 
tree=0x0000000001dbaf30, SCIP_Lp * lp=0x000000000114bad0, 
SCIP_Pricestore * pricestore=0x0000000000c5eeb0, SCIP_SepaStore * 
sepastore=0x0000000000d9beb0, SCIP_BranchCand * 
branchcand=0x0000000000b9e830, SCIP_EventFilter * 
eventfilter=0x000000000eccbe00, SCIP_EventQueue * 
eventqueue=0x0000000000c03e00, unsigned int * cutoff=0x000000000020f3a4, 
unsigned int * lperror=0x000000000020f0e4)  Line 1175 + 0x79 bytes    C

      binscip.exe!solveNodeLP(BMS_BlkMem * blkmem=0x000000000042bce0, 
SCIP_Set * set=0x000000000042dd80, SCIP_Stat * stat=0x0000000001d7f3a0, 
SCIP_Prob * origprob=0x0000000001e0c360, SCIP_Prob * 
transprob=0x0000000000bb5c80, SCIP_Primal * primal=0x0000000000b9fc20, 
SCIP_Tree * tree=0x0000000001dbaf30, SCIP_Lp * lp=0x000000000114bad0, 
SCIP_Pricestore * pricestore=0x0000000000c5eeb0, SCIP_SepaStore * 
sepastore=0x0000000000d9beb0, SCIP_Cutpool * cutpool=0x000000000135df30, 
SCIP_BranchCand * branchcand=0x0000000000b9e830, SCIP_Conflict * 
conflict=0x00000000018ac320, SCIP_EventFilter * 
eventfilter=0x000000000eccbe00, SCIP_EventQueue * 
eventqueue=0x0000000000c03e00, unsigned int initiallpsolved=0, unsigned 
int * cutoff=0x000000000020f3a4, unsigned int * 
unbounded=0x000000000020f3c4, unsigned int * lperror=0x000000000020f0e4, 
unsigned int * pricingaborted=0x000000000020f0c4)  Line 2370 + 0xa7 
bytes    C

      binscip.exe!propAndSolve(BMS_BlkMem * blkmem=0x000000000042bce0, 
SCIP_Set * set=0x000000000042dd80, SCIP_Stat * stat=0x0000000001d7f3a0, 
SCIP_Prob * origprob=0x0000000001e0c360, SCIP_Prob * 
transprob=0x0000000000bb5c80, SCIP_Primal * primal=0x0000000000b9fc20, 
SCIP_Tree * tree=0x0000000001dbaf30, SCIP_Lp * lp=0x000000000114bad0, 
SCIP_Relaxation * relaxation=0x0000000000b9f860, SCIP_Pricestore * 
pricestore=0x0000000000c5eeb0, SCIP_SepaStore * 
sepastore=0x0000000000d9beb0, SCIP_BranchCand * 
branchcand=0x0000000000b9e830, SCIP_Cutpool * 
cutpool=0x000000000135df30, SCIP_Conflict * conflict=0x00000000018ac320, 
SCIP_EventFilter * eventfilter=0x000000000eccbe00, SCIP_EventQueue * 
eventqueue=0x0000000000c03e00, SCIP_Node * focusnode=0x0000000025cf0520, 
int actdepth=16, unsigned int timingmask=1, unsigned int propagate=1, 
unsigned int solvelp=1, unsigned int solverelax=1, unsigned int 
forcedlpsolve=0, int * nlperrors=0x000000000020efc4, unsigned int * 
fullpropagation=0x000000000020f084, unsigned int * 
propagateagain=0x000000000020f064, unsigned int * 
initiallpsolved=0x000000000020f004, unsigned int * 
solvelpagain=0x000000000020f044, unsigned int * 
solverelaxagain=0x000000000020f024, unsigned int * 
cutoff=0x000000000020f3a4, unsigned int * unbounded=0x000000000020f3c4, 
unsigned int * lperror=0x000000000020f0e4, unsigned int * 
pricingaborted=0x000000000020f0c4, unsigned int * 
forcedenforcement=0x000000000020f104)  Line 3038 + 0x102 bytes    C

      binscip.exe!solveNode(BMS_BlkMem * blkmem=0x000000000042bce0, 
SCIP_Set * set=0x000000000042dd80, SCIP_Stat * stat=0x0000000001d7f3a0, 
SCIP_Prob * origprob=0x0000000001e0c360, SCIP_Prob * 
transprob=0x0000000000bb5c80, SCIP_Primal * primal=0x0000000000b9fc20, 
SCIP_Tree * tree=0x0000000001dbaf30, SCIP_Lp * lp=0x000000000114bad0, 
SCIP_Relaxation * relaxation=0x0000000000b9f860, SCIP_Pricestore * 
pricestore=0x0000000000c5eeb0, SCIP_SepaStore * 
sepastore=0x0000000000d9beb0, SCIP_BranchCand * 
branchcand=0x0000000000b9e830, SCIP_Cutpool * 
cutpool=0x000000000135df30, SCIP_Conflict * conflict=0x00000000018ac320, 
SCIP_EventFilter * eventfilter=0x000000000eccbe00, SCIP_EventQueue * 
eventqueue=0x0000000000c03e00, unsigned int * cutoff=0x000000000020f3a4, 
unsigned int * unbounded=0x000000000020f3c4, unsigned int * 
infeasible=0x000000000020f3e4, unsigned int * 
restart=0x000000000020f5d4, unsigned int * 
afternodeheur=0x000000000020f424)  Line 3273 + 0x1d2 bytes    C




More information about the Scip mailing list