• 技术文章 >Python技术 >Python基础教程

    python线性规划的求解方法

    小妮浅浅小妮浅浅2021-09-13 09:41:08原创5419

    说明

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

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

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

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

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

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

    4、内点法。

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

    5、启发法。

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

    单纯法实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    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学习指路:python基础教程

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

    专题推荐:python线性规划
    上一篇:python数据导入的使用注意 下一篇:python线性规划问题的处理步骤

    相关文章推荐

    • python用户输入的方法• python if-elif-else语句是什么• python列表中if语句的用途• Python f-string字符串格式化的介绍• Python Dijkstra算法是什么• python最短路径问题的介绍• python Bellman-Ford算法是什么• python Floyd算法是什么• python A*算法是什么• python最短路径算法如何选择• python数据导入的使用注意

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网