constraints - 最小独立集

标签 constraints z3 satisfiability

给定一组公式 s,我想找到 s 的最小子集 s',它暗示 中的每个公式s。我将 s 称为最小独立集,因为对于 s' 中的每一对 a,ba 并不意味着b 反之亦然。

在我看来,简单的方法需要O(2^|s|)复杂度。有没有更有效的方法?这个问题能否以某种方式编码,以利用当前的 smt/sat 求解器(例如 unsat 核心)?

最佳答案

也许现在对你来说已经太晚了。但你可以通过 1 个循环来计算这样一个集合。

IS = F1 // first formula in s
for each formula Fi in {F2,..Fn} in s
  if ((not IS) AND Fi) is UNSAT
     IS = IS AND Fi

集合IS包含独立集合。

关于constraints - 最小独立集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12765396/

相关文章:

c++ - z3 C++ API : get operation of expr

smt - 增量削弱 Maxsat

algorithm - DPLL 和满意度示例?

iphone - 我可以在 Xcode 4.6 中禁用约束吗?

mysql - 如何在外键范围内定义唯一约束

database - 我的 Oracle 10gr2 检查约束有什么问题?试图强制执行日期范围

c - Z3使用目标和战术

java - JLabel 和 Icon 在 GridBagLayout 中彼此居中

z3 - Z3 中的单纯形求解器

algorithm - 将人们分成最满意的团队