<div dir="ltr"><div><div><div> Dear all,<br><br></div> I have successfully used reoptimization in solving a subsequence of P_0, P_1, P_2, ... with the property that the feasible region of the programs is never enlarged. Therefore, the previous segmentation fault might indeed be related to not having this property.<br><br></div> My problem now is that too much memory is consumed. For some of the programs, there are more than 200000 of nodes in the B&B tree. When reoptimization is enabled, memory consumption is more than 8GB. I've ajusted parameters limits/memory and memory/savefac, but the memory consumption is still of the same order.<br><br></div> Best regards,<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 6, 2015 at 12:29 PM, Andrei Braga <span dir="ltr"><<a href="mailto:andreisampaio@gmail.com" target="_blank">andreisampaio@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div> Dear Gerald,<br><br></div> Thanks for your quick reply. I'm sorry for my late answer.<br></div><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Fri, Jul 3, 2015 at 8:25 AM, Gerald Gamrath <span dir="ltr"><<a href="mailto:gamrath@zib.de" target="_blank">gamrath@zib.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Dear Andrei,<br>
<br>
I'm happy to hear that you tried the new reoptimization feature. As
far as I can see, you are using it within branch-and-price to solve
the pricing problems, which was actually one of the major
motivations for this feature.<br></div></blockquote></span><div><br> You're right that I'm trying to use reoptimization to solve pricing problems within a branch-and-price. I think it would be very useful for my application.<br> </div><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
<br>
It currently only supports sequences of binary problems in which the
objective function is changed from one problem to the next or in
which the feasible region is restricted when proceeding in the
sequence.<br></div></blockquote><div><br></div></span><div> By the note at the end of reoptimization's documentation page (<a href="http://scip.zib.de/doc/html/REOPT.php" target="_blank">http://scip.zib.de/doc/html/REOPT.php</a>), which says "Currently, the reoptimization feature only supports pure binary and mixed binary programs. [...]", I though that I could use this feature for programs with both binary variables and continuous variables with unrestricted bounds. Now, this doesn't seem true.<br></div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
Since the (frontier of the) tree needs to be collected in the first
run and will be rebuild in subsequent runs, you need to enable the
reoptimization feature before solving P_0.<br>
Infeasible subproblems are disregarded in subsequent runs which is
not valid anymore if you enlarge the feasible region. This might be
the reason for the segmentation fault.<br></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
<br>
It seems that we still have to add some more checks in the
reoptimization code and give more expressive warning/error messages.
:-)<br>
<br>
One positive answer: Objective coefficients equal to zero are
totally ok.<br> <br></div></blockquote></span><div><br> Understood.<br> </div><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
<br>
Jakob (CC), the main developer of the optimization feature, is out
of office today but will have a closer look on Monday. Perhaps you
could send your problems P_0 and P_1 directly to us so that we can
reproduce the issue?<br></div></blockquote><div><br></div></span><div> Yes, I'll do this. Thank you very much.<br> <br></div><div><div class="h5"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
<br>
Best,<br>
Gerald<div><div><br>
<br>
<br>
<div>Am 02.07.2015 um 21:01 schrieb Andrei
Braga:<br>
</div>
</div></div><blockquote type="cite"><div><div>
<div dir="ltr">
<div>
<div>
<div>
<div> Dear all,<br>
<br>
</div>
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?<br>
<br>
</div>
I want to enable reoptimization after solving P_0. I've
done that (by calling SCIPenableReoptimization). However,
I've got the following assert fail: <br>
src/scip/scip.c:12795: SCIPtransformProb: Assertion
`scip->origprimal->nsols == 0' failed.<br>
<br>
</div>
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<br>
<br>
==1966== Invalid read of size 8<br>
==1966== at 0x6BD682: reoptSimilarity (reopt.c:378)<br>
==1966== by 0x6CAF03: reoptSaveNewObj (reopt.c:3807)<br>
==1966== by 0x6CC685: SCIPreoptAddRun (reopt.c:4313)<br>
==1966== by 0x700772: SCIPsolve (scip.c:14644)<br>
==1966== by 0x4350F0: pricerRedcostForest
(pricer_forest.c:4242)<br>
==1966== by 0x6AA19C: SCIPpricerRedcost (pricer.c:372)<br>
==1966== by 0x6AA513: SCIPpricerExec (pricer.c:456)<br>
==1966== by 0x785385: SCIPpriceLoop (solve.c:1927)<br>
==1966== by 0x7866A3: priceAndCutLoop (solve.c:2189)<br>
==1966== by 0x7895B1: solveNodeLP (solve.c:2835)<br>
==1966== by 0x78BB8F: propAndSolve (solve.c:3494)<br>
==1966== by 0x78CE01: solveNode (solve.c:3793)<br>
==1966== Address 0x8109450 is 0 bytes after a block of size
896 alloc'd<br>
==1966== at 0x4C2B6CD: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)<br>
==1966== by 0xB816CE: BMSallocMemoryArray_call
(memory.c:406)<br>
==1966== by 0x6CAB2B: reoptSaveNewObj (reopt.c:3767)<br>
==1966== by 0x6CC685: SCIPreoptAddRun (reopt.c:4313)<br>
==1966== by 0x700772: SCIPsolve (scip.c:14644)<br>
==1966== by 0x43FFA1: heurExecInitforest
(heur_init_forest.c:437)<br>
==1966== by 0x5BC84A: SCIPheurExec (heur.c:1010)<br>
==1966== by 0x77FF36: SCIPprimalHeuristics (solve.c:316)<br>
==1966== by 0x78C8EA: solveNode (solve.c:3716)<br>
==1966== by 0x78FDBB: SCIPsolveCIP (solve.c:4431)<br>
==1966== by 0x700C67: SCIPsolve (scip.c:14688)<br>
==1966== by 0x75AFB7: fromCommandLine (scipshell.c:99)<br>
<br>
</div>
Final question: Is there a problem to have objective
coefficients equal to zero during reoptimization?<br>
<div>
<div><br>
</div>
<div> Many thanks in advance,<br clear="all">
</div>
<div>
<div>
<div>
<div>
<div><br>
-- <br>
<div>Andrei Braga<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div></div><pre>_______________________________________________
Scip mailing list
<a href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a>
<a href="http://listserv.zib.de/mailman/listinfo/scip" target="_blank">http://listserv.zib.de/mailman/listinfo/scip</a>
</pre>
</blockquote>
<br>
</div>
</blockquote></div></div></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br><div>Andrei Braga<br></div>
</font></span></div></div>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Andrei Braga<br></div>
</div>