将约束条件 \(Ax = b, x \geq 0\) 看作 \(\mathbb{R}^n\) 中的一个凸集 \(\Omega\)(称为可行域)。几何上,\(\Omega\) 是一个凸多面体。它的极点(即不能表示为集合中其他两点凸组合的点)恰好与基本可行解一一对应。
换言之,基本可行解就是可行域的“角落”。线性规划的目标函数是线性的,因此其最优值必然在某个角落(极点)达到。
在二维空间中(如右图所示):可行域是一个多边形,目标函数的等值线平行移动,最后离开可行域的点必是多边形的一个顶点。
基本解、基本可行解及其几何意义详解
线性规划是优化领域中最为基础且应用广泛的分支,它研究在一组线性约束条件下,如何使线性目标函数取得极值。无论是生产计划、资源分配,还是交通运输、通信系统设计,都能看到线性规划的身影。本页将带你走进线性规划的世界,聚焦一个核心概念——基本解,并揭示它为何是求解线性规划问题的钥匙。
线性规划问题的标准形式可写为:
其中 \(x \in \mathbb{R}^n\) 是决策变量,\(c \in \mathbb{R}^n\) 是成本系数,\(A \in \mathbb{R}^{m\times n}\) 是约束矩阵,\(b \in \mathbb{R}^m\) 是右端项。我们通常假设 \(m < n\) 且 \(\text{rank} A=m\),\(b \geq 0\)。
任何其他形式(如最大化、不等式约束)均可通过引入松弛变量或剩余变量转化为上述标准型。因此,掌握标准型的求解方法是理解线性规划的关键。
对于方程组 \(Ax = b\),由于变量个数多于方程个数,通常有无穷多组解。但若我们从 \(A\) 的 \(n\) 个列向量中选出 \(m\) 个线性无关的列构成基矩阵 \(B\),则令其余 \(n-m\) 个变量(称为非基变量)为零,可唯一解出基变量 \(x_B = B^{-1}b\),从而得到一个基本解:
如果这个基本解还满足 \(x \geq 0\),则称之为基本可行解。基本可行解中若某些基变量为零,则称为退化的基本可行解。
这意味着,我们无需在无穷多的可行点中盲目搜索,而只需将注意力集中在有限个基本可行解上。最优解(如果存在)必定出现在某个基本可行解处。这一定理极大地简化了求解过程,也为单纯形法的诞生提供了理论依据。
将约束条件 \(Ax = b, x \geq 0\) 看作 \(\mathbb{R}^n\) 中的一个凸集 \(\Omega\)(称为可行域)。几何上,\(\Omega\) 是一个凸多面体。它的极点(即不能表示为集合中其他两点凸组合的点)恰好与基本可行解一一对应。
换言之,基本可行解就是可行域的“角落”。线性规划的目标函数是线性的,因此其最优值必然在某个角落(极点)达到。
在二维空间中(如右图所示):可行域是一个多边形,目标函数的等值线平行移动,最后离开可行域的点必是多边形的一个顶点。
二维可行域与目标函数等值线示意图
生产计划问题:
坐标: \((0, 0)\)
目标函数: \(f = 0\)
| 变量 | \(x_1\) | \(x_2\) | \(x_3\) | \(x_4\) | \(x_5\) |
|---|
选择入基变量:
可见,最优解正是在某个基本可行解处取得。单纯形法的思想就是从一个基本可行解出发,沿着可行域的棱边转移到相邻的、使目标值更优的基本可行解,直至找到最优。
单纯形法要求从一个基本可行解开始迭代。对于形如下述不等式约束的线性规划问题(所有约束为“\(\le\)”且右端项非负):
在每个不等式左侧添加一个非负的松弛变量,将不等式化为等式标准型:
此时,若取原变量 \(x_1 = 0, x_2 = 0\),则松弛变量的取值恰好等于右端项:\(x_3 = 40, x_4 = 20, x_5 = 12\),这组解显然满足所有约束且非负,因此是一个基本可行解(基变量为 \(x_3, x_4, x_5\),基矩阵为单位阵)。
本例中,从初始基本可行解 \((x_1, x_2, x_3, x_4, x_5) = (0,0,40,20,12)\) 出发,通过单纯形法的换基迭代,最终移动到最优顶点 \((x_1, x_2) = (5,7)\)(对应松弛变量值可通过约束求得)。这正是上述交互演示所展示的过程。
当线性规划的标准型中不包含单位矩阵(即无法直接获得初始基可行解)时,引入人工变量构造一个单位矩阵。为使人工变量最终为零,需在目标函数中给予极大惩罚。
对于最大化问题,人工变量在目标函数中的系数设为 \(-M\)(\(M\) 为一个任意大的正数);对于最小化问题,系数设为 \(+M\)。这样,在寻优过程中,算法会强制将人工变量从基变量中换出。
基变换时,通常选择检验数最大的非基变量入基,按 \(\theta\) 准则确定出基变量,以主元作初等行变换,重复直至满足最优条件。
两阶段法将求解过程分为两个阶段,避免了直接使用大 \(M\) 可能带来的数值稳定性问题,尤其适用于计算机求解。
引入人工变量,构造辅助目标函数 \(w = \sum (\text{人工变量})\),并求解其最小值。约束条件与原问题添加人工变量后的等式组相同。
以第一阶段最终单纯形表为基础,去除人工变量列,恢复原问题的目标函数(系数需重新计算检验数)。使用单纯形法继续迭代,直到得到最优解或判定无界。
两阶段法不仅逻辑清晰,而且能有效识别无可行解的情形,是实际求解线性规划问题的重要方法。