Pyomo: можно ли присвоить проектной переменной только определенные значения? - PullRequest
0 голосов
/ 29 мая 2019

Я хочу, чтобы переменная проектирования принимала только указанные значения в процессе оптимизации.

Например: Пусть x будет переменной, которая может принимать только определенное значение, например:

x = [0.1,0.5,1.0,1.7,2.3]

Как можно написать на python, используя pyomo (если это возможно)?

Надеюсь, я был чист.

1 Ответ

2 голосов
/ 29 мая 2019

Вы должны сделать это с целочисленными переменными.Например, если есть 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, но это общий подход к моделированию, который одинаков, независимо от того, какой язык / пакет моделирования вы используете.

...