Как извлечь значения переменных решения из модели CPLEX OPL (.mod) при ее решении с помощью Python?Python

Программы на Python
Ответить
Anonymous
 Как извлечь значения переменных решения из модели CPLEX OPL (.mod) при ее решении с помощью Python?

Сообщение Anonymous »

Я решаю задачу оптимизации, написанную в CPLEX OPL (файл .mod), вызывая ее из сценария Python. Модель работает успешно и возвращает оптимальное решение, но я не могу получить значения переменных решения в массивы Python. Вот что я пытаюсь использовать в Python:

Код: Выделить всё

E_res = subprocess.run(
[OPLRUN, EV, EV_DATA],
capture_output=True, text=True
)
Pch = np.zeros((T, E, CS))

for t in range(T):
for e in range(E):
for c in range(CS):
m = re.search(rf"PCH_{t+1}_{e+1}_{c+1}=([0-9.+-eE]+)", E_res.stdout)
if m:
Pch[t, e, c] = float(m.group(1))

print("Load:\n", Pch)
Если я запущу это, я получу нулевые значения для Pch в консоли Python. Однако в журнале сценариев CPLEX OPL я вижу ненулевые значения переменных решения. Каков правильный и рекомендуемый способ получения значений переменных решения из модели OPL в Python после решения?

Подробнее здесь: https://stackoverflow.com/questions/798 ... when-solvi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»