寻找最小组件集合的算法

2024-03-31

我正在寻找一种算法来解决以下问题。我有给定集合 (a-h) 的多个子集 (1-n)。我想找到最小的子集集合,它允许我通过组合来构造所有给定的子集。该集合可以包含 1-n 中尚不存在的子集。

  a b c d e f g h
1 1
2 1   1
3   1     1   1
4 1       1
5   1         1
6 1     1   1   1
7 1       1 1   1
8 1   1       1
9 1         1   1

下面是两个可能的集合,其中最小的包含七个子集。我用 x 表示新的子集。

1 1
x   1
x     1
x       1
x         1
x           1
x             1
x               1

1 1
x   1         
x     1
x       1        
x         1    
x           1   1
x             1

我相信这一定是一个已知的问题,但我对算法不是很熟悉。非常感谢任何帮助,以及更好的主题标题的建议。

Thanks!

Update

图形着色让我受益匪浅,谢谢。然而,就我而言,子集是允许重叠的。例如:

  a b c d
1 1 1 1  
2 1 1 1 
3 1 1 1
4     1 1
5 1 1 1 1

图形着色给了我这个解决方案:

x 1 1
x     1
x       1     

但这也是有效的,而且更小:

1 1 1 1  
4     1 1

这个问题被称为集合基础,它是 NP 完全的(Larry J. Stockmeyer:集合基础问题是 NP 完全的。技术报告 RC-5431,IBM,1975)。其图问题的表述为二分维数 http://en.wikipedia.org/wiki/Bipartite_dimension。由于一般来说很难解决,因此查看数据是否有任何有用的属性可能会很有用(例如,集合很小吗?解决方案很小吗?所有集合都可以出现吗?)

我想不出一个简单的 ILP 公式。相反,您可以尝试将问题简化为 Clique Cover,这已得到更好的研究,可以使用以下任一简化方法:或来自也不是等人。 http://dx.doi.org/10.1007/978-3-642-13509-5_19。我已经写了一篇论文讨论Clique Cover 的算法 http://dx.doi.org/10.1145/1412228.1412236,并写了一个派系覆盖解算器 http://www.user.tu-berlin.de/hueffner/ecc/具有精确求解器和两种启发式方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

