Как записать не равный в amp или задать условия для параметра переменной? - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь установить переменную W {m в M, n в N}, где M и N - один и тот же набор значений.М и N представляют местоположение.Переменная W представляет собой передачу между m и n.Следовательно, m не может быть равно n в переменной W. Например, когда m = 1, n может быть равно только 2 и 3 (M = N = c (1,2,3)).

Это двухэтапная стохастическая модель, минимизирующая затраты.Я пытался записать m <> n в условия суммы, а также записать m <> n в ограничении.Все вернули синтаксическую ошибку.

Я пытался добавить условие в целевую функцию:

сумма {m в M, n в N |m <> n} W [m, n];

сумма {m в M, n в N, m <> n} W [m, n];

sum {m вM, n в N, m! = N} W [m, n];

сумма {m в M, n в N |m! = n} W [m, n];

Я также пытался добавить его в определение переменной:

var W {m в M, n в N, m <> n};

и т.д ..

Я пробовал много способов, но ни один не работает.AMPL вернул синтаксическую ошибку, если я добавил m <> n или m! = N в модель.После того, как я удалил условия m! = N, модель работает, но возвращает неправильный номер.

1 Ответ

1 голос
/ 29 сентября 2019

сумма {m в M, n в N: m <> n} W [m, n];

...