<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi all,<div class=""><br class=""></div><div class="">I’m doing branch-and-cut-and-price in SCIP 6.0.2 and I’m having problems with the heuristics. I turned on aggressive heuristics:</div><div class=""><br class=""></div><div class="">SCIP_CALL(SCIPsetHeuristics(scip, SCIP_PARAMSETTING_AGGRESSIVE, TRUE));</div><div class=""><br class=""></div><div class="">I’m getting:</div><div class=""><br class=""></div><div class="">WARNING: pricing has been interrupted -- LP of current node is invalid</div><div class=""><div class=""><br class="webkit-block-placeholder"></div><div class="">at this backtrace:</div><div class=""><img apple-inline="yes" id="314D495C-416E-42B0-8B21-1B45015803C2" src="cid:B2F24A08-1B23-4701-887E-6B11FA3C7DA9" class=""></div><div class="">The warning seems to suggest the proximity heuristic is calling my pricer. I think I don't want that? Nevertheless, the final solution is correct.</div><div class=""><br class=""></div><div class="">I’m also having a problem with the twoopt heuristic, and the final solution is NOT correct. I get this error:</div><div class="">SCIP Status        : problem is solved [optimal solution found]<br class="">Solving Time (sec) : 14.09<br class="">Solving Nodes      : 162<br class="">Primal Bound       : +1.57000000000000e+03 (7 solutions, 3 respecting the objective limit)<br class="">Dual Bound         : +1.57000000000000e+03<br class="">Gap                : 0.00 %<br class="">violation: integrality condition of variable <> = 0.666666666666667<br class="">best solution is not feasible in original problem</div><div class=""><br class=""></div><div class="">Using SCIPgetBestSol(scip), I have verified that the solution twoopt finds is fractional. The integer optimal solution should be 1572. This problem occurs in the release build. In the debug build, I’m getting an assertion error:</div><div class=""><br class=""></div><div class="">scipoptsuite-6.0.2/scip/src/scip/lp.c:12181: updateLazyBounds: Assertion `lp->divinglazyapplied || SCIPsetIsLT(set, col->ub, col->lazyub) || (col->flushedub == SCIPlpiInfinity(lp->lpi))' failed.</div><div class=""><br class=""></div><div class="">with this backtrace:</div><div class=""><br class=""></div><div class="">#0  0x00002aaaadfb0fd7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55<br class="">#1  0x00002aaaadfb23aa in __GI_abort () at abort.c:78<br class="">#2  0x00002aaaadfa9dc6 in __assert_fail_base (fmt=0x2aaaae0e8ee0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", <br class="">    assertion=assertion@entry=0x2aaaad130530 "lp->divinglazyapplied || SCIPsetIsLT(set, col->ub, col->lazyub) || (col->flushedub == SCIPlpiInfinity(lp->lpi))", file=file@entry=0x2aaaad12ad00 "/tmp/scipoptsuite-6.0.2/scip/src/scip/lp.c", line=line@entry=12181, <br class="">    function=function@entry=0x2aaaad133c40 <__PRETTY_FUNCTION__.22154> "updateLazyBounds") at assert.c:92<br class="">#3  0x00002aaaadfa9e72 in __GI___assert_fail (<br class="">    assertion=0x2aaaad130530 "lp->divinglazyapplied || SCIPsetIsLT(set, col->ub, col->lazyub) || (col->flushedub == SCIPlpiInfinity(lp->lpi))", <br class="">    file=0x2aaaad12ad00 "/tmp/scipoptsuite-6.0.2/scip/src/scip/lp.c", line=12181, <br class="">    function=0x2aaaad133c40 <__PRETTY_FUNCTION__.22154> "updateLazyBounds") at assert.c:101<br class="">#4  0x00002aaaab64afe9 in updateLazyBounds (lp=0x96ff10, set=0x743520)<br class="">    at /tmp/scipoptsuite-6.0.2/scip/src/scip/lp.c:12181<br class="">#5  0x00002aaaab64b493 in SCIPlpSolveAndEval (lp=0x96ff10, set=0x743520, messagehdlr=0x73ea20, blkmem=0x7414e0, stat=0x883290, <br class="">    eventqueue=0x87f550, eventfilter=0x812ec0, prob=0x974c80, itlim=-1, limitresolveiters=0, aging=0, keepsol=0, lperror=0x7fffffffbb90)<br class="">    at /tmp/scipoptsuite-6.0.2/scip/src/scip/lp.c:12274<br class="">#6  0x00002aaaab803b05 in SCIPsolveDiveLP (scip=0x73b4e0, itlim=-1, lperror=0x7fffffffbb90, cutoff=0x0)<br class="">    at /tmp/scipoptsuite-6.0.2/scip/src/scip/scip_lp.c:2519<br class="">#7  0x00002aaaab3b8f51 in heurExecTwoopt (scip=0x73b4e0, heur=0x85e5c0, heurtiming=8, nodeinfeasible=0, result=0x7fffffffbd40)<br class="">    at /tmp/scipoptsuite-6.0.2/scip/src/scip/heur_twoopt.c:1709<br class="">#8  0x00002aaaab5fb9b9 in SCIPheurExec (heur=0x85e5c0, set=0x743520, primal=0x9745f0, depth=20, lpstateforkdepth=19, heurtiming=8, <br class="">    nodeinfeasible=0, ndelayedheurs=0x7fffffffbd3c, result=0x7fffffffbd40)<br class="">    at /tmp/scipoptsuite-6.0.2/scip/src/scip/heur.c:1116<br class="">#9  0x00002aaaab8ab63d in SCIPprimalHeuristics (set=0x743520, stat=0x883290, prob=0x974c80, primal=0x9745f0, tree=0x974670, lp=0x96ff10, <br class="">    nextnode=0xe5b1d8, heurtiming=8, nodeinfeasible=0, foundsol=0x7fffffffbe3c, unbounded=0x7fffffffbe44)<br class="">    at /tmp/scipoptsuite-6.0.2/scip/src/scip/solve.c:353<br class="">#10 0x00002aaaab8be320 in SCIPsolveCIP (blkmem=0x7414e0, set=0x743520, messagehdlr=0x73ea20, stat=0x883290, mem=0x73ac90, origprob=0x87f850, <br class="">    transprob=0x974c80, primal=0x9745f0, tree=0x974670, reopt=0x0, lp=0x96ff10, relaxation=0x974820, pricestore=0x880e90, sepastore=0xb1a870, <br class="">    cutpool=0xb1a8f0, delayedcutpool=0xb29150, branchcand=0x7d3210, conflict=0x974840, conflictstore=0x880bb0, eventfilter=0x812ec0, <br class="">    eventqueue=0x87f550, cliquetable=0x974c20, restart=0x7fffffffc0a4)<br class="">    at /tmp/scipoptsuite-6.0.2/scip/src/scip/solve.c:5159<br class="">#11 0x00002aaaab84aeb7 in SCIPsolve (scip=0x73b4e0) at /tmp/scipoptsuite-6.0.2/scip/src/scip/scip_solve.c:2648<br class=""><br class=""></div><div class="">Another question while I’m here. As I understand, the pricing loop is inside the cutting loop. Is there a way to run them both in the same loop level, i.e. price, cut, price, cut? Instead of ((price, price, price), cut), ((price, price, price), cut).</div><div class=""><br class=""></div><div class="">
Cheers<br class="">Eddie

</div>

<br class=""></div></body></html>