Pyomo Оптимизация минимальной стоимости с использованием бинарных переменных - PullRequest
0 голосов
/ 14 января 2019

У меня есть проблема оптимизации, где я хочу минимизировать общую стоимость системы, поэтому я пишу целевую функцию, которая является суммой моих различных затрат. Проблема включает в себя использование одной из трех машин, каждая из которых имеет разную стоимость при разном пороге использования. Я определяю каждую машину (model.Machine #) как двоичную переменную и объявляю параметры каждой модели стоимости машины. Cost #). Я пытаюсь получить стоимость, чтобы иметь возможность минимизировать ее, но когда я пишу ограничение:

model.Cost1*model.Machine1 + model.Cost2*model.Machine2 + model.Cost3*model.Machine3 == model.MachineCost

Где я тоже пишу:

model.Machine1 + model.Machine2 + model.Machine3 == 1

Гуроби говорит мне, что он не может обработать квадратичную функцию, ссылаясь на первое ограничение, упомянутое выше. Однако это параметры, умноженные на двоичные переменные, здесь нет ничего квадратичного.

Я знаю, что вопрос расплывчатый и является частью более серьезной проблемы, но я надеюсь, что вы понимаете, о чем я говорю, и помогаете мне!

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 14 января 2019

Что такое model.MachineCost? Это компонент Expression с каким-то квадратичным выражением, хранящимся внутри него?

Если нет, можете ли вы начать комментировать вещи в своей модели, пока не дойдете до минимального рабочего примера (который вызывает эту ошибку) и опубликуете это? В противном случае мы не можем быть уверены, что нет других квадратичных фрагментов модели, которые вы не показываете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...