人工智能与机器学习——线性规划中的单纯形法、大M法的excel求解、python求解;非线性规划的拉格朗日乘子法求解、python求解
一、原理介绍
1. 单纯形法的原理
单纯形法就是秉承“保证每一次迭代比前一次更优”的基本思想:先找出一个基本可行解,对它进行鉴别,看是否是最优解;若不是,则按照一定法则转换到另一改进后更优的基本可行解,再鉴别;若仍不是,则再转换,按此重复进行。因基本可行解的个数有限,故经有限次转换必能得出问题的最优解。如果问题无最优解,也可用此法判别。
2. 大M法的原理
在线性规划问题的约束条件中加人工变量后,要求在目标函数中相应地添加认为的M或一M为系数的项。在极大化问题中,对人工变量赋于一M作为其系数;在极小化问题中,对人工变量赋于一个M作为其系数,M为一任意大(而非无穷大)的正数。把M看作一个代数符号参与运算,用单纯形法求解,故称此方法为大M法。
3. 拉格朗日乘子法的原理
基本的拉格朗日乘子法就是求函数f(x1,x2,…)在约束条件g(x1,x2,…)=0下的极值的方法。其主要思想是将约束条件函数与原函数联立,从而求出使原函数取得极值的各个变量的解。
二、线性规划中的单纯形法、大M法的excel求解
1. 线性规划求解题目
2. 单纯形法的excel求解
计算结果
3. 大M法的excel求解
三、单纯形法python编程
1. 建立线性回归分析标准化模型
创建txt文档如下:
2. 编写python代码
import numpy as np
def pivot(d,bn):
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<