<br><font size=2 face="sans-serif">Kish,</font>
<br>
<br><font size=2 face="sans-serif">I think it is correct to return true
on isProvenInfeasible if there is no valid solution to a MIP - what do
other people think?</font>
<br>
<br><font size=2 face="sans-serif">Try putting the test isProvenDualInfeasible
before isProvenInfeasible.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Kish Shen <kish.shen@crosscoreop.com></b>
</font>
<br><font size=1 face="sans-serif">Sent by: coin-discuss-bounces@list.coin-or.org</font>
<p><font size=1 face="sans-serif">07/14/2006 12:31 AM</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Discussions about open source software for Operations Research
<coin-discuss@list.coin-or.org></font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">coin-discuss@list.coin-or.org</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: [Coin-discuss] bestPossibleObjective
for Cbc</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>On Thursday 13 July 2006 17:53, Kish Shen wrote:<br>
> John,<br>
><br>
> Thanks. I have just downloaded Coin-Cbc in branches/devel, and the<br>
> bestPossible is indeed working.<br>
><br>
> I still get a failure instead of unbounded state returned for a simple<br>
> unbounded problem. I need more time to look at the code to see what
has<br>
> changed.<br>
><br>
> I am however having problems with maximising problem -- I was doing
my<br>
> unbounded test case with a maximising problem:<br>
><br>
> max X<br>
><br>
> X = Y<br>
> X + Y >= 3<br>
> X is integer<br>
><br>
> but this problem is now returning X, Y = 2, i.e. it seems to be minimising<br>
> the problem rather than maximising!<br>
><br>
> I have not had time to look at this in detail, but thought I should
post<br>
> this before I leave today.<br>
><br>
I should have checked this in more detail before posting, but I was rushing
to <br>
leave. This problem is due to a my mistake -- I mistakenly commented out
the <br>
code that sets the optimisation sense when I was playing around with <br>
CoinPackedMatrix...<br>
<br>
However, the unbounded integer problem is still reported as a failure.
Is this <br>
the problem that have been fixed? The code I now use to test for the state
of <br>
a MIP solve try to avoid calling isProvenInfeasible() if the initialSolve
was <br>
not optimal, <br>
<br>
CbcModel* model = lpd->lp->mipmodel;<br>
if (model->isProvenOptimal()) return state_success; // optimal<br>
if (model->isInitialSolveProvenOptimal()) <br>
{<br>
.....<br>
}<br>
if (model->isInitialSolveAbandoned()) return state_lpaborted; <br>
if (model->isInitialSolveProvenPrimalInfeasible()) return state_fail;<br>
if (model->isInitialSolveProvenDualInfeasible()) return state_unbounded;<br>
<br>
for the unbounded problem, isInitialSolveProvenPrimalInfeasible() returns
<br>
true.<br>
<br>
For the same linear problem (i.e. without the integer constraints), <br>
isProvenPrimalInfeasible() correctly returns false after a call to <br>
initialSove() for the OsiCbcSolver.<br>
<br>
Cheers,<br>
<br>
Kish Shen <br>
> Cheers,<br>
><br>
> Kish<br>
><br>
> On Tuesday 11 July 2006 23:12, John J Forrest wrote:<br>
> > Kish,<br>
> ><br>
> > bestPossible should be fixed in branches/devel - also unbounded.<br>
> ><br>
> > John Forrest<br>
> ><br>
> ><br>
> ><br>
> > Kish Shen<br>
> > <kish.shen@crossc<br>
> > oreop.com>
<br>
> > To Sent by:
coin-discuss@list.coin-or.org<br>
> > coin-discuss-boun
cc<br>
> > ces@list.coin-or.<br>
> > org
<br>
> > Subject [Coin-discuss]<br>
> >
bestPossibleObjective
for Cbc<br>
> > 07/10/06 10:24
PM<br>
> ><br>
> ><br>
> > Please respond
to<br>
> > Discussions about<br>
> > open
source<br>
> > software
for<br>
> > Operations<br>
> > Research<br>
> > <coin-discuss@lis<br>
> > t.coin-or.org><br>
> ><br>
> ><br>
> ><br>
> ><br>
> ><br>
> ><br>
> > Hi,<br>
> ><br>
> > I am interested in obtaining the best possible bound on the objective<br>
> > value<br>
> ><br>
> > from a MIP solve. This value is stored in bestPossibleObjective
in the<br>
> > CbcModel, but it seems that if the MIP search is exited without
searching<br>
> > the<br>
> > whole tree, because of setting of the allowable MIP gap (e,g,
as<br>
> > specified by<br>
> > CbcAllowableFractionGap), bestPossibleObjective is set to bestObjective<br>
> > at the end of the search.<br>
> ><br>
> > For example, in the following MIP solve of the bell3a problem:<br>
> ><br>
> > Cbc0012I Integer solution of 878430 found by heuristic after
150<br>
> > iterations<br>
> ><br>
> > and 2 nodes (1.46 seconds)<br>
> > Cbc0010I After 500 nodes, 156 on tree, 878430 best solution,
best<br>
> > possible 876741 (8.18 seconds)<br>
> > Cbc0011I Exiting as integer gap of 1689.38 less than 1e-10 or
0.3%<br>
> > Cbc0001I Search completed - best objective 878430, took 5109
iterations<br>
> > and<br>
> ><br>
> > 501 nodes (8.19 seconds)<br>
> ><br>
> > the search is exited early, with<br>
> ><br>
> > bestPossibleObjective = 876741<br>
> > bestObjective = 878430<br>
> ><br>
> > but by the time I call getBestPossibleObjValue() immediately
after the<br>
> > branchAndBound() call, it is already set to 878430. [I think
this is done<br>
> > around line 1700 of my copy of CbcModel.cpp]<br>
> ><br>
> > Is there any way I can get the original bestPossibleObjective
before it<br>
> > was<br>
> ><br>
> > set to bestObjective?<br>
> ><br>
> > Thanks and cheers,<br>
> ><br>
> > Kish<br>
> > _______________________________________________<br>
> > Coin-discuss mailing list<br>
> > Coin-discuss@list.coin-or.org<br>
> > http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
> ><br>
> ><br>
> > _______________________________________________<br>
> > Coin-discuss mailing list<br>
> > Coin-discuss@list.coin-or.org<br>
> > http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
><br>
> _______________________________________________<br>
> Coin-discuss mailing list<br>
> Coin-discuss@list.coin-or.org<br>
> http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
_______________________________________________<br>
Coin-discuss mailing list<br>
Coin-discuss@list.coin-or.org<br>
http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
</font></tt>
<br>