Set-Cover 问题包括以下内容:
鉴于:
一组项目 U。
一组集合 S,每个集合都包含来自 U 的项目。
求集合 C 使得:
- C 是 S 的子集。
- C 中的集合包含 U 中的所有项目(至少一次)。
或者,可以找到最小C,即 |C| 尽可能小。
我知道 SCP 是 NP-Complete 并且 MSCP(或 Optimal SCP)是 NP-Hard,并且可以使用多种技术中的一种来找到它(贪婪算法、遗传算法、人工神经网络)。
但是,我想问一下找到 C 的大小(即 |C|)是否也是 NP-Hard。
举个例子:
Given the following S:
[2 4 6], [1 3 5], [3 2 1], [5 4 6], [2 3 5]
And U being:
1 2 3 4 5 6
A possible Set-Cover (C) is:
[2 4 6], [1 3 5], [2 3 5]
However, the Optimal Set-Cover (C) is:
[3 2 1], [5 4 6]
Thus |C|, the size of the Optimal Set-Cover is 2.
我要找|C| 没有解决问题。这是 NP-Hard 吗?如果没有,如何才能找到这个?