python培训之线性规划的求解方法

发布时间:2023-01-09 09:35:15 人气:76 作者:多测师

  python线性规划的求解方法

  说明

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

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

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

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

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

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

  4、内点法。

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

  5、启发法。

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

python培训之线性规划的求解方法

  单纯法实例

  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]))

  以上就是python线性规划的求解方法,希望对大家有所帮助。更多Python学习指路:请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线