У меня есть проблема оптимизации, где я хочу минимизировать общую стоимость системы, поэтому я пишу целевую функцию, которая является суммой моих различных затрат. Проблема включает в себя использование одной из трех машин, каждая из которых имеет разную стоимость при разном пороге использования. Я определяю каждую машину (model.Machine #) как двоичную переменную и объявляю параметры каждой модели стоимости машины. Cost #). Я пытаюсь получить стоимость, чтобы иметь возможность минимизировать ее, но когда я пишу ограничение:
model.Cost1*model.Machine1 + model.Cost2*model.Machine2 + model.Cost3*model.Machine3 == model.MachineCost
Где я тоже пишу:
model.Machine1 + model.Machine2 + model.Machine3 == 1
Гуроби говорит мне, что он не может обработать квадратичную функцию, ссылаясь на первое ограничение, упомянутое выше. Однако это параметры, умноженные на двоичные переменные, здесь нет ничего квадратичного.
Я знаю, что вопрос расплывчатый и является частью более серьезной проблемы, но я надеюсь, что вы понимаете, о чем я говорю, и помогаете мне!
Большое спасибо за вашу помощь!