人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题

python编程-----通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题

单纯形法和scipy库对比分析

  • python编程-----通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题
    • (一)、单纯形法
    • (二)、求解线性规划的最优解和最大值
    • (三)、Python编程实现单纯形法
    • (四)、相关资料

(一)、单纯形法

① 何为单纯形法?
单纯形法 simplex method 求解线性规划问题的通用方法。单纯形是美国数学家G.B.丹齐克于1947年首先提出来的。它的理论根据是:线性规划问题的可行域是 n维向量空间Rn中的多面凸集,其最优值如果存在必在该凸集的某顶点处达到。顶点所对应的可行解称为基本可行解。
② 基本思想
单纯形法的基本思想是:先找出一个基本可行解,对它进行鉴别,看是否是最优解;若不是,则按照一定法则转换到另一改进的基本可行解,再鉴别;若仍不是,则再转换,按此重复进行。因基本可行解的个数有限,故经有限次转换必能得出问题的最优解。如果问题无最优解也可用此法判别。 根据单纯形法的原理,在线性规划问题中,决策变量(控制变量)x1,x2,…x n的值称为一个解,满足所有的约束条件的解称为可行解。使目标函数达到最大值(或最小值)的可行解称为最优解。这样,一个最优解能在整个由约束条件所确定的可行区域内使目标函数达到最大值(或最小值)。求解线性规划问题的目的就是要找出最优解。
③ 、具体步骤
1)、把线性规划问题的约束方程组表达成典范型方程组,找出基本可行解作为初始基本可行解。
2)、若基本可行解不存在,即约束条件有矛盾,则问题无解。
3)、若基本可行解存在,从初始基本可行解作为起点,根据最优性条件和可行性条件,引入非基变量取代某一基变量,找出目标函数值更优的另一基本可行解
4)、按步骤3进行迭代,直到对应检验数满足最优性条件(这时目标函数值不能再改善),即得到问题的最优解。
5)、若迭代过程中发现问题的目标函数值无界,则终止迭代。
④ 、最优解
1)、存在着一个最优解
2)、存在着无穷多个最优解
3)、不存在最优解

(二)、求解线性规划的最优解和最大值

例题:

人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第1张图片
Excel求解:
人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第2张图片
分析如下:

人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第3张图片
人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第4张图片
Excel使用大M法求解线性规划:
人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第5张图片
Python调用optimize包和scipy求解线性规划
人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第6张图片
结果如下图:
人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第7张图片

(三)、Python编程实现单纯形法

人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第8张图片

运行结果如下:
人工智能与机器学习-python编程-通过单纯形法和scipy库对比分析求解线性规划最大值和最优解问题_第9张图片
经过对比,二者基本区别不大,单纯形法结果更加精确

(四)、相关资料

单纯形法:
https://blog.csdn.net/weixin_43902708/article/details/89253943
大M法:
https://wenku.baidu.com/view/fbebfab21a37f111f1855b96.html

你可能感兴趣的:(人工智能机器学习)