#python #linear-programming #pyomo
#python #линейное программирование #pyomo
Вопрос:
Я пытаюсь закодировать модель линейного программирования с помощью Pyomo. У меня есть вопрос по поводу оператора if. Пусть цель — минимальное время выполнения всех заданий.
Job1 Job2 Setup
machine1 25 30 30
machine2 40 50 50
machine3 35 59 60
Каждая машина должна быть настроена хотя бы один раз, если используются машины 1 и 2, нам нужно дополнительно 20 минут.
Я прочитал несколько сообщений о методе big-M, который может решить эту проблему. Но я не знаю, как это сделать, когда это связано с целью. Спасибо!
Комментарии:
1. Мы не увидим проблемы, если вы не предоставите никакого кода!
Ответ №1:
Пусть m(i)∈{0,1}
указывается, используется ли машина i. Тогда дополнительное время настройки может выглядеть следующим образом:
both12Time ≥ 20*(m(1) m(2) - 1)
both12Time ≥ 0
Мы предполагаем, что здесь общее время сведено к минимуму.