是否有可能证明,对于给定的问题,不存在最佳贪婪算法?


Answers:


9

最简单的方法是为问题设置贪婪算法,然后寻找反例。如果找到一个,就可以找到答案。否则,有很多方法可以证明这种贪婪是有效的。当然,这有一些问题(例如如何专门制定贪婪算法)。关于表征哪些问题可以贪婪地解决以及哪些问题不能贪婪地解决,对此也有一个普遍的答案。

事实上,在他们的论文“贪婪结构的精确表征”SIAM J.离散数学6,第274-283),赫尔曼,莫雷和夏皮罗给了眼前这个正式描述(称为拟阵嵌入,从而推广阵线和阵线)。摘自摘要:“作者提供了结构的精确刻画,贪婪算法在这些刻画上产生了最优解。”

通常,贪婪算法可以用加权集系统来表示 ËFw。你有一套Ë (例如,如果是最小生成树,则为边),并且您有一个 F2Ë 的子集 Ë (请考虑部分跨度森林,以解决最小跨度树的问题)。 F 表示通过组合以下元素构建的有效局部解 Ë。还有权重功能w,它可以为您提供其中任何元素的权重或成本 F。我们通常认为这是线性的-即,Ë具有权重,(部分)解决方案的权重只是元素权重的总和。(例如,生成树的权重是其边缘权重的总和。)在这种情况下,Helman等人。表明以下是等效的:

  1. 对于每个线性目标函数, ËF 有一个最佳的基础。

  2. ËF 是拟阵嵌入。

  3. 对于每个线性目标函数, ËF 正是它的最佳基础。

换句话说:对于这样的结构(基本上体现了在使用贪婪时通常会想到的结构类型),可以精确地求解拟阵嵌入的集合。

拟阵嵌入的定义并不难,因此证明给定的问题是拟阵嵌入还是非拟阵嵌入当然是可行的。在维基百科条目给出的定义很清楚。(了解为什么这些是可以被贪婪解决的确切结构的证据,这完全是另一回事……)

如果您的问题可以通过从具有线性目标函数的加权集系统中进行选择来表述,并且可以证明它不是拟阵嵌入,那么即使您没有贪婪地解决问题,也可以证明这一点。未能找到反例。(尽管我怀疑找到一个反例会容易得多。)

我想,这种方法并非完全没有问题。就像您说的那样,贪婪的一般想法是非正式的,并且很可能以不适用线性加权集系统形式化的方式进行调整。


10

是的,有这样的工作。艾伦·鲍罗丁(Allan Borodin)和他的合著者发展了一种理论,他们将贪婪的概念形式化,并获得了可以用它们达到近似比率的结果。他们介绍了一类优先级算法,该算法概括了贪婪算法。他们在该主题上的第一篇著作是论文“ (递增)优先级算法 ”。

PS上一段回答了一个不同的问题:是否有可能证明,对于给定的问题,不存在贪心算法,其逼近率小于某些 1个+ϵ?我认为与问题有关的是假设最优均值是精确的,因此该问题与P中的问题有关(我认为贪心算法具有多项式复杂性,尽管我认为这不是必需的),但已知该问题可以通过贪婪方法以外的其他方法来求解。我不知道这个问题的答案。

对ivotron:如果您不是我的初衷,我将删除此答案。


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.