[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