python线性规划的求解方法

说明

1、图解法,用几何绘图的方法,求出最优解。

中学就讲过这种方法,在经济学研究中非常常用。

2、矩阵法,引入松弛变量。

将线性规划问题转化为增广矩阵形式,然后逐步解决,是简单性法之前的典型方法;

3、单纯法,利用多面体在可行领域逐步构建新的顶点,不断逼近最优解。

是线性规划研究的里程碑,至今仍是最重要的方法之一;

4、内点法。

通过选择可行域内点沿下降方向不断迭代,达到最佳解决方案,是目前理论上最好的线性规划问题解决方案;

5、启发法。

依靠经验准则不断迭代改进,搜索最优解,如贪心法、模拟退火、遗传算法、神经网络等。

单纯法实例

importnumpyasnp#导入相应的库
importsys
defsolve(d,bn):
whilemax(list(d[0][:-1]))>0:
l=list(d[0][:-2])
jnum=l.index(max(l))#转入下标
m=[]
foriinrange(bn):
ifd[i][jnum]==0:
m.append(0.)
else:
m.append(d[i][-1]/d[i][jnum])
inum=m.index(min([xforxinm[1:]ifx!=0]))#转出下标
s[inum-1]=jnum#更新基变量
d[inum]/=d[inum][jnum]
foriinrange(bn):
ifi!=inum:
d[i]-=d[i][jnum]*d[inum]

defprintSol(d,cn):
foriinrange(cn-1):
ifiins:
print("x"+str(i)+"=%.2f"%d[s.index(i)+1][-1])
else:
print("x"+str(i)+"=0.00")
print("objectiveis%.2f"%(-d[0][-1]))

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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。