Just my 2-cents, but dropping to Cbc instead of supporting what is needed at OsiCbc defeats the purpose of OSI. OsiXxx should at least support LP and MILP solvers. <br><br>If the long term plan is really to just support LP solvers, than let&#39;s call it OSILP or something more appropriate.<br>
<br>Matt<br><br><br><br><div class="gmail_quote">On Tue, Jun 28, 2011 at 5:46 PM, Stefan Vigerske <span dir="ltr">&lt;<a href="mailto:stefan@math.hu-berlin.de">stefan@math.hu-berlin.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<br>
I agree with Lou.<br>
If you still want to use Cbc via Osi, then you can get to the CbcModel<br>
via OsiCbc::getModelPtr() and call the status methods from there.<br>
You can then call isNodeLimitReached(), isSecondsLimitReached(), and get<br>
the dual bound via getBestPossibleObjValue().<br>
Comparing the latter with getObjValue() should be most reliable for<br>
seeing whether Cbc finished with a proven optimal solution or how far it<br>
may still be away.<br>
<font color="#888888"><br>
Stefan<br>
</font><div><div></div><div class="h5"><br>
&gt; Troy,<br>
&gt;<br>
&gt;&gt; Using the OSI interface to CBC,<br>
&gt;<br>
&gt;       This is your mistake  :-)   Seriously, Osi is just not set up to<br>
&gt; provide the kind of control necessary for a MIP solver. If you want to<br>
&gt; do anything more than run the solver to completion, you&#39;re better off to<br>
&gt; use Cbc directly.<br>
&gt;<br>
&gt;       There are a few folks out there who are more fond of OsiCbc. One of<br>
&gt; them may be able to offer more helpful advice.<br>
&gt;<br>
&gt;                                               Lou<br>
&gt;<br>
&gt;   if I call setMaximumSeconds and<br>
&gt;&gt; branchAndBound() terminates due to that limit, how do I distinguish<br>
&gt;&gt; between it finishing with a feasible (but possibly suboptimal)<br>
&gt;&gt; solution and finishing with an infeasible solution?  I see methods<br>
&gt;&gt; like isProvenOptimal and isProvenPrimalInfeasible, but nothing like<br>
&gt;&gt; isFeasible.<br>
&gt;&gt;<br>
&gt;&gt; I could loop over all of the integer variables and check if they are<br>
&gt;&gt; within tolerance of integer values, but it seems that there should be<br>
&gt;&gt; a method that does that (and does not risk me using the wrong<br>
&gt;&gt; tolerance or getting a different rounding error).<br>
&gt;&gt;<br>
&gt;&gt; Is there something I am missing?<br>
&gt;&gt;<br>
&gt;&gt; Troy<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________ Cbc mailing list<br>
&gt;&gt; <a href="mailto:Cbc@list.coin-or.org">Cbc@list.coin-or.org</a> <a href="http://list.coin-or.org/mailman/listinfo/cbc" target="_blank">http://list.coin-or.org/mailman/listinfo/cbc</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Cbc mailing list<br>
&gt; <a href="mailto:Cbc@list.coin-or.org">Cbc@list.coin-or.org</a><br>
&gt; <a href="http://list.coin-or.org/mailman/listinfo/cbc" target="_blank">http://list.coin-or.org/mailman/listinfo/cbc</a><br>
&gt;<br>
<br>
</div></div>_______________________________________________<br>
<div><div></div><div class="h5">Cbc mailing list<br>
<a href="mailto:Cbc@list.coin-or.org">Cbc@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/cbc" target="_blank">http://list.coin-or.org/mailman/listinfo/cbc</a><br>
</div></div></blockquote></div><br>