布尔组合的体积计算方法与应用
1. 背景与理论基础
在布尔组合的体积计算中,我们发现理论不一致的赋值(无论是否在命题上满足公式)不会影响总体积。基于此观察,结合相关命题,我们可以减少对体积计算程序的调用次数。具体做法是,借助 SMT 求解器列出所有可行赋值,然后进行可能的组合形成束(bunches),必要时纳入一些理论不一致的赋值。不过,SMT 求解器不会明确提供理论不一致的赋值,因此需要额外调用理论求解器。
2. 算法介绍
我们的方法基于上述思路,在 SMT(LAC) 求解器的决策过程中实现了体积计算。其中,关键概念是最小立方体(minimum cube)。
2.1 最小立方体的定义
假设 α 是公式 φ 的可行赋值,若赋值 αmc 满足以下两个条件,则称其为 α 的最小立方体:
1. αmc ⊆ α 且 αmc |= PSφ。
2. ∀α′(α′ |= PSφ → α′ ̸⊂ αmc)。
最小立方体 αmc 是束 S 的立方体,对于任何束 S′,若 α ∈ S′,则 S ̸⊂ S′。在计算总体积时,将这样的赋值纳入计算是安全的,因为 volume(αmc) 包含 volume(α) 以及可能的其他可行赋值的体积。
2.2 寻找最小立方体的方法
目前,我们使用一种简单的方法来寻找最小立方体。该方法依次检查 α 中每个文字的冗余性,如果移除文字 li 后 α 仍能使 PSφ 为真,则立即从 α 中删除 li,并对修改后的 α 检查下一个文字。可以证明,最终结果是原始赋值的最小立方体。
2.3 体积计算算法
超级会员免费看
订阅专栏 解锁全文
1024

被折叠的 条评论
为什么被折叠?



