为什么互补松弛很重要?


10

在谈论对偶性时,通常会教互补松弛(CS)。从数学的角度来看,它在原始约束和对偶约束/变量之间建立了良好的关系。

申请CS的两个主要原因(如研究生课程和教科书中所述):

  1. 检查LP的最优性
  2. 帮助解决双重问题

从实用的角度来看,考虑到当今解决LP的计算能力和多项式算法,CS仍然有意义吗?我们总是可以解决双重问题,并解决以上两点。我同意在CS的帮助下解决双重问题“效率更高”,是吗?还是CS不仅满足您的需求?除了以上两点,CS到底在哪里有用?在谈论近似算法时,我经常看到涉及CS概念的文章,但我不了解它在其中的作用。


2
不是我的专业领域,但听起来您是在问为什么即使确定X在计算上很容易,我们也为什么要教授X的属性。例如,即使我们具有多项式时间算法来检查二部性,为什么我们仍要教其“无奇数循环=二部”表征。从某种意义上说,这就是您的要求吗?
罗宾·科塔里

不完全是。我了解您为什么教它。我希望从实际的POV中了解在求解LP和/或设计近似算法时如何使用POV。除了变量和约束之间的数学关系之外,我们还能获得什么见解。
博士

好吧,我认为它可以帮助获得“分析”解决方案……这可能很难通过计算机获得。
usul 2014年

1
我没有“明白”这个问题。仅仅因为我们使用计算器和计算机对数字进行加法和乘法运算,我们仍然需要知道数字的属性吗?
Chandra Chekuri 2014年

@ChandraChekuri-我不是那个意思。我只是想弄清楚该定理的优点和重要之处。我不想将其视为“它就是它的样子”,但希望对它的重要性有更深刻的了解LP双重性
博士

Answers:


14

互补松弛度是设计原始对偶算法的关键。基本思想是:

  1. 从可行的双重解决方案开始 y
  2. 尝试发现原始可行 x 这样 (x,y) 满足补充的懈怠。
  3. 如果步骤2成功,我们就完成了。否则阻碍寻找x 提供一种修改方法 y这样对偶目标函数值会增加。重复。

一个典型的例子是匈牙利算法。福特-福克森算法可以看作另一个例子。请注意,步骤2是一个可行性问题,它通常比原始优化问题更容易解决,并且通常也可以组合解决。这就是补充松弛的力量。例如,在最低成本两方匹配的情况下,步骤2等同于检查是否存在仅使用紧边的完美匹配。在最大的情况下s--t 流程,步骤2等于检查饱和边是否分开 st

双重对偶算法很好,原因很多。从哲学上讲,它们比通用算法提供了更多的见识。它们通常提供强多项式时间算法,而我们仍然没有强多项式LP解算器。它们通常比通用算法更实用。如果我们不能明确地写下LP,而我们唯一的选择是椭球算法,则这尤其正确,非二分匹配和Edmonds的原始对偶算法就是这种情况。

通过使用互补松弛的松弛版本,Primal-dual也是用于近似算法的非常有用的框架。这在设计用于NP难题的近似算法(例如参见Williamson-Shmoys书的第7章)以及设计具有良好竞争比的在线算法(请参阅Buchbinder和Naor的)中很有。这里的要点是算法维护了一个解决方案yLP解决一个难题的对偶,并且在每个步骤中都找到一个整体式原始可行x从而满足近似的互补松弛度,或改善对偶解y。近似互补松弛是以下形式的条件:xi>0 则对应的双重约束是严格的,如果 yj>0,如果 x 被缩放 α。这给出了一个近似系数α。以上两个来源都对它进行了很好的解释。

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.