1.作用
单纯形法是解决线性规划问题的一个有效的算法。线性规划就是在一组线性约束条件下,求解目标函数最优解的问题。
2.线性规划的一般形式
在约束条件下,寻找目标函数z的最大值。
3.线性规划的可行域
满足线性规划问题约束条件的所有点组成的集合就是线性规划的可行域。若可行域有界(以下主要考虑有界可行域),线性规划问题的目标函数最优解必然在可行域的顶点上达到最优。
单纯形法就是通过设置不同的基向量,经过矩阵的线性变换,求得基可行解(可行域顶点),并判断该解是否最优,否则继续设置另一组基向量,重复执行以上步骤,直到找到最优解。所以,单纯形法的求解过程是一个循环迭代的过程。
图1 可行域
4.线性规划的标准形式
在说明单纯形法的原理之前,需要明白线性规划的标准形式。因为单纯形算法是通过线性规划的标准形来求解的。一般,规定线性规划的标准形式为:
写成矩阵形式:
标准形的形式为:
1)目标函数要求max
2)约束条件均为等式
3)决策变量为非负约束
普通线性规划化为标准形:
1)若目标函数为最小化,可以通过取负,求最大化
2)约束不等式为小于等于不等式,可以在左端加入非负松弛变量,转变为等式,比如:
同理,约束不等式为大于等于不等式时,可以在左端减去一个非负松弛变量,变为等式。
3)若存在取值无约束的变量,可转变为两个非负变量的差,比如:
本文最开始的线性规划问题转化为标准形为:
5.单纯形法
5.1几何意义
在标准形中,有m个约束条件(不包括非负约束),n个决策变量,且(n>=m)。首先,选取m个基变量 ,基变量对应约束系数矩阵的列向量线性无关。通过矩阵的线性变换,基变量可由非基变量表示:
如果令非基变量等于0,可求得基变量的值 :
如果为可行解的话,Ci大于0。那么它的几何意义是什么呢?
还是通过上述具体的线性规划问题来说明。
如果选择x2、x3为基变量,那么令x1、x4等于0,可以去求解基变量x2、x3的值。对系数矩阵做行变换,如下所示,x2=9/2,x3=15/2
X1=0表示可行解在x轴上;X4=0表示可行解在x1+2x2=9的直线上。那么,求得的可行解即表示这两条直线的交点,也是可行域的顶点,如图所示:
图2
所以,通过选择不同的基变量,可以获得不同的可行域的顶点。
5.2如何判断最优
如前所述,基变量可由非基变量表示:
目标函数z也可以完全由非基变量表示: