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