Ошибка при использовании условного запроса в OPL - PullRequest
1 голос
/ 25 марта 2019

Я получаю сообщение об ошибке в модели OPL, когда использую это ограничение:

forall (j1,j2 in p: row[j1]==row[j2] && j1<j2) 

, где строка является переменной:

dvar int row [p];

Ошибка выглядит так:

Decision variable row not allowed. 

Я не знаю, почему это невозможно, но как можно решить эту проблему?

1 Ответ

1 голос
/ 25 марта 2019

условие нарезки должно быть связано и не должно содержать никаких переменных решения.Вы должны полагаться на логические ограничения:

range p=1..4;

dvar int row[p] in p;

subject to
{
 forall(j1,j2 in p) ((row[j1]==row[j2] ) => (row[j1]>=2));
}

отлично работает

привет

...