精确覆盖问题

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

相关

  • 乔托乔托·迪·邦多纳(Giotto di Bondone,约1267年-1337年1月8日),意大利画家与建筑师,被认为是意大利文艺复兴时期的开创者,被誉为“欧洲绘画之父”、"西方绘画之父"。在英文称呼就如
  • 狩猎采集狩猎采集者是指生活在大部分或所有的食物都是通过觅食(采集野生植物和追捕野生动物)的社会或群体中的人。狩猎采集社会与农业社会形成对比,后者主要依靠驯化物种来生活。狩猎和
  • 诺贝尔阿尔弗雷德·伯恩哈德·诺贝尔(瑞典语:Alfred Bernhard Nobel,/noʊˈbɛl/;瑞典语:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe U
  • BBC体育BBC体育(BBC Sport)是英国广播公司的体育节目制作部门。自2006年9月开始,BBC体育开始播出高清电视节目。除了体育节目的直播之外,BBC体育也制作各种体育新闻类的节目。BBC拥有温
  • 前列腺局部辨证前列腺局部辨证 在前列腺肛门指检时进行,当检查者食指完全伸入患者肛门,前列腺即在食指指腹下;透过直肠壁,扪及前列腺后叶;触摸前列腺形态、大小、质地,中央沟,以及前列腺饱满程度
  • 代罪羔羊替罪羊,又称代罪羔羊,原指犹太教信徒于赎罪日时,按《圣经·利未记》记载的仪式将山羊献作赎罪祭。现普遍意指在某错误事件上,替代犯过者承受责任、受罪受罚的无辜人,即替罪者。在
  • 牛牛牛牛,本名张胜量,(1997年7月11日-),福建省厦门人,是一位钢琴家。3岁时就把一本初学者用钢琴乐谱全部弹完,让双亲惊讶。6歳时于厦门市当地,在1000人以上的听众的面前开展了钢琴独奏会
  • G及H级驱逐舰G级和H级驱逐舰 是1935年-1939年间24艘英国皇家海军建造的驱逐舰(两条转给皇家加拿大海军一条转给波兰) 16条在二战当中损失。还有一条在建造中完全损失。还有一些其他的是
  • 神探加杰特G型神探(Inspector Gadget),又译“奇探加杰特”,或是“神探万事通”(港译:万能探长),是一部1983年9月10日播出第1季的卡通。影集由美国DiC Entertainment公司制作。后来在1995年出版
  • 朱鼐《松江邦彦画像》之朱鼐像朱鼐,字朝和,号水竹。南直隶松江府华亭县人。明朝政治人物。正德十二年(1517年)丁丑科进士,任福建兴化府推官,代署莆田知县。因刚直得罪某御史,转广州府同