线性规划问题
线性规划的标准形
将一个线性规划问题化为标准形的方法不再叙述(求(max)改求(min),不等号补松弛变量和剩余变量变等号)。
标准形可以写为如下的矩阵形式:
例如以下这个标准形线性规划问题:
将它写成矩阵乘法:
令:
那么原来的线性规划标准形可简写为以下的矩阵乘法形式:
这里的(Xge {f 0})表示向量(X)的每个分量非负,以后不再赘述。
线性规划标准形的可行解性质
定义
设(rank(A)=m),(A)的(m)个线性无关的列向量组成的线性极大无关组称作标准形的基(列空间的一个基底)。给定一个基:(B=(P_{i_1},P_{i_2},cdots,P_{i_m})),对应基中列向量的变量(x_{i_1},x_{i_2},cdots,x_{i_m})称作基变量(在矩阵乘法中与标准形基底列向量相乘的(X)的分量),其余变量称作非基变量。
将基变量构成的向量记作(X_B),非基变量构成的向量记作(X_N),令(X_N={f 0}),则等式约束条件变为
解得(X_B=B^{-1}b).该向量满足约束(AX=b)且非基变量全为0,称作关于基(B)的基本解,如果(X)是一个基本解且(Xge {f 0}),则称(X)是一个基本可行解,对应的基(B)成为可行基。
(注:关于为何矩阵(B)一定是可逆的?我们在这里假设线性规划的几个约束条件是线性无关的,即矩阵(A)行满秩。如若不然,(A)中存在一行可被其他行线性表出,则这个约束条件是冗余的。又矩阵的行秩等于列秩,(B)的列向量组是(A)列向量的线性极大无关组,那么(B)一定为满秩方阵,故(B)可逆。 实际上我们可以进一步推出,(A)的行数严格小于列数,如若不然,由于(A)行满秩,矩阵行秩等于列秩,所以列数大于等于列秩。若列数等于列秩,则线性方程组(AX=b)的解是唯一确定的,线性规划问题就没有意义了。)
基本可行解的性质
引理
(AX=b)的解(alpha)是基本解(Leftrightarrowalpha)中非零分量对应列向量线性无关。
定理1
如果标准形有可行解,则必有基本可行解。
定理2
如果标准形有最优解,则必存在一个基本可行解是最优解。
单纯形法
基本步骤
(1).确定初始的基本可行解
(2).检查当前的基本可行解:若当前基本可行解是最优解,或者判断该标准形无最优解,则计算结束;否则作基变换:用一个非基变量替换基变量,得到一个新的可行基和对应基本可行解,且使目标函数值下降(或不升)。
(3).重复(2).
如何选择初始基本可行解
一般引入(m)个松弛变量(x_{n+i}ge0(i=1,2,cdots,m)),将这(m)个松弛变量取为基变量,则初始基本可行解对应基变量部分:
非基变量部分:
初始基本可行解:
最优性检验
给定可行基(B=(P_{k_1},P_{k_2},cdots,P_{k_m})),将(AX=b)两边同时乘以(B^{-1}),得(B^{-1}AX=B^{-1}b).记(A)中对应非基变量得列向量构成矩阵为(N).
不妨设(矩阵分块):
则:
代入目标函数
基本可行解(X_B^{(0)}=B^{-1}b,X_N^{(0)}=0),目标函数值为(z_0=c_B^TB^{-1}b)
记(Lambda^T=c^T-c_B^TB^{-1}A=(lambda_1,lambda_2,cdots,lambda _n)^T)为检验数,则目标函数可以简化为:
记(B^{-1}A=(alpha_{ij})_{m imes n},P_j'=B^{-1}P_j(1le j le n),eta =B^{-1}b)
定理3
给定基本可行解(X^{(0)}),若所有检验数非负,则(X^{(0)})是最优解。若存在检验数(lambda_k<0)且所有(alpha_{ik}le 0(1le i le m)),则无最优解。
基变换
给定可行基(B=(P_{pi(1)},P_{pi(2)},cdots,P_{pi(m)})),设(lambda_k<0)且(alpha _{lk}>0),(x_k)必是非基变量。
用非基变量(x_k)替换基变量(x_{pi(l)}),用(P_k)替换(B)中的(P_{pi(l)}),新的基为
称(x_k)为换入变量,(x_{pi(l)})为换出变量。选取(l)的方法:使得
针对最小化的单纯形法算法步骤
1.设初始可行基
2.若所有(lambda_jge0(1le jle n)),则(X_B=eta,X_N={f 0})是最优解,计算结束。
3.取(lambda_k<0),若所有(alpha_{ik}le 0 (1le i le m)),则无最优解,计算结束。
4.取(1le lle m)使得
5.以(x_k)为换入变量,(x_{pi(i)})为换出变量做基变换。
6.转第2步判断。