通过笛卡尔积找到有限笛卡尔积的子集的最小覆盖


11

给定一个笛卡尔乘积两个有限集的的子集,我希望通过笛卡尔乘积本身的集合来找到它的最小覆盖范围。I×J

例如,给定与之间的乘积,我可以观察到子集并尝试使用最少数量的笛卡尔积覆盖它。I={A,B,C}J={1,2,3}{(A,2),(B,3),(B,2)}

这样做的两种方法是和,都需要2个产品。次佳的解决方案可能会将其分解为3个琐碎的乘积。{A}×{2}+B×{2,3}{A,B}×{2}+{B}×{3}

是否可以有效地找到这种最佳覆盖率(例如,在多项式时间内)?


让我想起了这个问题,即“分解位向量的笛卡尔连接”(cstheory.SE,用不同的措词),它与电路理论的下限有关。您的问题出现在什么情况下?
vzn

我的上下文是网络安全。在具有许多服务器的大型网络中,安全策略定义了可以与哪个服务器对话。如果这种策略是在很长一段时间内逐步构造的(通常如此),则可以通过将安全规则合并在一起来简化对安全策略的描述。我希望找到一种最佳的简化方法。
yuvalm2 2015年

仅是您要最小化的产品数量?如果是这样,使用做封面怎么了?这将涵盖您子集中的所有内容(以及更多内容)。您是否要求解决方案不仅必须覆盖子集,还必须避免覆盖子集之外的任何内容?I×J
DW

1
另外,由于这来自实际应用(因此您可能正在寻找实用的解决方案),您能否大致了解一下参数大小?例如,的典型大小 ,,以及您的子集,大约在一个数量级内;或典型值范围?这可能有助于评估哪些技术最可能有效。我想起了逻辑最小化DNFKarnaugh映射|I||J|
DW

3
可能的另一种表达方式如下:给定二分图找到覆盖的最小二分集团(或双clique)。每个集团对应于您的笛卡尔空间中的唯一产品。G=(L,R,E)E
Nicholas Mancuso 2015年

Answers:


2

NM通过查找覆盖二分图的最小二分集团(双clique),在评论中重新提出了这个问题。您提到的两个集合是二部图的2个顶点集合。两个顶点集的子集的笛卡尔积是双斜体。维基百科指出这是二分维问题,是Garey和Johnson中的 GT18问题,基于对设定基问题SP7的简单重新表述,证明了NP是完整的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.