寻找最小组件集合的算法 的相关文章

  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Antlr 解析器运算符优先级

    考虑以下语法 我对运算符优先级有疑问 例如 res 2 a b有一个类似的解析树res 2 a b 我知道问题出在哪里 但我没有想到没有相互左递归的 漂亮 解决方案 你能帮我一点忙吗 该语法与自定义访问者一起使用 grammar Math
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供
  • PrimeFaces 对话框参考父级

    我有一个 xhtml 页面 显示带有条目的数据表 我还有一个用于插入新条目的按钮 该按钮显示一个包含表单的对话框 插入表格用作
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中
  • 如何在 Angular 4 中翻译 mat-paginator?

    你知道如何在 Angular 中翻译 每页项目 吗mat paginator标签 这mat paginator是材料设计中的一个元素 您可以使用MatPaginatorIntl为了这 威尔 豪厄尔制作 https github com an
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 如何在 OSX 上安装 LaTeX .sty 文件?

    我设置了一个 LaTeX 项目 tex documents some file tex support todonotes sty where some file tex uses todonotes usepackage colorinl
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前
  • Android 材料芯片组件崩溃应用程序。无法膨胀 xml

    Tried Chip来自两个支持库的组件 com google android support design 28 0 0 rc01和材料 com google android material material 1 0 0 rc01 堆栈
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • 编写类似于程序集缓存查看器的 Windows Shell 扩展

    我想编写一个 shell 扩展来完全自定义特定文件夹的显示 以及程序集缓存查看器 浏览到 c windows assembly 您就会明白我的意思 哪些 COM 接口负责提供这些钩子 我的 查看器 将用 C 编写 Thanks 请注意 有关
  • CMake 链接错误(未定义的引用)

    我正在使用 SSL Vision 软件 它有一个示例客户端 我一直试图将其与整个项目分开 我找到了自己编辑客户端所需的源代码 因此我只是从软件中复制它们并使用 CMake 来构建我的客户端 下面的项目结构经过简化 缩小了问题范围 我相信 C
  • selenium.common.exceptions.ElementNotInteractableException:消息:使用 Selenium Python 单击元素时元素不可交互

    我知道有人问过这个问题 但我需要一些解决方案来解决这个错误 Traceback most recent call last File goeventz automation py line 405 in
  • 同一应用程序中的 Google Maps SDK 和 Mapkit 导致崩溃

    试图在我的应用程序中为用户提供在谷歌地图 sdk 和苹果地图 mapkit 之间进行选择的选项 该应用程序未使用 ARC 崩溃场景 ios 6 0 6 1 1 进入谷歌地图 模态控制器 2 退出谷歌地图 关闭模式 3 将我的应用程序更改为苹
  • 并发不是并行吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Bootstrap 3.3.7 - 表单内联 - 输入和按钮同一行

    输入和按钮在同一行上正常工作 但输入尺寸很小 并且有空间更大 我希望它是 100 全尺寸 沿着输入和按钮下方的线 你看到了吗 我的 HTML 是
  • 如何自动缩放 WKWebView 的内容?

    要在 Swift 中自动缩放旧 WebView 中的网页 我所要做的就是 var w UIWebView w scalesPageToFit true 我找不到 WKWebView 的等效方法 并且网页在我的应用程序中显得太大 如何自动缩放
  • 如何从测试内部访问 py.test capsys?

    py test 文档说我应该将 capsys 参数添加到我的测试方法中 但就我而言 这似乎不可能 class testAll unittest TestCase def setUp self self cwd os path abspath
  • 命令 /usr/bin/codesign 失败,退出代码 1

    我有以下错误 命令 usr bin codesign 失败 退出代码 1 这是我已经尝试解决此问题所做的事情 将包标识符设置为 com server pgmname 将代码签名设置为 任何 Iphone OS 设备 将代码签名身份设置为我的
  • Tibco 错误:ClassNotFoundException:com.tibco.tibjms.naming.TibjmsInitialContextFactory

    我正面临这个问题 我使用以下配置 本地 tibco 测试了 tibco 它可以工作
  • 如何生成随机 Base36 ID

    有没有办法生成random Base36 标识符 http en wikipedia org wiki Base 36在 SQL Server 中是否有定义的字符数 我搜索并找到了许多将基数 36 转换为 int 的示例 反之亦然 但没有找
  • SPARQL - 查找具有最相似属性的对象

    假设有一个人的 RDF 数据库 每个人都有许多三元组来定义这个人的朋友 这么多 person x hasFriend otherPerson 如何找到拥有最相似朋友的人 我是 SPARQL 的新手 这似乎是一个非常复杂的查询 基本上 结果将
  • 如何创建批处理文件计时器来全天执行/调用另一个批处理

    如何创建一个批处理文件计时器来在一天中执行 调用另一个批处理 也许在给定的时间运行但不在周末运行 必须在系统上运行也可以 cmd在xp server 2003上运行 对于脚本的计时器部分 我强烈建议使用 echo echo Waiting
  • 在 IntelliJ IDEA 中从多个模块一起运行单元测试

    如何同时运行两个或多个 IDEA 模块中的所有测试 我正在使用许多模块 经常运行所有单元测试非常重要 当我选择多个文件夹来运行时 上下文菜单上不再有 运行 选项 最好的方法方法 3年后编辑 甚至还有更好的方法来实现这一目标 来自JetBra
  • 通过简单的产品 URL 预先选择可配置的产品选项

    如果请求的网址用于简单产品 如何显示带有预选选项的可配置产品 例如 简单的产品 1 has Color Red URL simple red html 简单的产品 2 has Color Green URL simple green htm
  • ASP.NET - 使用 UpdatePanel 内的 ListView 内的 LinkBut​​ton 触发异步回发

    好吧 我的第一篇文章 我希望标题有意义 我有一个更新面板 里面有一个文件上传控件 带有一个触发上传的按钮 在它下面 我有一个 ListView 它与上传的文件列表数据绑定在后面的文件中 更新面板有一个 PostBackTrigger 指向上
  • 在 Outlook 加载项中以 MIME 格式 (*.eml) 保存邮件

    我想编写一个小 Outlook 插件 C 它将选定的邮件 MailItem 以纯 MIME 格式 eml 保存到磁盘 MailItem SaveAs 方法仅允许以 msg 格式保存 还有其他 简单 方法可以将邮件保存为 eml 格式吗 我想
  • Rails 图像标签中的多个图像

    我想知道是否可以将数组传递给 Rails 图像标签 该数组将包含一系列 png 图像 我希望视图能够旋转显示这些图像 有谁知道这是怎么做到的吗 这是行不通的 div class img circle div 我似乎找不到说明 rails 指
  • 如何获取 nautilus 用于给定文件的缩略图?

    Nautilus 向我显示文件的缩略图 如果它是图像 它会向我显示预览 如果它是视频 它会显示视频中的帧 如果它是文档 它会向我显示应用程序图标 我如何访问该图像 我看到它们被缓存在 thumbnail 然而 它们都被赋予了独特的名字 缩略
  • 寻找最小组件集合的算法

    我正在寻找一种算法来解决以下问题 我有给定集合 a h 的多个子集 1 n 我想找到最小的子集集合 它允许我通过组合来构造所有给定的子集 该集合可以包含 1 n 中尚不存在的子集 a b c d e f g h 1 1 2 1 1 3 1