我对使用PuLP有疑问。 问题如下: 我们在工厂中拥有一条生产线,可以以0至10吨/小时的生产率生产产品A,B或C。成本函数将如下所示: min(电力成本*(参数_0 *生产量+参数_1))
根据所生产产品的类型,parameter_1将为整数。 (例如,产品A为16,产品B为25,产品C为5)
约束为: A的生产量为250 B的生产量为500 C的产生量为400 生产A或B或C(因为我们只有一条生产线)
我坚持如何定义变量和约束。我现在拥有的是:
我觉得在cost函数中使用字典的方法不正确吗?结果中没有列出变量Grade? p>
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])