<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Alexandre,</p>
    <p>what you could do to avoid changing the SCIP code would be to
      check within your pricer if your separator will find cuts for the
      current LP solution. For example, you could have an external
      function that you can call from your pricer which returns whether
      a cut can be generated. If that check may be expensive, you could
      buffer the generated cut so that the separation call can directly
      add that cut. I could imagine that having this close relation
      between cutting and pricing implemented in your plugins could be
      beneficial anyway, e.g., if you want to make the decision whether
      or not to continue pricing depend on the strength of the cuts that
      your separator would generate.</p>
    <p>Best,<br>
      Gerald<br>
    </p>
    <div class="moz-cite-prefix">Am 08.11.21 um 20:11 schrieb Alexandre
      Dupont-Bouillard:<br>
    </div>
    <blockquote type="cite"
      cite="mid:4bb64d2775ddaa98260116fed406ca49@lipn.univ-paris13.fr">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p><span style="white-space: nowrap;">Dear Steve</span><br>
        <br>
        <span style="white-space: nowrap;">Many thanks for your answer.</span><br>
        <span style="white-space: nowrap;">The question of free alternation between cut and price seems to be a new</span><br>
        <span style="white-space: nowrap;">strategy since it's not classical for SCIP!</span><br>
        <br>
        <span style="white-space: nowrap;">Unfortunately, as said by
          Edward, your proposal seems not to work.</span><br>
        <span style="white-space: nowrap;">Indeed, setting the result as SCIP_DIDNOTRUN in PRICERREDCOST callback</span><br>
        <span style="white-space: nowrap;">appears to exactly work as artificially saying that no column is produced.</span><br>
        <br>
        This brings the problem you point out: no pricing round is
        launched after a cutting<br>
        <span style="white-space: nowrap;">round with no generated cut.</span><br>
        This a problem for us because the previous pricing round has
        been artificially<br>
        <span style="white-space: nowrap;">inhibit in order to launch a cutting phase.</span><br>
        Indeed, when there is no generated cut in a cutting round, a
        supplementary exact<br>
        pricing round is needed to assert convergence (and potentially
        to go on with the<br>
        <span style="white-space: nowrap;">price&cut process).</span><br>
        <br>
        <span style="white-space: nowrap;">A solution appears  to turn off the test stopping the price&cut process</span><br>
        <span style="white-space: nowrap;">when no cut have been generated during a cutting round</span><br>
        <span style="white-space: nowrap;">With such a deleted test, the price&cut iterations will have no end since</span><br>
        <span style="white-space: nowrap;">the cutting and pricing rounds will call each other in a never ending loop.</span><br>
        A way to stop this loop is to add a test having the memory of
        the previous round<br>
        in order to stop when two successive non-inhibited price and cut
        rounds have produced<br>
        <span style="white-space: nowrap;">nothing.</span></p>
      <p><span style="white-space: nowrap;">Regards,</span><br>
        <span style="white-space: nowrap;">Pierre and Alexandre</span><br>
        <br>
        <br>
        Ps: Another disturbing problem for us was that a cutting round
        is launched only<br>
        if the current solution is not integer: this is a problem for us
        because an integer<br>
        <span style="white-space: nowrap;">solution can appear (before convergence) right after a pricing round.</span><br>
        In this case, it is mandatory for us to do a second pricing
        round, even if our strategy<br>
        <span style="white-space: nowrap;">is to alternate with a cutting round
          (our cutting procedure cannot produce cuts for integral
          solutions).</span><br>
        We add a test at the beginning of the PRICERREDCOST callback for
        no-inhibiting the pricing<br>
        <span style="white-space: nowrap;">when the current solution is integer.</span></p>
      <div id="signature"> </div>
      <p><br>
      </p>
      <p id="reply-intro">Le 2021-11-08 11:25, Edward Lam a écrit :</p>
      <blockquote type="cite" style="padding: 0 0.4em; border-left:
        #1010ff 2px solid; margin: 0"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->I
        have tried this. It sounds like this would work according to the
        documentation but this does not work. Sometimes it skips pricing
        and separation and goes straight to branching. I guess branching
        is technically okay if the master problem is fractional but
        sometimes its integral and gets messy quickly.<br>
        <div> </div>
        <div>
          <div dir="auto" style="caret-color: #000000; color: #000000;
            letter-spacing: normal; text-align: start; text-indent: 0px;
            text-transform: none; white-space: normal; word-spacing:
            0px; -webkit-text-stroke-width: 0px; text-decoration: none;
            word-wrap: break-word; -webkit-nbsp-mode: space; line-break:
            after-white-space;">
            <div dir="auto" style="caret-color: #000000; color: #000000;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; word-wrap: break-word;
              -webkit-nbsp-mode: space; line-break: after-white-space;"><span
                style="font-style: normal;">Cheers<br>
                Eddie</span></div>
          </div>
        </div>
        <div><br>
          <blockquote type="cite" style="padding: 0 0.4em; border-left:
            #1010ff 2px solid; margin: 0">
            <div>On 8 Nov 2021, at 7:10 pm, Maher, Stephen <<a
                href="mailto:S.J.Maher@exeter.ac.uk" rel="noreferrer"
                moz-do-not-send="true">S.J.Maher@exeter.ac.uk</a>>
              wrote:</div>
            <br class="Apple-interchange-newline">
            <div><!-- meta ignored -->
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;">Hi Alexandre,</div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;"> </div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;">Sorry about the delay in response to
                this question. This happens to be a question that we
                have not encountered before, so we needed to work out
                how to actually achieve this.</div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;"> </div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;">I am not sure whether this would work,
                since I don't have an example to test with. I believe
                that by setting the result in your PRICERREDCOST
                callback to SCIP_DIDNOTRUN, you will terminate pricing
                and then continue with the rest of the node processing.
                The separation round will begin after you terminate the
                pricing round.</div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;"> </div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;">There are two things to note here. The
                first is that if you add a cut, then the node processing
                will enter back into pricing. So you may want to keep
                returning the result of SCIP_DIDNOTRUN from your pricer
                while you want to keep generating cuts. The second is
                that if you don't add a cut during the separation round,
                then you will not enter back into the pricing round. So
                you must ensure that you have completely finished
                pricing before the final separation round.</div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;"> </div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;">Since this is untested, please let us
                know if it works for your setting. If not, then we can
                think of a different approach.</div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;"> </div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;">Cheers,</div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;"> </div>
              <div style="font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                font-family: Calibri, Arial, Helvetica, sans-serif;
                font-size: 12pt;">Steve</div>
              <div style="caret-color: #000000; font-family: Helvetica;
                font-size: 14px; font-style: normal; font-variant-caps:
                normal; font-weight: normal; letter-spacing: normal;
                text-align: start; text-indent: 0px; text-transform:
                none; white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;">
                <div id="appendonsend"> </div>
                <div style="font-family: Calibri, Arial, Helvetica,
                  sans-serif; font-size: 12pt;"> </div>
                <hr style="display: inline-block; width: 1281.828125px;">
                <div id="divRplyFwdMsg" dir="ltr"><span
                    style="font-size: 11pt; font-family: Calibri,
                    sans-serif;"><strong>From:</strong><span
                      class="Apple-converted-space"> </span>Scip <<a
                      href="mailto:scip-bounces@zib.de" rel="noreferrer"
                      moz-do-not-send="true">scip-bounces@zib.de</a>>
                    on behalf of Alexandre Dupont-Bouillard <<a
                      href="mailto:dupont-bouillard@lipn.univ-paris13.fr"
                      rel="noreferrer" moz-do-not-send="true">dupont-bouillard@lipn.univ-paris13.fr</a>><br>
                    <strong>Sent:</strong><span
                      class="Apple-converted-space"> </span>25 October
                    2021 09:54<br>
                    <strong>To:</strong><span
                      class="Apple-converted-space"> </span><a
                      href="mailto:scip@zib.de" rel="noreferrer"
                      moz-do-not-send="true">scip@zib.de</a><span
                      class="Apple-converted-space"> </span><<a
                      href="mailto:scip@zib.de" rel="noreferrer"
                      moz-do-not-send="true">scip@zib.de</a>><br>
                    <strong>Subject:</strong><span
                      class="Apple-converted-space"> </span>[SCIP] How
                    to freely tune between pricing and cutting ?</span>
                  <div> </div>
                </div>
                <div class="BodyFragment">
                  <div class="PlainText">CAUTION: This email originated
                    from outside of the organisation. Do not click links
                    or open attachments unless you recognise the sender
                    and know the content is safe.<br>
                    <br>
                    <br>
                    Hi<br>
                    <br>
                    We try to build a BCP method where cuts are added
                    through a separator.<br>
                    We would like to have a free hand on the alternation
                    between pricing and<br>
                    cutting phases.<br>
                    <br>
                    We haven't found how to add parameters to choose for
                    instance to begin<br>
                    by a cutting phase<br>
                    or to stop pricing before convergence to add some
                    inequalities and come<br>
                    back to pricing<br>
                    and so on...<br>
                    <br>
                    The best would be to be able to switch from cutting
                    to pricing (and from<br>
                    pricing to cutting) using a test done by an
                    algorithm.<br>
                    <br>
                    Does someone know how to perform such alternation?<br>
                    <br>
                    Thanks<br>
                    Pierre and Alexandre<br>
                    _______________________________________________<br>
                    Scip mailing list<br>
                    <a href="mailto:Scip@zib.de" rel="noreferrer"
                      moz-do-not-send="true">Scip@zib.de</a><br>
                    <a
