精确覆盖问题

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

相关

  • 上郡上郡为战国时期魏国所置。秦惠王十年(前328年),魏国献上郡15县与秦,为秦初三十六郡之一,郡治肤施县(在今陕西省榆林市南)。西汉、东汉时沿置,郡治未变。汉灵帝末,因羌胡大扰而迁徙,曹
  • 异常检测在数据挖掘中,异常检测(英语:anomaly detection)对不符合预期模式或数据集(英语:dataset)中其他项目的项目、事件或观测值的识别。 通常异常项目会转变成银行欺诈(英语:bank fraud)、
  • Lighttpdlighttpd(读作lighty) 是一款以BSD许可证开源的网页服务器,在确保兼容常见标准、安全性及灵活性的情况下专为需要处理速度的环境优化。此软件起初为扬·克内施克对c10k问题(英语
  • 贡贝黑猩猩战争贡贝黑猩猩战争(也被称作贡贝“四年战争”),从1974年持续到1978年,是发生在坦桑尼亚贡贝溪国家公园两个黑猩猩族群之间的一起暴力冲突。交战双方分别为卡萨克拉族群和卡哈马族群
  • 穆罕默德·哈达穆罕默德·哈达(印度尼西亚语: Mohammad Hatta 帮助·信息 )(1902年8月12日-1980年3月14日)是已故印度尼西亚政治家。他与苏加诺同为印度尼西亚独立运动领袖,印尼独立后任首任副总
  • 特效特效,是指电影或剧集在拍摄制作或后期制作的过程中,当有无法使用的自然环境或人物表现的场景和情节时,将采用特殊的技术手段和方法获得最终画面的技术。与特技等同。特效技术是
  • 梅塞尔坑梅塞尔坑(Messel pit),是一个位于德国黑森州达姆施塔特-迪堡县梅塞尔附近的化石坑。位于法兰克福东南30公里。梅塞尔坑面积约0.7平方公里,低于地面60米,原为一处废弃的沥青页岩矿
  • 萨德萨德可以指:
  • 工漂族“工漂族”是指近年来农民工群体尤其是新生代劳动力务工周期短、频繁换工的一种现象。职业流动是指劳动者在不同职业之间的变动,是劳动者放弃又获得劳动角色的过程。工漂族的
  • 段若川段若川(1941年-2003年10月1日),中国西班牙语文学研究者、翻译者,原任北京大学西语系教授(正高级职称)、博士生导师(北大西班牙语专业有赵德明、赵振江、段若川三位博士生导师)。她是