单纯形法解题笔记
对于包含1个优化目标,n个变量,m个线性约束条件的线性规划问题来说,首先这是一个凸优化问题,一定存在最优值,其次最优值的取值一定是在m个约束条件构建几何体的顶点上。那么怎么找到所有的顶点,并且找到其中对应最优值的那个顶点呢?单纯形法的思路为,
1. 找到一个顶点,也就是一个基可行解
2. 在这个基可行解的基础上,跳到目标函数更好的相邻的另一个顶点上
3. 直到没有更好的顶点为止
具体实施中需要解决:
1. 什么是基可行解?
2. 怎么根据该基可行解找到另一个目标函数更好的相邻的另一个可行解上?
求解问题:
(1)初始基为
x3,x4,x5为基变量,x1,x2为非基变量,约束条件改写成:
代入目标函数得
(2)取非基变量x1=0,x2=0,得到基可行解,目标值z=120.
(3)显然不是。在中,若x1,x2增大,那么z的值也会增大,说明直接让x1,x2为零是不妥的。
而在x1和x2中,x2对z的增长贡献最大(x2前面的系数大一点)。所以不妨让x2增大到一个正数,但是x2最大增大到哪里呢?
(4)考虑让x2成为基变量,。
为了保证各决策变量非负,所以,这是x2的最大取值,此时x3=0,x3就成了非基变量(也叫出基变量),x2成了基变量(进基变量)。
即新基是x2,x4,x5,非基变量是x1,x3
为了让新的基变量对应的系数是1,所以作初等变换:
新的基
(5)x2,x4,x5是基变量,x1,x3是非基变量,约束条件改写成
->
代入目标函数,得到
令非基变量x1,x3=0,得到,目标值z=210
新的目标值比上次得到的目标值更优(210>120)是否是最优值?
(6)当然不是。理由是如果x1增大,那么显然可以增大z,沿着上面的思路,同理。为了保证决策变量非负
x1的最大值可以是
此时x4=0,所以x4成了非基变量。新的基x1,x2,x5成了基变量,而x3,x4是非基变量。
新的基
(7)x2,x1,x5是基变量,而x3,x4是非基变量,所以约束条件改写成:
->
代入目标函数有
令非基变量x3,x4为零,得到解向量,目标值z=320
8)由于这个中x3,x4前面的系数是负数,所以通过无法增大x3,x4来使z增大,而x3,x4又有非负要求,而x3=x4=0了,所以,目前已经是最优的情况。
最优解,最优值z=320