您现在的位置是:课程教程文章

python有哪些求解线性规划的包

2023-12-13 23:53课程教程文章 人已围观

说明

1、Scipy库提供简单的线性或非线性规划问题。

但不能解决背包问题的0-1规划问题,或者整数规划问题,混合整数规划问题。

2、PuLP可以解决线性规划、整数规划、0-1规划和混合整数规划问题。

为不同类型的问题提供各种解决方案。

3、Cvxpy是一个凸优化工具包。

可以解决线性规划、整数规划、0-1规划、混合整数规划、二次规划和几何规划等问题。

实例

以整数线性规划为例

#-*-coding:utf-8-*-
importpulpaspulp

defsolve_ilp(objective,constraints):
printobjective
printconstraints
prob=pulp.LpProblem('LP1',pulp.LpMaximize)
prob+=objective
forconsinconstraints:
prob+=cons
printprob
status=prob.solve()
ifstatus!=1:
#print'status'
#printstatus
returnNone
else:
#return[v.varValue.realforvinprob.variables()]
return[v.varValue.realforvinprob.variables()]



#解如下整数线性规划
#maximizez=c*x=3*x1+4*x2+5*x3
#subjectto:
#x123>=0
#x1+2*x2<20
#x2+3*x3<=40





V_NUM=3
#变量,直接设置下限
variables=[pulp.LpVariable('X%d'%i,lowBound=0,cat=pulp.LpInteger)foriinrange(0,V_NUM)]
#目标函数
c=[3,4,5]
objective=sum([c[i]*variables[i]foriinrange(0,V_NUM)])
#约束条件
constraints=[]

a1=[1,2,0]
constraints.append(sum([a1[i]*variables[i]foriinrange(0,V_NUM)])<=100)
a2=[0,1,3]
constraints.append(sum([a2[i]*variables[i]foriinrange(0,V_NUM)])<=40)
printconstraints

res=solve_ilp(objective,constraints)
printres

以上就是python求解线性规划的包,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

课程教程:python有哪些求解线性规划的包

上一篇:python如何对单个值测试多个变量?

下一篇:没有了

站点信息

  • 文章统计篇文章