排序为线性程序


24

数量惊人的问题使线性编程(LP)的问题自然减少。请参见[1]的第7章中的示例,例如网络流量,二分匹配,零和博弈,最短路径,线性回归形式甚至电路评估!

由于电路评估简化为线性规划,因此任何问题都必须具有线性规划公式。因此,通过简化为线性程序,我们有了一种“新”的排序算法。所以,我的问题是P

  1. 将对实数数组进行排序的线性程序是什么?n
  2. Reduce-to-LP-and-solve排序算法的运行时间是多少?

  1. 算法由S.达斯古普塔,C. PAPADIMITRIOU和U.瓦齐拉尼(2006)


3
如果您已经知道答案,为什么要问这个问题?
Yuval Filmus 2012年

2
@Joe即使您知道答案,也可以发布有趣的材料。这样做的常规方法是(精心制作)回答您自己的问题(而不是发布指向某些文档的链接,这可能会中断)。
拉斐尔

@Raphael如果没有其他人写答案,那么我会在有时间的时候提供。
2012年

@YuvalFilmus提出一个问题,即在堆栈交换时明确鼓励您知道答案。
2012年

Answers:


23

以下答案基本上等同于您已经知道的答案,但看起来似乎不太“神奇”。另一方面,它是技术性更高的,但是我相信通用技术“将您的问题写为对置换矩阵的优化并调用Birkhoff-von Neumann”是一个很好的知识。

对于置换的限定置换矩阵 为0-1矩阵,使得,如果和否则为。这只是根据置换向量坐标的矩阵:如果则。从现在开始,我将为。{ 1 ... Ñ } P σ P Ĵ = 1 Ĵ = σ P Ĵ = 0 X σ Ŷ = P σ X Ŷ = X σ Ý = P σ X σ X σ{1,,n}PσPij=1j=σ(i)Pij=0xσy=Pσxyi=xσ(i)y=Pσxσ(x)

还有一个定义:如果 ×的非负矩阵每一行和每一列的总和为1,则它是双随机的。Mn×nM

在组合优化中非常重要的一个事实-Birkhoff-von Neumann定理:

当且仅当矩阵是置换矩阵的凸组合时,即并且当且仅当存在置换和正实数使得和。σ 1... σ ķ α 1... α ķ中号= Σ ķ = 1 α P σ Σ α = 1Mσ1,,σkα1,,αkM=i=1kαiPσiαi=1

注意,不等式定义了一个双重随机矩阵

Ĵ Ñ Σ= 1中号Ĵ = 1 Ĵ 中号Ĵ0

i:j=1nMij=1
j:i=1nMij=1
i,j:Mij0

所有这些不等式共同决定了一个多态性,Birkhoff-von Neumann定理指出,该多态性的极点(顶点)都是置换矩阵。从基本的线性规划中,我们知道这意味着任何具有上述不等式作为约束(且没有其他约束)的线性程序都将具有置换矩阵作为最优解。P

因此,给定要排序的输入,我们只需要提出一个线性目标:f aM a=(a1,,an)fa(M)

  • fa(Pτ)<fa(Pσ)如果对排序但对不排序,则。σ(a)τ(a)

然后制定一个线性程序客观最大化和如上所约束不平等,这样保证了最佳的解决方案是置换矩阵为使得被分类。,当然,它很容易“读出”从。fa(M)Pσσσ(a)σPσ

一种选择是,其中。验证fa(M)vTMav=(1,,n)

  • 在是线性的;M
  • 对于, ;˚F 一个P σ= Σ ñ = 1一个σ Pσfa(Pσ)=i=1niaσ(i)
  • 上述被最大化在为其进行排序(通过矛盾:否则可能切换的两个坐标,实现了更高的值)。σ σ σσ(a)σ(a)

瞧,您有一个用于排序的线性程序。排序似乎很愚蠢,但这实际上是最有效的优化方法。


1
我还没有处理的事情:当存在多个最优解时,其中一些将不会成为置换矩阵(当然会有一些)。有许多简单的方法来解决这个问题:通过扰动您可以删除重复。a
Sasho Nikolov 2012年

1
当存在多个最优解时,某些最优解可能不是置换矩阵(但总有一些最优解将是置换矩阵)。如果目标函数是常数,则所有可行解都是最优的。
Sasho Nikolov

1
@Turbo线性程序完全用此答案编写。显然,它没有完整性约束。我不会尝试回答您的第二个问题。坐下来,尝试写下GI,以优化双随机矩阵上的线性函数,这是我在此处进行排序的方式。亲自查看失败的地方。
Sasho Nikolov

1
在实践中,您可能希望使用单纯形,但从理论上讲,您可以使用多项式时间LP解算器来获得多项式时间算法,例如内部点方法或椭圆体方法。这会给你时间多项式的位复杂。当约束矩阵是TUM(比如这里的情况),存在强烈polytime求解太cstheory.stackexchange.com/questions/4454/...a
Sasho Nikolov

1
是的,最简单的方法是确保您有一个独特的最佳解决方案,您可以通过在上添加一个微小的随机扰动来。a
Sasho Nikolov
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.