给定一个笛卡尔乘积两个有限集的的子集,我希望通过笛卡尔乘积本身的集合来找到它的最小覆盖范围。
例如,给定与之间的乘积,我可以观察到子集并尝试使用最少数量的笛卡尔积覆盖它。
这样做的两种方法是和,都需要2个产品。次佳的解决方案可能会将其分解为3个琐碎的乘积。
是否可以有效地找到这种最佳覆盖率(例如,在多项式时间内)?
让我想起了这个问题,即“分解位向量的笛卡尔连接”(cstheory.SE,用不同的措词),它与电路理论的下限有关。您的问题出现在什么情况下?
—
vzn
我的上下文是网络安全。在具有许多服务器的大型网络中,安全策略定义了可以与哪个服务器对话。如果这种策略是在很长一段时间内逐步构造的(通常如此),则可以通过将安全规则合并在一起来简化对安全策略的描述。我希望找到一种最佳的简化方法。
—
yuvalm2 2015年
仅是您要最小化的产品数量?如果是这样,使用做封面怎么了?这将涵盖您子集中的所有内容(以及更多内容)。您是否要求解决方案不仅必须覆盖子集,还必须避免覆盖子集之外的任何内容?
—
DW
另外,由于这来自实际应用(因此您可能正在寻找实用的解决方案),您能否大致了解一下参数大小?例如,的典型大小 ,,以及您的子集,大约在一个数量级内;或典型值范围?这可能有助于评估哪些技术最可能有效。我想起了逻辑最小化,DNF和Karnaugh映射。
—
DW
可能的另一种表达方式如下:给定二分图找到覆盖的最小二分集团(或双clique)。每个集团对应于您的笛卡尔空间中的唯一产品。
—
Nicholas Mancuso 2015年