Python Pulp
1、问题描述
某厂生产甲乙两种饮料,每百箱甲饮料需用原料6千克、工人10名,获利10万元;每百箱乙饮料需用原料5千克、工人20名,获利9万元。
今工厂共有原料60千克、工人150名,又由于其他条件所限甲饮料产量不超过8百箱。
(1)问如何安排生产计划,即两种饮料各生产多少使获利最大?
(2)若投资0.8万元可增加原料1千克,是否应作这项投资?投资多少合理?
(3)若每百箱甲饮料获利可增加1万元,是否应否改变生产计划?
(4)若每百箱甲饮料获利可增加1万元,若投资0.8万元可增加原料1千克,是否应作这项投资?投资多少合理?
(5)若不允许散箱(按整百箱生产),如何安排生产计划,即两种饮料各生产多少使获利最大?
2、用PuLP 库求解线性规划
2.1 问题
(1)数学建模
设 生产甲 X箱,乙 Y箱
Objective:max 100000*X + 90000*Y Constraint:
1) 原料:6*X + 5*Y 60
2) 工人:10*X + 20*Y 150
3) 甲箱数不超过800:X800
4) X,Y 0
5) X,Y int
(2)PuLP建模求解
problem1 = LpProblem('Problem1LP',LpMaximize)#定义线性规划问题本身 x = LpVariable('x',lowBound= 0, upBound= 800, cat= 'Continuous')#定义变量X代表制造甲的箱数 y = LpVariable('y',lowBound=0, cat = 'Continuous') problem1 += (100000*x + 90000*y) #目标函数 problem1 += (6*x + 5*y) <= 60 problem1 += (10*x + 20*y) <= 150 problem1.solve()#response 为1 print(problem1.name) #输出求解状态 print('Status:', LpStatus[problem1.status])#输出求解状态 #Problem1LP #Status: Optimal for v in problem1.variables(): print(v.name, "=", v.varValue) # 输出每个变量的最优值 print("F1(x)=", pulp.value(problem1.objective)) # 输出最优解的目标函数值 #x = 6.4285714 #y = 4.2857143 #F1(x)= 1028571.427