href="https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Flistserv.zib.de%2Fmailman%2Flistinfo%2Fscip&amp;data=04%7C01%7CS.J.Maher%40exeter.ac.uk%7Ce1f9ee8f46304091c1a308d99796bbb3%7C912a5d77fb984eeeaf321334d8f04a53%7C0%7C0%7C637707496323265507%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=BjaINZ3HZglnha70BFGyyDMOEtBY9ygHd9Nz%2F6VsGGM%3D&amp;reserved=0"
                      target="_blank" rel="noopener noreferrer"
                      moz-do-not-send="true">https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Flistserv.zib.de%2Fmailman%2Flistinfo%2Fscip&amp;data=04%7C01%7CS.J.Maher%40exeter.ac.uk%7Ce1f9ee8f46304091c1a308d99796bbb3%7C912a5d77fb984eeeaf321334d8f04a53%7C0%7C0%7C637707496323265507%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=BjaINZ3HZglnha70BFGyyDMOEtBY9ygHd9Nz%2F6VsGGM%3D&amp;reserved=0</a></div>
                </div>
              </div>
              <span style="caret-color: #000000; font-family: Helvetica;
                font-size: 14px; font-style: normal; font-variant-caps:
                normal; font-weight: normal; letter-spacing: normal;
                text-align: start; text-indent: 0px; text-transform:
                none; white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                float: none; display: inline !important;">_______________________________________________</span><br
                style="caret-color: #000000; font-family: Helvetica;
                font-size: 14px; font-style: normal; font-variant-caps:
                normal; font-weight: normal; letter-spacing: normal;
                text-align: start; text-indent: 0px; text-transform:
                none; white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;">
              <span style="caret-color: #000000; font-family: Helvetica;
                font-size: 14px; font-style: normal; font-variant-caps:
                normal; font-weight: normal; letter-spacing: normal;
                text-align: start; text-indent: 0px; text-transform:
                none; white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;
                float: none; display: inline !important;">Scip mailing
                list</span><br style="caret-color: #000000; font-family:
                Helvetica; font-size: 14px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;">
              <a style="font-family: Helvetica; font-size: 14px;
                font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-size-adjust: auto;
                -webkit-text-stroke-width: 0px;"
                href="mailto:Scip@zib.de" rel="noreferrer"
                moz-do-not-send="true">Scip@zib.de</a><br
                style="caret-color: #000000; font-family: Helvetica;
                font-size: 14px; font-style: normal; font-variant-caps:
                normal; font-weight: normal; letter-spacing: normal;
                text-align: start; text-indent: 0px; text-transform:
                none; white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;">
              <a style="font-family: Helvetica; font-size: 14px;
                font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-size-adjust: auto;
                -webkit-text-stroke-width: 0px;"
                href="https://listserv.zib.de/mailman/listinfo/scip"
                target="_blank" rel="noopener noreferrer"
                moz-do-not-send="true">https://listserv.zib.de/mailman/listinfo/scip</a></div>
          </blockquote>
        </div>
        <br>
        <br>
        <div class="pre" style="margin: 0; padding: 0; font-family:
          monospace">_______________________________________________<br>
          Scip mailing list<br>
          <a href="mailto:Scip@zib.de" rel="noreferrer"
            moz-do-not-send="true">Scip@zib.de</a><br>
          <a href="https://listserv.zib.de/mailman/listinfo/scip"
            target="_blank" rel="noopener noreferrer"
            moz-do-not-send="true">https://listserv.zib.de/mailman/listinfo/scip</a></div>
      </blockquote>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-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="https://listserv.zib.de/mailman/listinfo/scip">https://listserv.zib.de/mailman/listinfo/scip</a>
</pre>
    </blockquote>
  </body>
</html>