图解法
将约束条件在坐标系中画出,找到围成的图形(可行域),再做目标函数图像,并向值变大的方向移动,直到可行域边界,交点称为最优解
凸集:在点集中任取两点,则其连线仍在其中(即没有凹入的部分;没有空洞)。
①若LP问题的可行域存在,则可行域一定是凸集。
②若LP问题的最优解存在,则最优解或最优解之一,一定是可行域凸集的某个极点(顶点)。
单纯型法
约束条件系数的矩阵称为Amn,其m阶可逆子阵称为基B,B对应的x称为XB,非基N对应的x称为XN
则约束AX=B可写为
即
此时的X称为 基本解
非负的X称为 基本可行解
基本定理:
(1)线性规划的可行域是一个凸多面体。
(2)线性规划的最优解(若存在的话)必能在可行
域的角点获得。
(3)线性规划可行域的角点与基本可行解一一对应。
单纯型法
思想:
1.选取初始的基本可行解
2.检验该解是否为最优解 若不是 转3
3.改善该解,转2
初始可行解
若A中含有I,则直接选取I
一般来说,添加约束条件的矩阵A中,约束条件对应的矩阵即单位矩阵
检验方法:
其中,C是目标函数的系数向量,CB是基对应的x的系数,CN是非基对应的x的系数
B是基(约束条件矩阵A的某个可逆子阵),N是A中去掉B的子阵。
对于单个sigma:
其中,Pj是N的第j列
为方便定义 所有基所在位置的sigma均设置为0
判别条件:
所有sigma<=0 当前基本可行解为最优解
原理:
第一项是指基带来的收益,第二项是指非基带来的收益
如果非基已经不能带来收益了
所以该解就是最优解
改善基
选择上一步中sigma最大的k进基
选择中最小的theta对应的i出基
因为theta分子固定,theta越小,分子越大,对应的sigma就越小。
单纯形法的规模大时,计算量特别大。为了简化计算,使用单纯形表。
单纯形表
原理:
由单纯型算法得知,主要需要计算的是,因为基B每次迭代只更换一行,那么可以通过对A进行初等行变换,使基B对应的x的系数为1,进而使基B始终是单位矩阵I。
例题:
单纯形表:
表中可以看到,x3,x4,x5对应的A的子矩阵是单位矩阵
因为x2要替换x5,那么通过初等行变换,可以把x2,x3,x4对应的矩阵变换为单位矩阵。