[Cbc] Unbounded MIP problem returned as infeasible by CBCSolver
John Forrest
john.forrest at fastercoin.com
Thu Mar 6 05:08:20 EST 2014
Kish,
(model->isProvenInfeasible()) returning true is a bug - the fix is
modifying code in that function to
if (!status_ && (bestObjective_ >= 1.0e30 && !secondaryStatus_))
However when I try model->isContinuousUnbounded() it returns true
If I have
printf("status %d secondary %d infeasible %s unbounded %s\n",
model.status(),model.secondaryStatus(),model.isProvenInfeasible()
? "true" : "false",model.isContinuousUnbounded() ? "true" : "false");
in my code I get
status 0 secondary 7 infeasible false unbounded true
with above fix and
status 0 secondary 7 infeasible true unbounded true
without fix.
Can you check isContinuousUnbounded() and if it fails send me some code
to reproduce?
John Forrest
On 06/03/14 01:17, Kish Shen wrote:
> Hi,
>
> For the following (very simple) problem:
>
> Minimize
> obj: x0
> Subject To
> cons0: x0 + x1 <= 3
> cons1: X0 = X1 = 0
> Bounds
> x0 Free
> x1 Free
> Integers
> x0
> End
>
> which is unbounded, but when we use CBCSolver to solve this problem,
> we get the result that the problem is infeasible, specifically,
>
> CbcModel* model;
> .....
> model->isProvenInfeasible() returns 1 (true)
>
> Here is the relevant code we use to determine the status of a problem
> after calling CbcSolver (via CbcMain0 and CbcMain1) to solve the problem:
>
>
> if (model->isInitialSolveProvenOptimal()) {
> if (model->isProvenInfeasible()) {
> ....
>
> For the above problem, the above if .. succeeds, which I think should
> only be the case if the problem is proven infeasible at the root node,
> but the root node solve should be unbounded (and in fact if I solve
> the linear problem with CLP, the result is indeed unbounded), but the
> test
>
> We actually have code to test if the root node solve is unbounded (in
> which case we classify the solve result as "Unknown", i.e. either
> infeasible or unbounded, which was the result I expected for the above
> problem), but
>
> model->isContinuousUnbounded() returns 0 for the above problem, rather
> than 1 as I expected.
>
> Is there something I am doing wrong, or is there a problem?
>
> I am using Cbc 2.8, which was downloaded last month (14 Feb).
>
> Thanks in advance for any help.
>
> Cheers,
>
> Kish
>
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>
>
More information about the Cbc
mailing list