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