证明问题的 NP 完备性

发布于 2024-10-15 02:50:39 字数 258 浏览 3 评论 0 原文

我们给定一个集合 A = {a1,a2,...,an}

给定 A 的子集 B1,B2,...,Bm。如果名为 H 的 A 子集与所有给定的 B 都有交集,我们将 H 称为“覆盖子集”。对于给定的 A 和 B,是否存在大小为 K(H 的基数为 K)的“覆盖子集”?证明这个问题是NP完全问题。

我们应该将一些已知问题简化为“覆盖子集”问题。

We are given a set A = {a1,a2,...,an}

Given subsets of A named B1,B2, ..., Bm. If a subset of A named H has intersection with all given B's, we call H "Covering subset". Is there any "covering subset" of size K (cardinality of H is K) for given A and Bs? Prove that this problem is NP-Complete.

We should reduce some known problem to "covering subset" problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

狼亦尘 2024-10-22 02:50:39

更新 这称为击球集。您可以在维基百科文章中阅读相同的答案。

在某种程度上,这个问题与设置覆盖问题是双重的。

我们将更改一些术语。令 {B1, B2, ...} 为元素,{a1, a2, ...} 为集合。如果原问题中的 set Bj 包含 ai,则“Set”ai 在新问题中包含“元素”Bj

现在,您只需选择覆盖所有“元素”Bj 的最小数量“集合”ai。这个问题是 NP 完全问题,如上面的链接所示。

为了阐明转换,只需替换 set/element 和 contains/contained,就可以从另一个问题定义生成一个问题定义。比较以下

每个集合Bj都包含一些选定的元素ai
每个“元素”Bj 都包含在某些选定的“集合”ai

update This is called a hitting set. You can read the same answer in wikipedia article.

This problem is, in a way, dual to set cover problem.

We'll change some terminology. Let {B1, B2, ...} be elements and {a1, a2, ...} be sets. 'Set' ai contains 'element' Bj in a new problem if set Bj contains ai in original problem.

Now, you just need to select minimum number of 'sets' ai covering all 'elements' Bj. And that problem is NP-complete, as shown in the link above.

To clarify the transformation, one problem definition can be produced from another just by replacing set/element and contains/contained. Compare following

Every set Bj contains some selected element ai
Every 'element' Bj is contained by some selected 'set' ai

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文