线性规划的难点不在“线性”二字,而在于把几何图形、矩阵中的基和算法中的换基看成同一件事。
标准形
课程采用的一个标准形式是
mincTx,Ax=b,x≥0,
其中 A∈Rm×n 且通常假设 rank(A)=m。
常见转换:
- aTx≤b 加松弛变量 s≥0,变为 aTx+s=b;
- aTx≥b 减剩余变量,再视需要加人工变量;
- 自由变量写成 x=x+−x−,其中 x+,x−≥0;
- 最大化 cTx 等价于最小化 −cTx。
转换之后不要忘记:新变量只是算法工具,最终答案要还原到原变量。
基本解
从 A 中选取 m 个线性无关列构成基矩阵 B,其余列为 N。把变量相应分成 xB,xN:
BxB+NxN=b.
令非基变量 xN=0,得到基本解
xB=B−1b.
若 xB≥0,它是基本可行解。若某个基本变量也为零,称为退化基本可行解;退化时多个基可能对应同一个几何点。
基本可行解为什么对应极点
极点不能写成集合中两个不同点的严格凸组合。对
S={x:Ax=b,x≥0},
基本可行解的正分量对应列线性无关,因此无法同时沿某个非零方向正反移动还保持非负与等式,这正是“没有穿过该点的可行线段”。反过来,若正分量对应列相关,就存在 Ad=0 的非零方向,并能在小范围内同时走 x±εd,该点便不是极点。
于是得到核心对应:
基本可行解⟺可行域极点.
为什么只搜极点
对本节标准形
S={x:Ax=b, x≥0},
若 S 非空且线性目标的有限最优值能够达到,则至少存在一个最优基本可行解,也就是最优极点。更一般地说这个结论时,必须补上“可行域(或最优面)含有极点”的前提;带直线、根本没有极点的多面体不能套用它。
直觉上,线性函数的等值面平行移动,最后接触标准形多面体时会碰到一个最优面,而这个最优面至少含一个极点。
注意结论不是“最优解一定唯一”或“所有最优解都是极点”。若等值面与一条边重合,整条边都最优,但端点仍是最优极点。
小例子
x1+x2+s1=4,2x1+x2+s2=5,x≥0.
取 B=(s1,s2) 得 x1=x2=0,s=(4,5),是基本可行解。取 B=(x1,x2),解
[1211][x1x2]=[45],
得到 (x1,x2)=(1,3),仍为基本可行解。单纯形法就是在这些相邻极点之间移动。
考试要点
- 给定基后会算 B−1b 并判断是否可行。
- “基本解”不自动非负;只有基本可行解才对应可行极点。
- 退化是基本变量为零,不等于问题无解。
- 证明极点时可用“活跃约束法向量满秩”或“正分量对应列线性无关”。