【问题标题】:Fastest Algorithm for Finding a Minimum Set Cover寻找最小集合覆盖的最快算法
【发布时间】:2014-04-11 18:41:00
【问题描述】:

找到最小集合覆盖的最省时和正确的算法是什么? 我不需要代码本身。我想要一个关于它是如何工作的解释或伪代码。
例如,我们有

Set S = {1,2,3,..,12}

Subsets S1 = {1,2,3,4,5,6}, S2 = {5,6,7,8,9}, S3 = {1,4,7,10}, S4={2,5,7,8,11}

S5 = {3,6,9,12}, S6 = {10,11}

最小设置封面是 S3 U S4 U S5。 提前致谢!

【问题讨论】:

  • 您应该提到如果“算法”是指近似算法,通过对 Google 的一些研究,您可能会发现这是一个 NP 完全问题NP Complete 早在 1972 年。
  • @Fallen 为什么? IMO 要求最有效的 optimal 算法解决问题是合法和明智的(在这种情况下是指数的)。我的意思是这仍然是一个糟糕的问题,因为这些信息很容易获得
  • @NiklasB:“寻找最小集合覆盖的最快算法”。他可能要求一种近似算法或算法来处理可以准确完成的小集合。
  • @Fallen 只有足够小的输入才有可能从指数界限自动跟随(除非 P = NP 是)我仍然不明白你的意思,但我同意它会是有助于了解套数。因此,您应该对此进行澄清,而不是指出 OP 显然不感兴趣的近似算法。如果很难,那就很难,但解决小输入仍然是可行的

标签: algorithm np-complete set-cover


【解决方案1】:

如 cmets 中所述,设置封面是 NP 难的。我相信,对于“自然”实例,实践中最好的精确方法是基于integer programming。编写一个好的整数程序求解器需要相当多的技巧,所以您可能只想使用求解器库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    相关资源
    最近更新 更多