精确覆盖问题

✍ dations ◷ 2025-05-19 20:59:18 #理论计算机科学,NP完全问题

在一个全集X中若干子集的集合为S,精确覆盖是指,S的子集S*,满足X中的每一个元素在S*中恰好出现一次。

在计算机科学中,精确覆盖问题指找出这样的一种覆盖,或证明其不存在。这是一个NP-完全问题,也是卡普的二十一个NP-完全问题之一。

满足以下条件的集合为一个精确覆盖:

合二为一,即X中的元素在S*中出现恰好一次。

S {\displaystyle {\mathcal {S}}} , , , } 是集合 = {1, 2, 3, 4}的一个子集的集合,并满足:

其中一个子集 {, } 是 的一个精确覆盖,因为 = {1, 3} 而 = {2, 4} 的并集恰好是 = {1, 2, 3, 4}。同理, {, , } 也是 .的一个精确覆盖。空集并不影响结论。

通常我们用S的每个子集与X的元素之间包含关系的二元关系来表示精确覆盖问题。

包含关系可以用一个关系矩阵表示。. 矩阵每行表示S的一个子集,每列表示X中的一个元素。矩阵行列交点元素为1表示对应的元素在对应的集合中,不在则为0.

通过这种矩阵表示法,求一个精确覆盖转化为求矩阵的若干个行的集合,使每列有且仅有一个1。同时,该问题也是精确覆盖的典型例题之一。

下图为其中一个例子:

S* = {, , } 便是一个精确覆盖。

包含关系也可以用一个二分图表示。

二分图左侧每个节点表示S的每个集合,右侧每个节点表示X的每个元素,而精确覆盖便是一种匹配,满足右侧的每个点恰好有一条边。

Exact-cover-bigraphExact-cover-bigraph-solved

X算法是高德纳提出的解决该问题的算法,而舞蹈链算法(Dancing Links,DLX)算法是X算法在计算机上的一种高效实现。

相关

  • 食品安全食品安全是一门跨学科领域,专门探讨在食品加工、存储及销售等步骤中,各方能如何保障食品卫生与食用安全、降低疾病隐患及防范食物中毒。探讨者透过科学方法对于可能造成消费者
  • 外切酶外切酶,或核酸外切酶(英语:exonucleases)可以是单独存在的酶,或是大型酶复合物的一部分。此类酵素能将聚核苷酸链分解成核苷酸。作用方式是将3'或5'端上的磷酸酯键水解。脂酶(胆盐
  • 祖师祖师 可以指:
  • 坡地蠕动蠕动(地貌学),即为斜坡上的松散堆积物或表面岩层在自身重力作用下,顺坡向下发生长期缓慢的移动现象。坡地蠕动主要出现在15°-35°的坡地上,坡度较大的坡地,难以保存黏土和水分,而<1
  • Palgrave Macmillan帕尔格雷夫·麦克米兰(英语:Palgrave Macmillan)是一个国际学术期刊和行业出版公司,其主要出版书籍包括有教科书、期刊、专著、专书及参考文献,并且提供有印刷刊物和互联网等通路
  • 2006年2006年被中华人民共和国处决的死刑犯列表,旨在列出2006年被中华人民共和国处决的死刑犯。
  • 王鼎昌王鼎昌,GCMG(Ong Teng Cheong,1936年1月22日-2002年2月8日),是新加坡首任民选总统,也是华人世界史上首位民选总统。1936年1月出生于新加坡,1955年毕业于华侨中学之后曾留学于南澳大
  • 女性政府首脑这是关于女性担任选举或者任命的政府首脑的列表。关于总统制国家兼任国家元首的政府首脑,参见选举或任命的女性国家元首列表。
  • 康纳德·阿登纳康拉德·赫尔曼·约瑟夫·阿登纳(德语:Konrad Hermann Joseph Adenauer,德语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI
  • 不凡的你《不凡的你》(英语:)是美国女歌手布兰妮·斯皮尔斯的歌曲,收录于她的第6张录音室专辑《妮裳马戏团》(Circus)中,2009年9月15日,歌曲作为单曲在澳大利亚和新西兰发行。歌曲曾获得告示