<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi Andrei,<br>
<br>
<div class="moz-cite-prefix">Am 06.07.2015 um 19:57 schrieb Andrei
Braga:<br>
</div>
<blockquote
cite="mid:CAN+dgEsVobi5myH5Ahvsd7rhsXnA_MDVNrV3YAoeqPmJrh-_zg@mail.gmail.com"
type="cite">
<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>
</div>
</div>
</div>
</blockquote>
Very good :-) Nevertheless, I will add more checks and warnings to
avoid such segmentation faults and unclear behavior.<br>
<br>
<blockquote
cite="mid:CAN+dgEsVobi5myH5Ahvsd7rhsXnA_MDVNrV3YAoeqPmJrh-_zg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div><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>
</div>
</div>
</blockquote>
Indeed, the reoptimization has a large memory consumption because
the complete search frontier and all interior nodes were strong
branching was performed need to be stored. Therefore, you can limit
the size of the stored tree (reoptimization/maxsavednodes) or use
the compression heuristics to rearrange and resize the stored tree.
You can enable the compression with the parameter
"compression/enable". If you use the compression heuristics SCIP
calls these heuristics after presolving and before solving the root
node. <br>
<br>
Best,<br>
Jakob<br>
<br>
<blockquote
cite="mid:CAN+dgEsVobi5myH5Ahvsd7rhsXnA_MDVNrV3YAoeqPmJrh-_zg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div><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 moz-do-not-send="true"
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
moz-do-not-send="true"
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 moz-do-not-send="true"
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 moz-do-not-send="true" href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a>
<a moz-do-not-send="true" 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>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Scip mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Scip@zib.de">Scip@zib.de</a>
<a class="moz-txt-link-freetext" href="http://listserv.zib.de/mailman/listinfo/scip">http://listserv.zib.de/mailman/listinfo/scip</a>
</pre>
</blockquote>
<br>
</body>
</html>