单纯形 - 规范形式基础背后的代数直觉

Posted

技术标签:

【中文标题】单纯形 - 规范形式基础背后的代数直觉【英文标题】:simplex - algebraic intuition behind the basis of the canoncial form 【发布时间】:2019-04-14 05:47:24 【问题描述】:

我试图通过遵循text 来理解n 变量和m 技术约束问题的单纯形迭代。我很好理解迭代的几何解释——在相邻顶点之间移动。

但是,我无法理解代数直觉。现在我们在相邻的basic feasible solutions = bfs 之间是pivotingAX + IS = bX,S >= 0 的标准形式:

    为什么 bfs 的 n 变量必须等于 0? 为什么其余变量要形成basis?基不是一组跨越子空间的线性独立向量吗?我们在这里跨越什么,我们只是在寻找一个顶点,不是吗?

谢谢!

【问题讨论】:

【参考方案1】:

    BFS 应该正确地将n-m 非基本变量设置为0。一些m 基本变量本身可能是0,但这是一个退化的解决方案。

    基础确实是跨越向量b 的最小线性独立变量集。请注意,bm-vector。所以,变量对应的向量中的m可以组成一个BFS。变量总数为n。因此碱基的数量是指数的n Choose m

从一个顶点旋转或移动到另一个顶点只不过是将其中一个非基本变量(相关的列向量)替换为基础,并从基础中删除一个预先存在的变量。因此,基将始终具有m(列)向量。

在任何一个时间点,给定 A 的分区为基本和非基本变量,例如 A = [B|N],然后是 Bx = b,因此 x 变量是 B 的跨度系数,它给出b.

线性规划的一个基本结果是,有界线性约束 LP 的可行多面体的每个顶点都对应于基本解,反之亦然。参考:https://press.princeton.edu/titles/413.html

【讨论】:

以上是关于单纯形 - 规范形式基础背后的代数直觉的主要内容,如果未能解决你的问题,请参考以下文章

线性规划中的单纯形法与内点法(原理步骤以及matlab实现)

单纯形表的简单方法。

单纯形算法 matlab 代码实现

单纯形模板

线性规划中的单纯形法与内点法(原理步骤以及matlab实现)

单纯形 BZOJ3112: [Zjoi2013]防守战线