[Couenne] Unknown operator error
sguazt
marco.guazzone at gmail.com
Thu Sep 8 04:40:04 EDT 2011
On Thu, Sep 8, 2011 at 9:59 AM, Stefan Vigerske
<stefan at math.hu-berlin.de> wrote:
> Hi,
>
> probably you use some nonlinear operator in your problem that is not
> supported by Couenne, but by AMPL only, e.g., errorf.
>
Hi Stefan,
Thank you for replying!
Indeed, I use a *lot* of if-then-else to prevent singularities (like
division by zero).
I've just tried to replace if-then-else operators in some way.
In most cases, I have replaced them with a binary variable.
For instance, the constraint:
sum{j in J} (if y[i,j] then ur[j]*Cr/(C[i]*(s[i,j]+eps)) else 0) <= 1;
has become:
sum{j in J} y[i,j]*ur[j]*Cr/(C[i]*(s[i,j]+eps)) <= 1;
where y is a binary variable, s is a positive variable, eps is a
parameter set to 1e-5 and the others are all parameters.
I have some trouble in replacing if-then-else in the objective function:
minimize cost: ... + sum{i in I} c2[i]*(sum{j in J} (if y[i,j] then
ur[j]*Cr/(C[i]*s[i,j]) else 0))^r[i]
where all are parameters, but y and s that are variables (as above).
Actually I replaced it with:
minimize cost: ... + c2[i]*(sum{j in J}
(y[i,j]+eps)*ur[j]*Cr/(C[i]*(s[i,j]+eps)))^r[i])
that is I have exploited the binary variable y and the use of the
correction factor eps.
The idea here is to use:
* eps to prevent a division-by-zero
* (y[i,j]*eps) both to prevent a pow(0,r[i]) (which does not like to
Couenne/AMPL since 0 < r[i] < 1) and to assign a nearly zero cost when
y[i,j] = 0.
I'm not completely satisfied with this trick since it produces
inaccurate results.
Can someone suggest a better workaround?
Thank you very much,
Best,
-- Marco
> Stefan
>
>> Hello,
>>
>> I've got the following error with Couenne (trunk version compiled
>> under Linux 64bit - gcc 4.6.0):
>>
>> ERROR: unknown operator (address 0p7f7172729f30), aborting.
>>
>> I've tried both from AMPL and from the command line by directly
>> invoking the couenne binary.
>>
>> The same problem runs with bonmin and other solvers (like MINLP).
>>
>> Any idea?
>>
>> I attach the problem in nl format.
>>
>> Best,
>>
>> -- Marco
>>
>>
>>
>> _______________________________________________
>> Couenne mailing list
>> Couenne at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/couenne
>
>
More information about the Couenne
mailing list