1、基本可行方案
假设我们正在求解方程形式的一般线性程序:
这里,是一个
的矩阵,
,
,今天,我们将假设
的行是线性独立的。 (如果不是,那么系统
没有解,或者某些方程是多余的。在第一种情况下,我们只是忘记分析这样的线性程序;在第二种情况下,我们可以从删除冗余行。)
我们已经非正式地说过,基本可行的解决方案是“尽可能多的变量”为0。这不是很精确:在某些情况下(由于退化),可能有异常多的0值,并且我们不希望这与我们的定义混淆。 相反,我们进行如下定义。
选择一些列(或变量) 的
做为基本。 我们希望
是有序的,因为当以不同的顺序选择基本变量时,我们的表看起来会略有不同。 为方便起见,我们让
是非基本变量的 (n - m) 元组:那些不在
中的变量。
我们可以将向量和矩阵分为基本部分和非基本部分。举个例子,如果,
,
,我们有
,并且
,这也可以用 A 和 c 来完成:我们可以将目标函数写为
,方程组
为
。
为了得到一个基本的解决方案,我们要选择 使得
(一个
矩阵)是可逆的。 如果 A 的行是线性独立的,这总是可能的。 并非
的每一个选择都有效:例如,在二维中,如果可行域的两条边是平行线,则它们永远不会相交。
现在设置,并且
。这满足
。此外,如果我们有
(总是有
,因为
),我们称 x 为基本可行解。
2、角点的其他概念
除了基本可行的解决方案之外,还有其他的“角点”概念。我们说
集合的一个顶点是一个点
使得某个线性函数
在
处严格最小化:对于任何
,
;
。
集合的极值点是不位于
的任何其他点之间的点
。形式上,如果
是极值点,只要
对于
;
,
或
。
换句话说,如果可以写成
对于 y;
和
,或者
(我们可以设置
)或
(我们可以设置
)。
当我们考虑的集合是 ,线性规划的可行域,三个概念基本可行解,顶点,极值点都相同。 这就是我们今天要尝试证明的。
(1)从基本可行解到顶点
命题 2.1。 任何基本可行解都是可行域的一个顶点。
证明。 任意选择基本和非基本变量,设置
会产生基本可行解。 定义
那么是 x 中非基本变量的总和。由于
,当我们设置
时,
被最小化。这正是对应于
的基本可行解。
(2)从顶点到极值点
命题 2.2。 集合的任何顶点也是
的极值点。(特别是,任何基本可行解也是可行域的极值点。)
证明。 令是
的一个顶点,并且
是向量使得对于任何
和
,
。
假设位于线段
与
;
;
。 这就是不成为极端的点。
使用不等式
和
,是矛盾的,因此 x 必须是一个极值点。。
(3)从极端点到基本可行的解决方案
最后一步,从极端点到基本可行的解决方案,是比较棘手的。
命题 2.3。 可行域的任何极值点都是基本可行解。
证明。 令 为可行域的任意极值点。 定义
和
,类比 B 和 N 以获得基本的可行解。
我们不能真正问 是否可逆,因为我们甚至没有理由认为它是正方形的。 但是我们可以做的是问我们是否可以找到一个非零的
使得:
如果没有这样的 u,那么我们将认为 x 是一个基本可行的解决方案。 如果有这样一个 u,那么我们将论证 x 实际上不是一个极值点,并产生矛盾。
首先,假设不存在这样的 u:只要 ,我们就有
。在这里,我们需要一些线性代数。W索引的列是
线性独立列,所以我们知道
(因为列是
中的向量)。因为 A 具有完整的行秩,我们知道我们可以将 W 扩展到某个 B(其中
),使得由 B 索引的列仍然是线性独立的,因此 B 是可逆的。
现在,让 N 是 B 的补码。因为我们从 W 开始并可能将其变大来找到 B,所以我们知道 N 是通过从 Z 开始并可能使其变小来找到的。 因为 (这就是我们选择 Z 的方式),所以我们也知道
。
现在我们快完成了。。 由于
,我们有
,所以
。 这正是我们想要的基本解决方案。
其次,假设存在这样一个 u。 然后我们有
这意味着
形式的点仍然满足方程组:即
。
并非所有形式的点都是可行的:对于某些 t,我们可以找到一个坐标 i,使得
。但是,我们知道这样的 i 必须在 W,而不是 Z,因为对于任何
,我们有
。所以
。这意味着当
足够小时,
也是如此。
选择一个足够小的使得
和
都是可行的:对于每个 i,
和
。 这很像旋转:对于每个 i 要求
满足
就足够了。
但是现在,x 位于从到
的线段上。 事实上,它是那条线段的中点。 因为
且
,所以它不同于两个端点。 所以 x 在这种情况下不是一个极值点,这与假设相反。