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