『最优化理论、建模与算法』单纯型法
本文最后更新于:2021年10月17日 凌晨
线性规划与单纯形法
标准形式
对于一般的线性规划有如下的标准矩阵形式
其中为未知变量,A为系数矩阵,为目标函数,为目标系数向量
归纳后有以下特点
- 线性规划模型特点
- 决策变量:非负:注意未限制的决策变量
- 约束条件:变为等式
- 最优化目标:最大化目标
- 是线性函数
对于非标准类型可以直接转化为标准型,下面给出具体方法
- 标准形式转化
-
极小化目标函数问题:转为极大化目标函数
-
约束条件不是等式:引进松弛变量
-
变量无符号限制:引进正负变量
-
右端存在负值:相反
-
线性规划的解
- 线性规划解情况
- 存在有限最优解
- 唯一最优解、无限最优解
- 无有限最优解
- 无最优解
- 存在有限最优解
- 基、基变量
- 代换条件极值,解出一部分值,转化为非条件极值
- 凸集、超平面:已介绍
好的你已经了解了线性规划的标准型
单纯型法
-
基本定义
首先保证标准型是的系数矩阵 的秩为
矩阵的个阶子矩阵,其中划分为非奇异矩阵便是矩阵的基,剩余的奇异矩阵为
则,
从而
此时对于 ,有唯一值对应:
则对于可行解:令非基变量为零,则可以得到关于的阶线性方程。此方程得到的值称为基本解
-
基本原理
定理1:若线性规划问题存在可行解,则线性规划的可行域是凸集
定理2:线性规划问题的基可行解X对应 可行域(凸集)的顶点
定理3:若线性规划存在最优解,则一定在可行解上
然而实际中对于可行域的顶点逐个寻找的时间复杂度过于高,如今流传最广的方法便是单纯形法
基本步骤如下:
-
将矩阵分为标准基与非标准基,确定基本的参数
-
存在一种检验数向量使得当存在检验数大于零时表示此解还可优化,若检验数向量表示已经达到了最优解。 如果达到了最优解则退出,否则向下进行
并且每一个对应一个 ,当是表示此解的数值提升会使得目标函数增加,选择一个对应的变量进行增加,相应的满足等式使得其他的变量减小
-
由于所有变量的非负性,在有一个变量变为0时停止。此时达到了另一个”顶点“,重新计算检验数,重复步骤2
-
检验数的原理
将上述式子带入到目标函数中,已知,, 有
已知标准形式是最大化目标:且都是定值,所以令
当 增大即可认为目标函数增大,对于作为零处理,所以在增大一个非基变量减小基变量可以保证一定会让矩阵想着更优解运行。
最后对于其他解解的情况,
-
无穷最优解
往往是当检验数全为零,或者是得到的解向量存在非基变量不为零,也即该变量的变化对最优化目标无影响。即无穷最优解
-
无解
一般来讲很少出现无解的情况。。。往往是在寻找解的过程出现循环,。即无解。可以用bland方法,摄动法,和辞典序法来消除循环的影响。
-
总结
最后简单解释下单纯形法的原理
初始化一个解,从一个极点出发,不断增大减小变量数值也即保证沿着可行域的边界移动,并且保证找到的新极点的目标值比当前目标函数值不减
实际计算往往使用下图表不断迭代进行。了解原理后计算一次便可了解具体算法
参考
-
最优化:建模、算法与理论 刘浩洋,户将,李勇锋,文再文著
-
最优化理论与算法 第2版第二版 陈宝林 清华大学出版社
-
吴祈宗 运筹学[M].机械工业出版社:,