Вы должны сделать это с целочисленными переменными.Например, если есть N
возможные значения x
, тогда пусть x[n] = 1
, если x
равно n
-ому возможному значению, и 0
в противном случае.Каждый раз, когда у вас есть x
в исходной модели, замените его на
sum {n=1,...,N} v[n] * x[n]
, где v[n]
- это n
-е возможное значение.Наконец, добавьте ограничение, которое говорит:
sum {n=1,...,N} x[n] == 1
Я не пишу их в синтаксисе Pyomo, но это общий подход к моделированию, который одинаков, независимо от того, какой язык / пакет моделирования вы используете.