精确覆盖问题

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

相关

  • 运动失调共济失调(英语:Ataxia)是指缺乏规律,或者为笨拙,为一种神经疾病上的特征。失调可以广泛指在中枢神经系统、周围神经系统任何其中一环出状况所表现的病征,例如掌管运动和平衡的小脑
  • 倭马亚王朝倭马亚王朝(阿拉伯语:أمويون‎),或译为伍麦叶王朝、奥米雅王朝、奥玛雅王朝,在古中国《旧唐书》中被称为白衣大食,是由倭马亚家族统治的哈里发国,是阿拉伯帝国的第一个世袭王
  • 迪特里克堡迪特里克堡(Fort Detrick),中国传统翻译为“狄特里克营”,是美国陆军医务司令部(英语:United States Army Medical Command)位于马里兰州弗雷德里克的一处设施。历史上,迪特里克堡于
  • 纬来电视网纬来电视网股份有限公司(英语:Videoland Television Network),通称纬来电视网、纬来,是台湾大型卫星电视频道业者,最初为为和信集团旗下企业之一,成立于1996年。前身为纬来企业股份
  • 普陀鹅耳枥普陀鹅耳枥(学名:Carpinus putoensis)为桦木科鹅耳枥属的植物,是中国的特有植物。仅见于浙江的舟山群岛。目前全世界野生的普陀鹅耳枥仅普陀山上一株,属中国国家一级保护濒危种。
  • 花鸟山花鸟山,或称是舟山群岛最北的一座岛屿,位于北纬30度51分,东经122度40分。行政上设立花鸟乡和花鸟社区,属于浙江省舟山市嵊泗县。因多生菊花、水仙花,岛形呈飞鸟状而得名。岛上有
  • 新巴赫花精新巴赫花精系指爱德华巴赫医生所发现的三十八朵花精,用以调整自己的情绪、治愈自己身体的不适。使用的是所谓的顺势疗法,有别于现在常见的对抗疗法。花精疗法最早的记载可追溯
  • 卡累利阿语卡累利阿语(、 或 )是一种主要在俄罗斯联邦卡累利阿共和国境内通行的语言。它属于乌拉尔语系芬兰-乌戈尔语族芬兰语支。语言学上卡累利阿语非常接近芬兰东部所说的芬兰语方言,
  • 早餐冰淇淋日早餐冰淇淋日(英语:Ice Cream for Breakfast Day)是一个非官方节日,于每年2月的第一个星期六。这个假期是1960年代下雪的冬天,由纽约州罗切斯特的佛罗伦萨·拉帕波特(Florence Rap
  • 苏巴克苏巴克(印尼语:Subak)是印度尼西亚巴厘省境内的一整套稻田水利管理系统,发展于公元9世纪。对于岛上居民而言,这项由来已久的工程不仅仅为农作物提供了灌溉的功能,同时也构建了一套