если формулировка цели в линейном программировании

#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
 

Мы предполагаем, что здесь общее время сведено к минимуму.