<div dir="ltr">Hi Jakob,<div><br></div><div>I got to the bottom of the problem, I think.</div><div><br></div><div>The issue is in checking the linear constraint that implements my objective limit. I get this behaviour:</div><div><br></div><div>STARTS</div><div><div>[src/scip/cons_linear.c:6811] debug: checking linear constraint <foo></div><div> [linear] <foo>: +265.475592<t_t_I#0#1#3#9>[B] +277.223428<t_t_I#0#1#9>[B] +385.712363<t_t_I#0#3#9>[B] +394.428421<t_t_I#0#1#13>[B] +396.611187<t_t_I#0#1>[B] +411.248043<t_t_I#0#9#10>[B] +418.090044<t_t_I#0#9>[B] +562.928238<t_t_I#0#12#13>[B] +575.319346<t_t_I#0#13>[B] +583.147435<t_t_I#0>[B] -186.536249<t_t_I#1#0>[B]</div></div><div>.....</div><div><div> +7755.844738<t_t_I#36#27#32>[B] +7767.597019<t_t_I#36#21#27>[B] +7769.766551<t_t_I#36#27>[B] +8160.498138<t_t_I#36#17#28>[B] +8232.30374<t_t_I#36#28>[B] +8344.946419<t_t_I#36>[B] >= 97290.4565854556;</div><div>[src/scip/cons_linear.c:6831] debug: consdata activity=97290.443308 (lhs=97290.4565854556, rhs=1e+20, row=0x13c225a0, checklprows=1, rowinlp=1, sol=0x114ab158, hascurrentnodelp=1)</div><div><br></div><div>optimal solution is:</div><div><br></div><div>objective value: 97290.443308</div><div>t_I#0#13 1 <span class="gmail-Apple-tab-span" style="white-space:pre"> </span>(obj:575.319346)</div><div>t_I#2 1 <span class="gmail-Apple-tab-span" style="white-space:pre"> </span>(obj:1558.283114)</div></div><div>ENDS</div><div><br></div><div>So the problem is that the linear constraint constraint handler CHECK callback is happy to accept a solution which has activity 97290.443308 for a constraint with lhs=97290.4565854556.</div><div><br></div><div>This happens with the default feastol (1e-06)</div><div>Setting it to a smaller value:</div><div><div> SCIP_CALL( SCIPsetRealParam(subscip, "numerics/feastol", 1e-08) );</div></div><div>makes the problem go away.</div><div><br></div><div>You were right, of course, that SCIP recognises my constraint as a lower bound:</div><div><br></div><div>....</div><div><div> +193.28761<t_t_I#23#26#34#36>[B] -186.536249<t_t_I#1#0>[B] +184.014999<t_t_I#23#24#27#34>[B] +171.940167<t_t_I#23#25#26#34>[B] +126.535419<t_t_I#23#24#26#34>[B] -35.5888880000002<t_t_I#1#9>[B] >= 97290.4565854556;</div><div>[src/scip/cons_linear.c:9887] debug: constraint <foo> is parallel to objective function and provides a lower bound <97290.5></div></div><div><br></div><div>Thanks for your help,</div><div><br></div><div>James</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 12 November 2016 at 22:18, Jakob Witzig <span dir="ltr"><<a href="mailto:witzig@zib.de" target="_blank">witzig@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">
<p>Hi James,<br>
</p>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">But I want solutions to be feasible
only if they are *worse* (or equal) to objlimit, so I can't
see how I can use SCIPsetObjlimit(scip, objlimit). <br>
</div>
</div>
</div>
</blockquote>
<br>
Oh sorry, sure in that case the objective limit makes no sense.<br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>Perhaps I should call</div>
<div> SCIP_CALL( SCIPupdateLocalLowerbound(<wbr>subscip,
lowerbound) );<br>
</div>
<div>after working out what "lowerbound" should be. (Have to
deal with offset and scale.) What do you think?</div>
</div>
</div>
</div>
</blockquote>
<br>
This is not necessary because the linear constraint handler will
call this method anyway if it detects a constraint that is parallel
to the objective function and provides a lower bound, cf.
checkParallelObjective() in cons_linear.c.<br>
<br>
Cheers,<br>
Jakob<br>
<br>
<pre class="m_-3066382557795592700moz-signature" cols="72">--
Jakob Witzig
Zuse Institute Berlin (ZIB)
Division Mathematical Optimization and Scientific Information
Research Group Mathematical Optimization Methods
Takustrasse 7
14195 Berlin
Tel. : <a href="tel:%2B49%20%280%2930%2084185-416" value="+493084185416" target="_blank">+49 (0)30 84185-416</a>
Fax : <a href="tel:%2B49%20%280%2930%2084185-269" value="+493084185269" target="_blank">+49 (0)30 84185-269</a>
email: <a class="m_-3066382557795592700moz-txt-link-abbreviated" href="mailto:witzig@zib.de" target="_blank">witzig@zib.de</a></pre>
</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="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>