[Scip] Using reoptimization

Andrei Braga andreisampaio at gmail.com
Mon Jul 6 17:29:23 CEST 2015


  Dear Gerald,

  Thanks for your quick reply. I'm sorry for my late answer.

On Fri, Jul 3, 2015 at 8:25 AM, Gerald Gamrath <gamrath at zib.de> wrote:

>  Dear Andrei,
>
> 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.
>

  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.


>
> 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.
>

  By the note at the end of reoptimization's documentation page (
http://scip.zib.de/doc/html/REOPT.php), 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.


> 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.
> 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.
>

> It seems that we still have to add some more checks in the reoptimization
> code and give more expressive warning/error messages. :-)
>
> One positive answer: Objective coefficients equal to zero are totally ok.
>
>
    Understood.


>
> 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?
>

  Yes, I'll do this. Thank you very much.


>
> Best,
> Gerald
>
>
>
> Am 02.07.2015 um 21:01 schrieb Andrei Braga:
>
>     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
>
>
> _______________________________________________
> Scip mailing listScip at zib.dehttp://listserv.zib.de/mailman/listinfo/scip
>
>
>


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


More information about the Scip mailing list