近似算法的理论应用


21

最近,我开始研究NP难题的近似算法,并且想知道研究它们的理论原因。(这个问题并不意味着发炎-我只是好奇)。

逼近算法的研究产生了一些真正美丽的理论-PCP定理与逼近硬度之间的联系,UGC猜想,Goeman-Williamson逼近算法等。

我想知道关于旅行商,非对称旅行商和其他变体,机制设计中的各种问题(例如组合拍卖)等问题的近似算法的研究意义。这样的近似算法在理论的其他部分是否有用?过去还是纯粹出于自己的目的而学习?

注意:我没有问过任何实际应用,因为据我所知,在现实世界中,应用的大多是启发式方法,而不是近似算法,并且通过研究针对该算法的近似算法获得的任何见识很少会启发该启发式方法。问题。


4
我不确定我是否理解这个问题。学习任何理论主题的“理论原因”是什么?
Jeffε

1
我认为他的意思是“填写等”。在第2段中
Huck Bennett

2
如果那是我在做的,而我从未问过自己这个问题,那是错误的吗?我虽然近似算法看起来很酷!
Gopi

1
我认为动机与研究近似硬度的动机相同:了解各种问题的确切复杂性。Goemans-Williamson算法与唯一游戏难度并驾齐驱,比GW逼近因子更好。
亚伦·罗斯

1
我不确定你的最后一段是否公平。逼近算法很有趣,因为它们是处理诸如TSP之类的棘手问题建议方法。可能是这样的情况,其中许多不是以原始形式直接在实践中使用的,但是它们对了解尝试方法很有帮助。您可以说出关于精确算法的同一件事,其中许多实际上从未直接使用,在实践中使用任何算法时都需要考虑很多工程问题。在实践中,许多问题不需要精确的算法,用户将完全满意
Kaveh

Answers:


21

我强烈不同意最后一段。这样的一揽子声明没有用。如果您在网络,数据库,人工智能等许多系统领域中查看论文,您会发现实践中使用了大量近似算法。对于某些问题,人们需要非常准确的答案。例如,某航空公司对优化其机队计划很感兴趣。在这种情况下,人们使用各种启发式算法,这些算法会花费大量的计算时间,但获得的结果要比一般的近似算法所能提供的更好。

现在出于一些理论上的原因研究近似算法。首先,什么解释了这样的事实:背包在实践中非常容易,而图形着色却非常困难?两者都是NP-Hard和poly-time彼此可减少的。其次,通过研究特殊问题的近似算法,可以查明哪些类别的实例可能是简单的或困难的。例如,我们知道许多问题都允许在平面图和无次要图中使用PTAS,而在任意通用图中则要困难得多。近似的想法遍布现代算法设计。例如,人们使用数据流算法,并且没有近似透镜就很难理解/设计算法,因为即使是简单的问题也无法准确解决。



9

我也不同意至少在此概括地说的“注释”。与此相关的是,有人知道戴维·约翰逊(David Johnson)举行的坎内拉基斯(Kanellakis)奖励讲座是否在某个地方举行吗?

同样,一旦我们意识到所有NP难题在精确解的最坏情况下都是等效的,就很自然地询问寻找近似解的复杂性。Chandra很好地说明了近似算法为算法设计带来的视角变化。

我相信我们应该能够提出一些有趣的近似算法示例来证明一个定理。例如,Ø日志ñ


8

最好的启发式方法实际上是近似算法。最漂亮的近似算法只是有效的“愚蠢”启发式算法。例如,本地搜索聚类,贪婪聚类(Gonzalez),一个用于两个的价格,各种贪婪算法等,等等,等等。

因此,研究近似算法实际上就是了解什么启发式是保证的近似算法。希望对近似算法的研究可以产生两种交叉运算:

  • 将可行的想法从启发式方法转移到算法设计工具中。同样,将思想从算法设计转移到在实践中行之有效的试探法/算法。
  • 一个刚毕业的人和一个职位之间的交叉受精。

简而言之,世界是不精确的,输入也不是精确的,通过各种算法问题优化的目标函数也不是精确的,充其量只能代表人们想要的模糊近似,并且计算也不精确。为什么有人会学习精确的算法?(答案:因为精确算法只是非常好的近似算法。)

在现实世界中,几乎没有确切的算法-您需要使用近似值才能实现远程关联...


4

使用连续算法处理连续变量的问题非常烦人。例如,用精确的实数指定TSP实例的边缘权重是什么意思?

当我们允许FPTAS算法解决这些问题时,我们可以将这些参数量化为整数。这样可以使问题表现得更好(可以使用标准的图灵机),但是会产生很小的错误。

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.