[Couenne] Wrong optimum

Giacomo Nannicini giacomo.n at gmail.com
Fri Oct 22 16:02:15 EDT 2010


Pedro,
if you have your own code, a workaround is to access the
CouenneProblem object after the optimization is complete, and check
the values given by CouenneProblem::getCutOff() and
CouenneProblem::getCutOffSol(). These should give you the best
solution found by Couenne, even if not accepted by Cbc.
This works in most situations, except if you do "strange" operations.

Giacomo

On Fri, Oct 22, 2010 at 3:33 PM, Pietro Belotti <pbelott at clemson.edu> wrote:
> Dear Pedro,
>
> in principle, Couenne should find the optimal solution with value zero.
> However, sometimes Couenne does find a solution with the right value (zero
> in this case), but it can't convince Cbc (the underlying branch-and-bound
> algorithm) of that, and Cbc retains the wrong solution (5.44 in this case)
> as the best one.
>
> Moreover, Couenne uses 0 as a cutoff to eliminate portions of the feasible
> set (through bound reduction) and terminates quickly, with Cbc,
> unfortunately, outputting the wrong solution as optimal.
>
> I have made some changes (namely, introducing a looser tolerance) to both
> Couenne/trunk and Couenne/stable/0.3, and was able to compute the optimal
> solution. Please let me know if you are using stable/0.2 or stable/0.1
> instead. I do plan to merge those changes into the older versions too,
> just not too soon.
>
> Hope this helps.
>
> Best,
> Pietro
>
> --
> Pietro Belotti
> Dept. of Mathematical Sciences
> Clemson University
> email: pbelott at clemson.edu
> phone: 864-656-6765
> www:   myweb.clemson.edu/~pbelott
>
> On Fri, 22 Oct 2010, Joao Pedro Pedroso wrote:
>
>> Dear Pietro,
>>
>> I am using Couenne for solving the AMPL model below.  The optimum is
>> y = x = profit = 0; however Couenne reports:
>>
>>   couenne: Optimal
>>   y = 1
>>   x = 13.335
>>   h = 0
>>   q = 13.335
>>   profit = -5.54444
>>
>> Is there any assumption on the models that can be solved by Couenne?
>>
>> Thanks,
>>
>> Pedro
>> --
>> var y binary;                # setup
>> var x >= 0;                  # production
>> var q >= 0;                  # put in market
>> var p >= 0;                  # price
>> var h >= 0;                  # inventory
>>
>> maximize profit:
>>  (q * p - (50 * y + 5 * h));
>>
>> subject to
>>  BOM:        0 + x = q + h;
>>  Demand:     p = 10 - .25 * (q + 13.33);
>>  Fixed:      x <= y * 20;
>>  # Init:               y = 0;
>>
>> option halt_on_ampl_error yes;
>> option solver couenne;
>>
>> solve;
>>
>> display y, x, h, q, profit;
>>
>>
>
> _______________________________________________
> Couenne mailing list
> Couenne at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/couenne
>




More information about the Couenne mailing list