精确覆盖问题

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

相关

  • 时间轴直至2018年4月,联合国核准及部署了71个维和行动,并不包括如朝鲜战争、波斯湾战争等在联合国核准底下进行的军事介入行动。在联合国宪章中赋予联合国安全理事会的权力和责任,要
  • LGBT自杀人物列表这个列表收录了已经自杀身亡的著名女同性恋,男同性恋,双性恋和跨性别人士。
  • 那慕尔圣母大学坐标:37°31′02″N 122°17′04″W / 37.51729°N 122.28443°W / 37.51729; -122.28443那慕尔圣母大学(Notre Dame de Namur University,原称:College of Notre Dame)是位于美
  • 安德里亚·莫霍罗维奇安德里亚·莫霍罗维奇(克罗地亚语:Andrija Mohorovičić,1857年1月23日-1936年12月18日)是著名的克罗地亚气象学家及地震学家,他也是莫氏不连续面的发现者。莫霍洛维奇出生在欧帕
  • 克莱门斯·布伦塔诺克莱门斯·布伦塔诺(Clemens Brentano,1778年9月9日-1842年7月28日),德国作家、诗人,海德堡浪漫派的作表人物之一。布伦塔诺出生于科布伦茨附近的一个商人家庭,早年曾就读于哈雷大
  • 中古波兰语中古波兰语(波兰语:język średniopolski)是指16世纪至18世纪时期的波兰语。它从古波兰语演化,并演化成为今日的波兰语。16世纪,波兰文学家及诗人科哈诺夫斯基(Jan Kochanowski)提
  • 杨景锺杨景锺(音译;韩语:양경종,1920年3月3日 – 1992年4月7日),朝鲜裔军人。第二次世界大战中,他曾经服役于大日本帝国陆军、苏联红军以及德意志国防军。然而,其事迹是否真实还存在着一些
  • 硫酸铝铵 十二水合硫酸铝铵,俗名铵明矾,化学式NH4Al(SO4)2·12H2O。在一些应用中会用到少量的硫酸铝铵,天然的十二水合硫酸铝铵是一种名为tschermigite(英语:tschermigite)的矿物。硫酸铝
  • 约翰·莱纳约翰·莱纳(英语:John Edward Lannan,1984年9月27日-)出生于纽约州的长堤(Long Beach),曾为美国职棒大联盟的先发投手。莱纳是2005年大联盟选秀会中被华盛顿国民于第11轮第324名选中
  • 德扬·亚科维奇德扬·亚科维奇(塞尔维亚语:Dejan Jaković;1985年7月16日-)是加拿大的一位职业足球运动员,在场上的位置是后卫。他现在效力于美职联球队洛杉矶FC。除了俱乐部的赛事之外,他也代表