1、1.3 单纯形法原理,理论方法算法步骤单纯形表算例,一、基本概念,可行解:满足AX=b,且X0的解称为可行解。,最优解:使目标函数达到最大值的可行解称为最优解。,其中A为mn阶矩阵,基:设B是系数矩阵A的一个mn阶的满秩子矩阵,称B是(LP)的一个基。,可行域:全部可行解的集合称为可行域。,基本概念,不失一般性,设,B中每一个向量 称为基向量,与基向量对应的变量称为基变量,其余的变量称为非基变量.,基解:令所有的非基变量为零所得到的唯一的解,基可行解:满足非负约束条件X 0的基解,可行基:对应与基可行解的基,求解mm的线性方程组,令非基变量等于0,得到基变量的一组解,连同等于0的非基变量这n个
2、变量的值称为线性规划的一个基解,如果一个基解中的所有变量都是非负的这个基解称为基可行解。,例1 考虑问题,系数矩阵,基,maxZ=2x1+3x2+x3s.t. x1 +x3 5x1+2x2 +x4 10x2 + x5 4xi 0 (i=1,5),例2,maxZ=2x1+3x2+x3s.t. x1 +x3 5x1+2x2 +x4 10x2 + x5 4xi 0 (i=1,5),例2,至少n-m个,问:基解中零的个数至少有多少个?,max z=x1+2x2 s.t. x1+x23x2 1x1, x2 0,max z=x1+2x2 s.t. x1+x2+ x3 =3x2 +x4=1x1, x2 ,x
3、3, x40,x1=0, x2=0 x3=3, x4=1 基可行解,x1=0, x4=0 x2=1, x3=2 基可行解,x2=0, x3=0 x1=3, x4=1 基可行解,x3=0, x4=0 x1=2, x2=1 基可行解,x1=0, x3=0 x2=3, x4=-2 是基解,但不是可行解,O,A,B,x3=0,x4=0,x2=0,x1=0,C,D,可行域,例3,二、凸集和顶点,1.凸集: 如果集合C中任意两点x1,x2,其连线上的所有点也都是集合C中的点,则称C为凸集,其中x1,x2的连线可以表示为: x1 (1)x2(0 1)数学解析式为:任意 x1 C,x2 C,有x1 (1)x2
4、C (0 1) ,则C为凸集。,2.顶点如果集合C中不存在任何两个不同的点x1,x2,使x为这两点连线上的一个点,即对任何不同的x1 C, x2 C,不存在x=x1 (1)x2(0 1),则称x为凸集的顶点。,凸集和顶点,三、几个基本定理,定理1 线性规划问题的可行域是凸集 证: 设 X1、X2 为可行域C内的任意两点,则,有,故C为凸集,对于,三、几个基本定理,引理 线性规划问题的可行解为基可行解的充要条件是它的正分量所对应的系数列向量线性无关。,证:(1)必要性,设可行解,若X为基本可行解,则取正值的变量必是基变量,它们所对应的约束矩阵A中的列向量A1,Ak是基向量,故必线性无关。,三、几
5、个基本定理,引理 线性规划问题的可行解为基可行解的充要条件是它的正分量所对应的系数列向量线性无关。,证:,(2)充分性,因为A的秩为m,则可以从其余向量中找,构成一个基,其对应的解为X,故X为基可行解.,出m-k个与,定理2 LP的基可行解对应可行域的顶点,证 (1)充分性:,由引理知 线性相关,即存在一组不全为零的数 ,使得,假设顶点X不是基可行解,不妨设它的前k个分量为正,则有,用反证法,2019/6/18,15,2019/6/18,16,(2)必要性,仍用反证法,因此X不是基可行解。,2019/6/18,17,定理3 若线性规划问题有最优解,一定存在一个基可行解是最优解,总结几个基本定理
6、,定理1 若线性规划问题存在可行解,则问题的可行域是凸集。 引理 线性规划问题的可行解X(x1,x2,xn)T为基可行解的充要条件是X的正分量所对应的系数列向量是线性无关的。 定理2 线性规划问题的基可行解X对应线性规划问题可行域的顶点。 定理3 若线性规划问题有最优解,一定存在一个基可行解是最优解。,问题:,1.可行域顶点的个数是否有限?,2.最优解是否一定在可行域顶点上达到?,3.如何找到顶点?,4.如何从一个顶点转移到另一个顶点?,maxZ=6x1+5x2x1+3x2902x1+x2752x1+2x2 80x1, x20,maxZ=6x1+5x2x1+3x2+x3902x1+ x2 +x
7、4 752x1+2x2 +x580xi0,i=1,5,找一个基可行解,X(0)(0,0,90,75,80),Z=0 (1)Z6x1+5x2,x1的系数C16大于C2=5;选择x1为新的基变量。 X3=90-(x1+3x2) 当x3=0,X2=0时,x1=90 X4=75-(2x1+x2) 当x4=0,X2=0时,x1=37.5 X5=80-(2x1+2x2) 当x5=0,X2=0时,x1=40,最小,选择x4为换出变量即x4 0,四、单纯形法迭代原理,线性规划的代数解法,例,2019/6/18,21,Z中x2的系数C22大于0;选择x2为新的基变量。 x3=52.5-(2.5x2-0.5x4)
8、 当x3=0,x4=0时,x2=21 x1=75/2-(0.5x2+0.5x4) 当x1=0,x4=0时,x2=75 x5=5-(x2-x4) 当x5=0,x4=0时,x2=5 所以选择x5为换出变量, x2为换入变量,最小,则X(1)(37.5,0,52.5,0,5)T,Z2252x2-3x4,(2)仍然用非基变量表示基变量 x3=52.5-(2.5x2-0.5x4) x1=75/2-(0.5x2+0.5x4) x5=5-(x2-x4),2019/6/18,22,(3)用非基变量表示基变量x3=40-(1.5x4-2.5x5) x1=35-(x4-0.5x5) x2=5-(x5-x4),则X
9、(2)(35,5,40,0,0)T ,X(2)为最优解,Z235-x4-2x5,2019/6/18,23,单纯形法原理示意图,顶点4,最优解,初始顶点1,顶点2,顶点3,其实,不必搜索可行域的每一个顶点,只要从一个顶点出发,沿着使目标函数改善的方向,到达下一个相邻的顶。如果相邻的所有顶点都不能改善目标函数,这个顶点就是最优顶点。用这样的搜索策略,可以大大减少搜索顶点的个数。 按照这样的搜索策略建立的算法,叫做单纯形法。,目标函数改善,目标函数改善,目标函数改善,单 纯 形 法,1.确定初始基可行解 设标准线性规划问题的系数矩阵为:,注:当约束条件均为 号时,松弛变量系数矩阵即为单位矩阵;当约束
10、条件 或 时,构造人工基.,令非基变量等于0,即可得初始基可行解:,定义:两个基可行解称为相邻的,如果它们之间变换且仅变换一个基.,代入约束方程组有,设初始基可行解为,2、从一个基可行解转换为相邻的另一个基可行解,2019/6/18,26,则,故X(1)是一个可行解,2019/6/18,27,3、最优性检验,讨论,单纯形法计算步骤,1.将非标准型线性规划化为标准型 2.确定初始基可行解:一般设松弛变量为初时基可行解 3.判断:若所有的非基变量的检验数j0,则此解为LP的最优解,若存在某一非基变量的检验数 j0,则问题还没有达到最优解,需进行改进 4.迭代:选换入变量maxcj- zj/ cj-
11、zj0假设xk为换入变量;选换出变量minbi/aik,aik0,假设选取xl为换出变量;然后迭代,使得alk1,其余aik为0,单纯形表求解线性规划问题,maxZ=6x1+5x2x1+3x2902x1+x2752x1+2x2 80x1, x20,maxZ=6x1+5x2x1+3x2+x3902x1+ x2 +x4 752x1+2x2 +x580xi0,i=1,.,5,例,x1为换入变量即新的基变量。,所以把x4换出基变量,作为非基变量,。,所以把x5换出为非基变量,x2为换入变量即新的基变量。,此时所有的检验数都小于等于0,所以该解为最优解。,最优解为X(35,5,40,0,0)T,Z*23
12、5,Step 0 获得一个初始的单纯形表,确定基变量和非基变量 Step 1 检查基变量在目标函数中的系数是否等于0,在约束条 中的系数是否是一个单位矩阵。 Step 2 如果表中非基变量在目标函数中的系数全为负数,则已得到最优解。停止。否则选择系数为正数且值最大的变量进基,转step 3。 Step 3 如果进基变量在约束条件中的系数全为负数或0,则可行域开放,目标函数无界。停止。否则选取左边常数和正的系数的最小比值,对应的基变量离基,转step 4。 Step 4 确定进基变量的列和离基变量的行交叉的元素为“主元”,对单纯形表进行行变换,使主元变为1,主元所在列的其他元素变为0。将离基的基
13、变量的位置用进基的非基变量代替。转step 2。,单纯形表的算法描述,1.maxZ=3x1+9x2x1+3x221-x1+x24x1, x20,maxZ=3x1+9x2x1+3x2+x321-x1+ x2 +x4 4xi0,举例,所以把x4换出为非基变量,x2为换入变量即新的基变量。,所以把x3换出为非基变量,x1为换入变量即新的基变量。,此时所有的检验数都小于等于0,所以该解为最优解。,最优解为X(9/4,25/4,0,0)T,Z*63,由于非基变量x4的检验数0,所以我们可以把它作为换入 基变量来考虑。,此时所有的检验数都小于等于0,所以该解为最优解。Z*=63,1.maxZ= x1+ x2-2 x1+ x24x1- x22x1, x20,maxZ=x1+ x2-2x1+x2+x34x1- x2 +x4 2xi0,举例,所以把x3换出为非基变量,x2为换入变量即新的基变量。,可以看出,x1的检验数为3,大于0,但是x1的系数列向量中 的所有元素(-2,-1)T,都小于0,所以该题为无界解.,