【问题标题】:Minimum Bandwidth Problem最小带宽问题
【发布时间】:2011-08-02 18:18:13
【问题描述】:

我对寻找图的最小带宽的 NP 完全“最小带宽”问题很感兴趣。对于那些不熟悉的人,这里有一个关于它的链接......

http://en.wikipedia.org/wiki/Graph_bandwidth

我已经实现了 Cuthill-McKee 算法,这非常成功地为我提供了带宽减少的顶点的排列;但是,我正在寻找最小带宽,而不仅仅是接近的减少带宽。如果你们中有人遇到过这个问题,哪些算法提供的解决方案是最小,而不仅仅是减少 ?我不需要任何算法的实际实现,我只需要关于研究哪些算法可以产生实际最小带宽的建议。

【问题讨论】:

    标签: algorithm graph bandwidth np-complete minimum


    【解决方案1】:

    您可以做的最简单的改进可能是获取您的 Cuthill-McKee 算法的结果并在其上抛出 Tabu Search

    请参阅this answer,了解一些可以应用的算法的概述。

    【讨论】:

      【解决方案2】:

      这是一个有趣的问题,但是当我阅读 Wiki(您的链接)时:

      未加权和加权 版本是特殊情况 二次瓶颈分配 问题。带宽问题是 NP-hard,即使对于一些特殊的 [4]关于存在 有效的逼近算法,它 已知带宽是 NP-hard 在任何常数范围内近似, 这甚至在输入时成立 图表仅限于 Caterpillar 树(Dubey、Feige 和 Unger 2010)。在 另一方面,一些 多项式可解的特殊情况 是已知的。

      所以wiki说用任何常数来近似它是NP-Hard(所以这个问题没有PTAS),你的机会就是使用启发式算法,确保蛮力算法有效,(编号节点的数字介于1.. n 在启动时随机,之后使用蛮力)但你应该花 1000 年来解决毛毛虫的问题。 您应该搜索启发式算法,而不是近似算法和精确算法。

      【讨论】:

      • 一千年对于蛮力来说可能是非常乐观的:)
      • 感谢您的建议。我最终使用了 Cuthill-McKee 算法的近似值来建立最小带宽的上限。我还计算了下限,然后通过所有排列进行蛮力计算,仅考虑基于边界满足特定标准的排列。它为我提供了一个足够快的解决方案,以适应我正在使用的图形大小,并且比纯粹的蛮力要好得多!
      • @Nitrex88,干得好,但你找到了一个很好的启发式或......对于你的问题,而不是近似,近似意味着有一个近似因子限制你的答案最坏的情况,像这样的一些问题有没有近似因子,如果你找到一个算法(在 P 中),它是蛮力的多项式近似,你可以解决 NPC 问题,(我说这只是为了学习,在这种情况下说近似并不重要,但有时它很重要) .
      【解决方案3】:

      由于它是 NP 完整的,因此您必须使用某种“蛮力”算法。所以主要是你有不同的蛮力作为选项,例如像分支定界或线性规划(它的 LIP,所以它在 NP 中)。

      由于它是 NP 完全的,您还可以通过从 NP 完全性证明转换问题实例,应用算法并将其转换回来,从而将每个解决方案用于不同的 NP 完全问题(TSP、SAT、...)。

      【讨论】:

      • @Chris Hopman:原始海报写道:the NP-complete "minimum bandwidth",我没有理由认为他错了。
      猜你喜欢
      • 2012-05-18
      • 2014-04-24
      • 2014-03-22
      • 2016-06-21
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      相关资源
      最近更新 更多