当前位置:   article > 正文

【线性代数】Python解常见的三种线性规划问题_python求解线性规划

python求解线性规划

一、线性规划问题数学模型的一般形式

在这里插入图片描述
在这里插入图片描述

二、连续性规划问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用pulp求解

import pulp
model=pulp.LpProblem('Example 7',pulp.LpMaximize)#求最大值
x1=pulp.LpVariable('x1',lowBound=0,cat='Continuous')#限制约束变量为连续性
x2=pulp.LpVariable('x2',lowBound=0,cat='Continuous')#限制约束变量为连续性
#目标函数
model+=72*x1+64*x2
#约束条件
model+=x1+x2<=50
model+=12*x1+8*x2<=480
model+=3*x1<=100
model.solve()#解决问题
pulp.LpStatus[model.status]
print('x1={}'.format(x1.varValue))#打印最优解
print('x2={}'.format(x2.varValue))
print('可获得最大利润',pulp.value(model.objective),'元')#打印最优值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

输出为:
在这里插入图片描述

三、整数规划问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用pulp求解

import pulp
model=pulp.LpProblem('Example 8',pulp.LpMaximize)#求最大值
x1=pulp.LpVariable('x1',lowBound=0,cat='Integer')#限制约束变量为整数
x2=pulp.LpVariable('x2',lowBound=0,cat='Integer')#限制约束变量为整数
y=pulp.LpVariable('y',lowBound=0,cat='Integer')#限制约束变量为整数
#目标函数
model+=y
#约束条件
model+=y-0.5*x1<=0
model+=y-1/3*x2<=0
model+=5*x1+4*x2<=960
model+=9*x1+10*x2<=1440
model+=4*x1+6*x2<=60
model.solve()#解决问题
pulp.LpStatus[model.status]
print('x1={}'.format(x1.varValue))#打印最优解
print('x2={}'.format(x2.varValue))
print('最大产量为y=',pulp.value(model.objective))#打印最优值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

输出为
在这里插入图片描述
在这里插入图片描述

四、0-1规划问题

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用pulp求解

import pulp
model=pulp.LpProblem('Example 9',pulp.LpMaximize)#求最大值
x1=pulp.LpVariable('x1',lowBound=0,cat='Binary')#限制约束变量为0-1型
x2=pulp.LpVariable('x2',lowBound=0,cat='Binary')#限制约束变量为0-1型
x3=pulp.LpVariable('x3',lowBound=0,cat='Binary')#限制约束变量为0-1型
x4=pulp.LpVariable('x4',lowBound=0,cat='Binary')#限制约束变量为0-1型
#目标函数
model+=1000*x1+1500*x2+900*x3+2100*x4
#约束条件
model+=4*x1+6*x2+6*x3+8*x4<=20
model.solve()#解决问题
pulp.LpStatus[model.status]
print('x1={}'.format(x1.varValue))#打印最优解
print('x2={}'.format(x2.varValue))
print('x3={}'.format(x3.varValue))
print('x4={}'.format(x4.varValue))
print('总价值最大为y=',pulp.value(model.objective),'元.')#打印最优值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

输出为
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/844124
推荐阅读
相关标签
  

闽ICP备14008679号