Я пытаюсь использовать целлюлозную упаковку для планирования производства.У меня есть заказы с разными моделями.Разные заводы делают разные модели с разной скоростью.Я должен планировать все заказы, но моя цель - сделать только несколько следующих (то есть 6 дней) дней, чтобы закончить больше продуктов.Ограничения в основном заключаются в том, что время выполнения заказа (дата исполнения) и время, когда заказ может начать создаваться (дата выпуска).
Я не уверен, правильно ли я использую целлюлозу: в качестве даты выпуска я установил LpVariables r.и c как полные дни.Как и порядок, я начну на факультете j в момент времени r и завершу через период c.
r=LpVariable('release date',(o,f),0)
c=LpVariable('complete days',(o,f),0)
d=LpVariable('due date',(o,f),0)
Я предполагаю, что объективная функция должна быть такой:
prob=lpProblem('aps',LpMaximize)
prob+=LpSum([c[o][f]*speed[o][f] for o in orders for f in factories if d[o][f]<=6])+lpSum([(6-r[o][f])*speed[o][f] for o in orders for f in factories if d[o][f]>=6 and r[o][f]<=6])
Мой вопроскак сделать это правильно.Может быть, использовать другой пакет?Или просто поменять несколько кодов?