在PuLP python中制定LpVariable和约束条件

时间:2019-10-24 09:38:09

标签: python pulp

我对使用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?

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])

0 个答案:

没有答案