导语:
本文主要介绍了关于python线性规划的求解方法的相关知识,包括多目标线性规划,以及线性规划求解方法这些编程知识,希望对大家有参考作用。
说明
1、图解法,用几何绘图的方法,求出最优解。
这种方法在高中就已经教过,在经济研究中非常常用。
2、矩阵法,引入松弛变量。
将线性规划问题转化为增广矩阵形式,然后逐步求解是简单法之前的典型方法;
3. 简单的方法,利用多面体在可行区域逐步建立新的顶点,不断逼近最优解。
它是线性规划研究的里程碑,仍然是最重要的方法之一;
4、内点法。
通过选择可行域内的点,向下迭代,达到最优解,是目前理论上线性规划问题的最佳解;
5、启发法。
依靠经验准则不断迭代改进并寻找最优解,如贪心法、模拟退火、遗传算法、神经网络等。
单纯法实例
import numpy as np #导入相应的库
import sys
def solve(d,bn):
while max(list(d[0][:-1])) > 0:
l = list(d[0][:-2])
jnum = l.index(max(l)) #转入下标
m=[]
for i in range(bn):
if d[i][jnum] == 0:
m.append(0.)
else:
m.append(d[i][-1]/d[i][jnum])
inum = m.index(min([x for x in m[1:] if x!=0])) #转出下标
s[inum-1] = jnum #更新基变量
d[inum] /= d[inum][jnum]
for i in range(bn):
if i != inum:
d[i] -= d[i][jnum] * d[inum]
def printSol(d,cn):
for i in range(cn - 1):
if i in s:
print("x"+str(i)+"=%.2f" %d[s.index(i)+1][-1])
else:
print("x"+str(i)+"=0.00")
print("objective is %.2f"%(-d[0][-1]))
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在 python 中使用 F-Strings 字符串?01/13
- ♥ python中类对象介绍11/07
- ♥ python3如何使用re导出文本数据?01/12
- ♥ Python如何确定今天是哪一天12/23
- ♥ python中二分查找方法的实现10/04
- ♥ python的字典和json有什么区别10/06
内容反馈