[Scip] Using reoptimization

Andrei Braga andreisampaio at gmail.com
Thu Jul 2 21:01:53 CEST 2015


  Dear all,

  I'm trying to use the reoptimization feature added to SCIP 3.2 in solving
a sequence of mixed binary programs P_0, P_1, ..., P_k. Programs P_i and
P_i+1 differ by the objective coefficients and by the bounds of some binary
variables. It is possible that some binary variable is fixed to 1 (resp. 0)
in P_i and to 0 (resp. 1) in P_i+1. Does this invalidate the use of the
reoptimization feature?

  I want to enable reoptimization after solving P_0. I've done that (by
calling SCIPenableReoptimization). However, I've got the following assert
fail:
src/scip/scip.c:12795: SCIPtransformProb: Assertion
`scip->origprimal->nsols == 0' failed.

  I've also tried to enable reoptimization before P_0. In this case, even
compiled in debug mode, my program produced a segmentation fault; in
valgrind's (memory checker) output I can see the following

==1966== Invalid read of size 8
==1966==    at 0x6BD682: reoptSimilarity (reopt.c:378)
==1966==    by 0x6CAF03: reoptSaveNewObj (reopt.c:3807)
==1966==    by 0x6CC685: SCIPreoptAddRun (reopt.c:4313)
==1966==    by 0x700772: SCIPsolve (scip.c:14644)
==1966==    by 0x4350F0: pricerRedcostForest (pricer_forest.c:4242)
==1966==    by 0x6AA19C: SCIPpricerRedcost (pricer.c:372)
==1966==    by 0x6AA513: SCIPpricerExec (pricer.c:456)
==1966==    by 0x785385: SCIPpriceLoop (solve.c:1927)
==1966==    by 0x7866A3: priceAndCutLoop (solve.c:2189)
==1966==    by 0x7895B1: solveNodeLP (solve.c:2835)
==1966==    by 0x78BB8F: propAndSolve (solve.c:3494)
==1966==    by 0x78CE01: solveNode (solve.c:3793)
==1966==  Address 0x8109450 is 0 bytes after a block of size 896 alloc'd
==1966==    at 0x4C2B6CD: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1966==    by 0xB816CE: BMSallocMemoryArray_call (memory.c:406)
==1966==    by 0x6CAB2B: reoptSaveNewObj (reopt.c:3767)
==1966==    by 0x6CC685: SCIPreoptAddRun (reopt.c:4313)
==1966==    by 0x700772: SCIPsolve (scip.c:14644)
==1966==    by 0x43FFA1: heurExecInitforest (heur_init_forest.c:437)
==1966==    by 0x5BC84A: SCIPheurExec (heur.c:1010)
==1966==    by 0x77FF36: SCIPprimalHeuristics (solve.c:316)
==1966==    by 0x78C8EA: solveNode (solve.c:3716)
==1966==    by 0x78FDBB: SCIPsolveCIP (solve.c:4431)
==1966==    by 0x700C67: SCIPsolve (scip.c:14688)
==1966==    by 0x75AFB7: fromCommandLine (scipshell.c:99)

  Final question: Is there a problem to have objective coefficients equal
to zero during reoptimization?

  Many thanks in advance,

-- 
Andrei Braga
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20150702/cd26f35d/attachment.html>


More information about the Scip mailing list