<div dir="ltr">Dear Gerald,<div><br>Further to my earlier email, I've done a bit more digging. It looks as if the problem is not what I though but instead that the LP upper objective limit gets set very low early on (before either my new variable or the cut containing it is created):<br><br>[src/scip/lp.c:12485] debug: setting LP upper objective limit from 1e+20 to 0.0001<br><br>and this means that my desired solution with objective value 2 is cut off...<br><br></div><div>....<br>  0.0s|     1 |     0 |     0 |     - | 197k|   0 |   - |   1 |   1 |   1 |   0 |   1 |   0 |   0 |    cutoff    |      --      |   0.00%<br>[src/scip/solve.c:2619] debug:  -> final lower bound: 1e+20 (LP status: 4, LP obj: 1e+20)<br>[src/scip/solve.c:3500] debug:  -> LP status: 4, LP obj: 1e+20, iter: 0, count: 3<br>[src/scip/solve.c:2663] debug:  -> lower bound: 1e+20 [1e+20] (pseudoobj: 2 [2]), cutoff bound: 0.0001 [0.0001]<br>[src/scip/solve.c:2672] debug: node is cut off by bounding (lower=1e+20, upper=0.0001)<br>[src/scip/conflict.c:6800] debug: analyzing pseudo solution (obj: 2) that exceeds objective limit (0.0001)<div>....</div><div><br></div><div>James</div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 18 September 2015 at 14:52, 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Dear James,<br>
      <br>
      you are only allowed to call SCIPaddPricedVar() during pricing,
      but you could add the variables just via SCIPaddVar(). You could
      even set the initial flag of the variable to FALSE so that SCIP
      will automatically price it into the LP (only) if needed.<br>
      <br>
      Best,<br>
      Gerald<br>
      <br>
      On 18.09.2015 11:28, James Cussens wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>I have an application where I generate cuts which include
          variables which do not exist yet. At present, I follow the
          normal two-stage approach: the cut is generated without the
          missing variables, and later a pricer deduces that they are
          worth adding and my application ensures they are added to the
          previously generated cuts.</div>
        <div><br>
        </div>
        <div>My pricer only ever generates variables which appear in the
          cuts I generate, so I suspect it will be more efficient to
          generate the missing variables *as soon as my cutting plane
          algorithm (CPA) has generated the cut*. That is, the idea is
          to create them just before adding the cut (which would then
          contain all its variables). My CPA generates (a representation
          of) the cut with all its variables, including those not
          already created (so it does a sort of pricing), so we have
          these variables immediately to hand at the point of adding the
          cut. It is true that, since we are generating variables
          unconditionally, we may end up with more variables than if we
          priced them in, but my guess is that we won't get too many
          unnecessary variables created. </div>
        <div><br>
        </div>
        <div>The CPA is implemented as the separator for a certain
          constraint handler. So presumably I could just add suitable
          calls to SCIPaddPricedVar in the separator callback, just
          before creating and adding the row (ie cut).</div>
        <div><br>
        </div>
        <div>Does anyone see a problem with doing this? It just seems an
          odd approach ....</div>
        <div><br>
        </div>
        <div>James</div>
        <div>
          <div><br>
          </div>
          -- <br>
          <div>James Cussens<br>
            Dept of Computer Science &<br>
            York Centre for Complex Systems Analysis<br>
            Room 326, The Hub, Deramore Lane            Tel    <a href="tel:%2B44%20%280%291904%20325371" value="+441904325371" target="_blank">+44 (0)1904 325371</a><br>
            University of York                                      
             Fax  <a href="tel:%2B44%20%280%291904%20500159" value="+441904500159" target="_blank">+44 (0)1904 500159</a><br>
            York YO10 5GE, UK                               <a href="http://www.cs.york.ac.uk/%7Ejc" target="_blank"></a><a href="http://www.cs.york.ac.uk/~jc" target="_blank">http://www.cs.york.ac.uk/~jc</a><br>
            <a href="http://www.york.ac.uk/docs/disclaimer/email.htm" target="_blank">http://www.york.ac.uk/docs/disclaimer/email.htm</a></div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <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>

<br>_______________________________________________<br>
Scip mailing list<br>
<a href="mailto:Scip@zib.de">Scip@zib.de</a><br>
<a href="http://listserv.zib.de/mailman/listinfo/scip" rel="noreferrer" target="_blank">http://listserv.zib.de/mailman/listinfo/scip</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">James Cussens<br>Dept of Computer Science &<br>York Centre for Complex Systems Analysis<br>Room 326, The Hub, Deramore Lane            Tel    +44 (0)1904 325371<br>University of York                                        Fax  +44 (0)1904 500159<br>York YO10 5GE, UK                               <a href="http://www.cs.york.ac.uk/~jc" target="_blank">http://www.cs.york.ac.uk/~jc</a><br><a href="http://www.york.ac.uk/docs/disclaimer/email.htm" target="_blank">http://www.york.ac.uk/docs/disclaimer/email.htm</a></div>
</div>