作者 dylanFrank(滔滔)
转载请联系作者 原文链接:http://blog.csdn.net/Dylan_Frank/article/details/77876006
这里简要总结一下线性规划的单纯形算法,做如下几个方面的总结,其余以后再来填坑.
- 几何表示
- 标准型的代数解法
- 其他情形与标准型的互换
- 退化情形
几何表示
先看这样一个问题
我们很容易用下面的数学语言来描述这个问题
max zs.t 6x1+4x2x1+2x2−x1+x2x2xi=5x1+4x2≤24≤6≤1≤2≥0
如果我们用几何来描述这个问题的话则是这样的
其中阴影部分表示可行域(feasible region)
黑色加粗的线条表示边界
两个边界的交点称为角点(corner-point CP)
在可行域上的角点称谓 角点可行解(CPF)
共享一边的角点称为角点邻接角点(adj CPF)
我们在这里不加证明的指出(以后有空再填坑),线性规划的最优解一定在 CPF ,并且有优性测试 (optimal test),若某一个CPF 的相邻角点的(目标函数)值都不比这个CPF优,则这个CPF 就是最优解.
由此我们不难得到一个简单的算法:
从一个初始CPF开始,沿着比它更优的
adj CPF 前行,若找到一个 CPF 这个CPF的所有 adj CPF不比 它优,则这就是最优解.比如上例中会在C点找到最优解
这就是单纯形算法,不过几何表示毕竟不能让计算机简单执行,因此我们需要将其转化为代数形式。
代数形式
线性规划的标准代数表达,(本文采用《introduction to operation research》清华大学影印版) 的表示.
max zs.t ∑i=1najixixi