0

我正在阅读 Dasgupta-Papadimitriou-Vairani 的题为 Algorithms 的教科书中的单纯形算法

在每次迭代中,单纯形有两个任务: 1. 检查当前顶点是否最优(如果是,则停止)。2. 确定下一步要搬到哪里。

正如我们将看到的,如果顶点恰好在原点,这两个任务都很容易。如果顶点在别处,我们将变换坐标系以将其移动到原点!

首先让我们看看为什么起源如此方便。假设我们有一些通用的 LP

最大 c 转置 * x Ax <= bx >= 0

其中 x 是变量向量,x = (x1; : : : ; xn)。假设原点是可行的。那么它肯定是一个顶点,因为它是 n 个不等式 {x1>=0, ..., xn>=0 } 紧的唯一点。

现在让我们解决我们的两个任务。任务1:

当且仅当所有 ci <= 0 时,原点才是最优的

如果所有 ci <= 0,则考虑到约束 x>=0,我们不能指望更好的客观值。相反,如果某些 ci > 0,则原点不是最优的,因为我们可以通过提高 xi 来增加目标函数。

因此,对于任务 2,我们可以通过增加一些 ci > 0 的 xi 来移动。我们可以增加多少?直到我们遇到其他一些限制。也就是说,我们释放紧约束 xi >= 0 并增加 xi 直到一些其他不等式,以前松散,现在变得紧。

在那一点上,我们又恰好有 n 个紧不等式,所以我们处于一个新的顶点。

例如,假设我们正在处理以下线性程序。

> max 2x1 + 5x2 2x1 - x2 <= 4 ----> Eq  1
 x1 + 2x2 <= 9 ----> Eq  2
> -x1 + x2 <= 3 -----> Eq  3
 x1 >= 0 -----------> Eq  4
  x2 >= 0 -----------> Eq  5

单纯形可以从约束 4 和 5 指定的原点开始。要移动,我们释放紧约束 x2 >= 0。随着 x2 逐渐增加,它遇到的第一个约束是 -x1 + x2 <= 3,因此它必须在 x2 = 3 处停止,此时这个新的不平等很严重。因此,新顶点由方程 3 和方程 4 给出。

因此,如果我们在原点,我们知道该怎么做。但是如果我们当前的顶点 u 在其他地方呢?诀窍是将 u 转换为原点,方法是将坐标系从通常的 (x1, ..., xn) 转移到 u 的局部视图。这些局部坐标由(适当缩放的)距离 y1, ..., yn 到定义和包围 u 的 n 个超平面(不等式)组成:

               u
              / \
             /   \
            /    /\
           /    /y1\
          /----x    \
            y2

具体来说,如果这些封闭不等式之一是 ai * x <= bi,那么从点 x 到那个特定“墙”的距离是 yi = bi - ai * x

这种类型的 n 个方程,每壁一个,将 yi 定义为 xi 的线性函数,并且这种关系可以反转以将 xi 表示为 yi 的线性函数。因此,我们可以根据 y 重写整个 LP。这并没有从根本上改变它(例如,最佳值保持不变),而是在不同的坐标系中表达它。修改后的本地 LP 具有以下三个属性:

修正后的局部 LP 具有以下三个性质: 1. 它包括不等式 y >= 0,它们只是定义 u 的不等式的变换版本。2. u 本身就是 y 空间的原点。3. 成本函数变为 max cu + ~cT * y,其中 cu 是目标函数在 u 处的值,~c 是转换后的成本向量。

我很难理解下面提到的上述语句中的技巧:

诀窍是将 u 转换为原点,方法是将坐标系从通常的 (x1, ..., xn) 转移到 u 的局部视图。这些局部坐标由(适当缩放的)距离 y1, ..., yn 到定义和包围 u 的 n 个超平面(不等式)组成:

作者在上述语句中将坐标系从“u”转移到局部视图是什么意思?

局部坐标由到 n 个超平面的距离组成是什么意思?

请解释

提前感谢您的时间和帮助

4

1 回答 1

0

这是与基矩阵的逆相乘的几何解释。

于 2020-03-25T19:54:47.540 回答