У меня вопрос по использованию PuLP. Проблема заключается в следующем: у нас есть одна производственная линия на предприятии, где мы можем производить продукцию A, B или C с производительностью от 0 до 10 тонн / час. Функция стоимости будет выглядеть примерно так: min (electric_cost * (параметр_0 * production_volume + параметр_1))
параметр_1 будет целым числом в зависимости от типа произведенного продукта. (например, продукт A равен 16, продукт B равен 25, продукт C равен 5)
ограничения будут следующими: объем производства A равен 250, объем производства B составляет 500, объем производства C составляет 400, либо производят A или Bили C (поскольку у нас только одна производственная линия)
Я застрял в том, как определить переменные и ограничения. Что у меня сейчас есть:
Я чувствую, что подход к использованию словаря в функции стоимости не является правильным? В результатах переменная Grade не указана?
from pulp import *
prob = LpProblem ("Extruder scheduling problem",LpMinimize)
hours = list(np.linspace(0,len(df_planning)-1,len(df_planning)))
hours = ["h" + str(int(s)) for s in hours]
grades = list(TotalGradeList["grade"].values)
C_elec = dict(zip(hours, list(maskDAM["Euro"].values)))
intgradedict={0:16,1:25,3:5}
ProdVol = LpVariable.dicts("ProdVol",hours,Q_min,Q_max)
Grade = LpVariable.dicts("Grade",hours,1,len(grades))
prob += lpSum([(C_elec[i]*(coef0+ coef1*ProdVol[i] + intgradedict.get(Grade[i]))) for i in hours]), "electricity cost of production"
prob.writeLP("model.lp")
prob.solve()
print("Status:", LpStatus[prob.status])