数量惊人的问题使线性编程(LP)的问题自然减少。请参见[1]的第7章中的示例,例如网络流量,二分匹配,零和博弈,最短路径,线性回归形式甚至电路评估!
由于电路评估简化为线性规划,因此任何问题都必须具有线性规划公式。因此,通过简化为线性程序,我们有了一种“新”的排序算法。所以,我的问题是
- 将对实数数组进行排序的线性程序是什么?
- Reduce-to-LP-and-solve排序算法的运行时间是多少?
- 算法由S.达斯古普塔,C. PAPADIMITRIOU和U.瓦齐拉尼(2006)
数量惊人的问题使线性编程(LP)的问题自然减少。请参见[1]的第7章中的示例,例如网络流量,二分匹配,零和博弈,最短路径,线性回归形式甚至电路评估!
由于电路评估简化为线性规划,因此任何问题都必须具有线性规划公式。因此,通过简化为线性程序,我们有了一种“新”的排序算法。所以,我的问题是
Answers:
以下答案基本上等同于您已经知道的答案,但看起来似乎不太“神奇”。另一方面,它是技术性更高的,但是我相信通用技术“将您的问题写为对置换矩阵的优化并调用Birkhoff-von Neumann”是一个很好的知识。
对于置换的限定置换矩阵 为0-1矩阵,使得,如果和否则为。这只是根据置换向量坐标的矩阵:如果则。从现在开始,我将为。{ 1 ,... ,Ñ } P σ P 我Ĵ = 1 Ĵ = σ (我)P 我Ĵ = 0 X σ Ŷ = P σ X Ŷ 我 = X σ (我) Ý = P σ X σ (X )
还有一个定义:如果 ×的非负矩阵每一行和每一列的总和为1,则它是双随机的。M
在组合优化中非常重要的一个事实-Birkhoff-von Neumann定理:
当且仅当矩阵是置换矩阵的凸组合时,即并且当且仅当存在置换和正实数使得和。σ 1,... ,σ ķ α 1,... ,α ķ中号= Σ ķ 我= 1 α 我P σ 我 Σ α 我 = 1
注意,不等式定义了一个双重随机矩阵
∀ Ĵ :Ñ Σ我= 1中号我Ĵ = 1 ∀ 我,Ĵ :中号我Ĵ ≥ 0
所有这些不等式共同决定了一个多态性,Birkhoff-von Neumann定理指出,该多态性的极点(顶点)都是置换矩阵。从基本的线性规划中,我们知道这意味着任何具有上述不等式作为约束(且没有其他约束)的线性程序都将具有置换矩阵作为最优解。
因此,给定要排序的输入,我们只需要提出一个线性目标:f a(M )
然后制定一个线性程序客观最大化和如上所约束不平等,这样保证了最佳的解决方案是置换矩阵为使得被分类。,当然,它很容易“读出”从。
一种选择是,其中。验证
瞧,您有一个用于排序的线性程序。排序似乎很愚蠢,但这实际上是最有效的优化方法。