精确覆盖问题

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

相关

  • 斯图亚特·考夫曼斯图亚特·阿兰·考夫曼(英语:Stuart Alan Kauffman,1939年9月28日-)是一个美国理论生物学家和复杂系统研究者,主攻领域为地球上的生命起源。
  • 汉方医学人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学日本汉方医学,是日本的传统医学之一,其
  • 直升机父母直升机父母(helicopter parent)是指过分介入儿女生活,保护或是干预其生活的父母,因为类似直升机一样的盘旋在儿女身边,故称为直升机父母。在日本也有类似概念的“怪兽家长”(日语:
  • 银泉银泉(英语:Silver Spring)是美国马里兰州蒙哥马利县的重要城市之一,是探索频道(Discovery Channel)总部和精选酒店(Choice Hotels)总部所在地。1840年,弗朗西斯·普雷斯顿·布莱尔(Fra
  • 法兰西运动法兰西运动(法语:Action Française)是以1894年的德雷福斯事件为契机而组成的法国君主主义的右翼组织,名称来自1899年创刊的同名机关报。夏尔·莫拉斯等在德雷福斯事件中反德雷
  • 霍恩·久洛霍恩·久洛·亚诺什(匈牙利语:Horn Gyula János,1932年7月5日-2013年6月19日),匈牙利社会主义政治人物暨经济学家,并曾在1994年至1998年期间担任匈牙利共和国第三任总理。霍恩其重
  • 吴展吴展(1907年9月1日-1944年10月10日),字镜清,号洪光。广西省恭城县莲花乡人。他为抗日战争期间阵亡的中国军方高级将领之一。军校第二期炮科毕业,任陆军131师392团上校团长,民国33年
  • 葛拉兹亚迪奥商学院葛拉兹亚迪奥商学院(英语:Graziadio Business School),是佩珀代因大学的研究生商科项目。拥有超过14万4千位校友,是南加州最大的商学院之一,也被国际商管学院促进协会(AACSB)认可。
  • 史塔莎诺炉史塔莎诺炉(意大利语:Forno Stassano)是早期用来冶炼钢铁的一种电弧炉。1898年意大利工程师恩内斯托·史塔莎诺(意大利语:Ernesto Stassano)发明此种炉具,史塔莎诺炉是目前已知最早
  • 2014年冬季奥林匹克运动会冰岛代表团2014年冬季奥林匹克运动会冰岛代表团是冰岛所派出的2014年冬季奥林匹克运动会代表团,共派出5名参赛者参加2个项目。