精确覆盖问题

✍ dations ◷ 2025-06-09 13:11:13 #理论计算机科学,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算法在计算机上的一种高效实现。

相关

  • 口服口服给药(英语:Oral administration) (per os) 是一种给药途径,通过嘴吞服药物使其在体内发挥作用。许多药物都可以口服给药,因为其往往在全身产生作用,通过血流输送到身体的各个
  • 染色体染色体(英语:chromosome)是真核生物特有的构造,主要由双股螺旋的去氧核糖核酸和5种被称为组蛋白的蛋白质构成,是基因的主要载体。染色体是细胞内具有遗传性质的遗传物质深度压缩
  • Boston新英格兰波士顿(英语:Boston)为美国马萨诸塞联邦(英语:Commonwealth (U.S. state))首府,占地面积 48平方英里(124 km2),2018年居民总数为694,583位,是马萨诸塞乃至新英格兰地区人口最
  • 宾语・受词受词或称宾语(英语:Object)、受词,是指一个动作(动词)的接受者。例句“我写作业”中,“作业”即为受词。宾语分为直接受词和间接受词两大类,其中直接受词指动作的直接对象,间接受词
  • 二醇二元醇(diol、glycol)是指具有两个羟基(-OH)的醇类,正如具两个羧基(-COOH)或电离出两个氢离子的酸称为二元酸一样。二元醇的例子有乙二醇(HOCH2CH2OH),丙二醇、双酚A等。跟所有醇类一
  • 提乌德贝尔特二世提乌德贝尔特二世(Theudebert II)是墨洛温王朝的法兰克国王,奥斯特拉西亚国王(595年—612年在位)。奥斯特拉西亚及勃艮第国王希尔德贝尔特二世与妻子法伊洛贝(Faileube)的长子、勃
  • 贯众贯众(学名:Cyrtomium fortunei)为鳞毛蕨科贯众属下的一个种。维基物种中有关贯众的数据
  • 土库曼族土库曼斯坦:4,150,000  伊拉克:1,500,000  伊朗:2,000,000  阿富汗:500,000土库曼族(土库曼语:Türkmenler Түркменлер)是一个中亚突厥语民族,土库曼斯坦主要民族,也
  • 宁陵县宁陵县,是中华人民共和国河南省商丘市下辖的一个县。地处豫东平原,东与商丘市区交界、西连睢县、南邻柘城县、北与民权县相连。宁陵历史悠久,具有4000多年的文明史。夏、商、周
  • 梅特·加佐兹梅特·加佐兹(英语:Mete Gazoz,1999年6月8日-)土耳其男子反曲弓射箭运动员,代表土耳其参加2016年夏季奥林匹克运动会。梅特·加佐兹于1999年6月8日出生。他曾就读位于Bahçelievle