2016-12-28 4 views
0

Я получаю эту ошибку: «CPLEX (по умолчанию) не может извлечь выражение», но когда я удаляю функцию журнала в функции объекта, ошибка решена. Мой код выглядит следующим образом:Ресурс t Путь t Тип местоположения CPLEX (по умолчанию) не может извлечь выражение

range k=1..4; 
range n=1..4; 
//inputs 
float p[n][k]=...; 
float M=...; 
float B=...; 


//variables 
dvar boolean w[n]; 
//objective 



maximize (sum(k in k) log(sum(n in n)(w[n]*exp((-1*p[n][k]))))) ; 

//constraints 
subject to 
{ 
    sum (n in n) w[n]<= 2 ; 
} 

Это сбивает с толку; Я не знаю в чем проблема. Кто-нибудь знает решение?

+0

CPLEX ограничен линейными выражениями, а также несколькими выбранными нелинейными выражениями, такими как квадратичные. Я не думаю, что поддерживается «журнал». – TimChippingtonDerrick

ответ

0

Действительно журнал не поддерживается CPLEX, но CP может справиться с этим. Вы можете добавить

using CP; 

в начале вашей модели? приветствует

0

Вы должны иметь другое название для цикла, то есть sum(k in k) должно заменить первое k другим именем, потому что вы уже объявляете второй k как диапазон. например: sum(l in k)

Смежные вопросы