【发布时间】: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