精确覆盖问题

✍ dations ◷ 2025-10-27 04:21:51 #理论计算机科学,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算法在计算机上的一种高效实现。

相关

  • 热性痉挛热性痉挛(febrile convulsion),又称作又称作发烧性抽搐、热性抽搐、热性惊厥、热性全身痉挛,是一种癫痫性发作(英语:epileptic seizure),伴有体温升高的症状但是并无任何潜在的健康
  • 描述逻辑描述逻辑(description logic)是一种用于知识表示的逻辑语言和以其为对象的推理方法,主要用于描述概念分类及其概念之间的关系。描述逻辑方法多数被用到涉及知识分类的应用领域,
  • 犹太教末世论犹太教末世论与犹太教的弥赛亚、来生、复活等观念密切相关。末世论通常是指关于世界历史上最后一个事件以及人类最终命运的神学或哲学学说。希伯来词语Mashiach(或作Moshiach
  • 江户幕府将军江户幕府将军列表中列出日本江户幕府时期,德川氏十五任征夷大将军的列表。德川家的将军除了秀忠以外,在就任同时都会一并得到源氏长者的称号,死后也会追赠正一位的地位。15位将
  • 熊猫直播熊猫直播是中国大陆一个视频直播网站,于2015年10月20日正式公测,王思聪出任首席执行官。熊猫直播于2019年3月关闭网站,宣布倒闭。2019年3月传出熊猫直播将申请破产的消息,透露了
  • 安阳工学院安阳工学院(Anyang Institute of Technology,简称:安工、AYIT),前身为安阳大学,是一所位于中国河南省安阳市一工科为主的省属本科大学。该校创建于1983年,为公办全日制普通本科院校
  • 高氯酸铁高氯酸铁是一种无机化合物,化学式为Fe(ClO4)3,为氧化剂。它的水合物存在六水、九水和十水合物,其中,九水合物的结构可表示为(ClO4)3·3H2O。高氯酸铁易溶于水,其溶液在0.01mol·L
  • 伦纳德·阿德曼伦纳德·马克斯·阿德曼(英语:Leonard Max Adleman,1945年12月31日-)是一名美国理论计算机科学家和南加州大学计算机科学家和分子生物学教授。1977年,他与罗纳德·李维斯特和阿迪
  • 罗慕洛·贝坦科尔特罗慕洛·埃内斯托·贝坦科尔特·贝略(Rómulo Ernesto Betancourt Bello,1908年2月22日-1981年9月28日),曾两度出任委内瑞拉总统。贝坦科尔特是委内瑞拉民主行动党(英语:Democratic
  • 香花木香花木(学名:)是茜草科香花木属下唯一一个种。旧称香叶木。