查找满足评估条件的布尔公式的子集

时间:2019-01-04 23:21:22

标签: algorithm search data-structures boolean-expression

B 是变量 X = { x 1 ,..上的布尔公式集。 。, x n }和 f :[ n ]→ B 。给定估值 v X →{0,1}以通常的方式扩展到 B ,找到子集 S < / em>的[ n ],这样对于所有 v f i ))= 1 > i S (即[ n ]的子集,映射到给定估值所满足的公式)。天真的解决方案包括针对每个 i ∈[ n]测试 v f i )) ]并在最坏的情况下花费 O nm )时间,其中<​​em> m 是图像中最大公式的大小 f 。我的问题是:我们可以做得更好吗,尤其是当 n 大而 m 小时?

我对数据结构没有事先的承诺,但是出于具体性, f 可能由抽象语法树或嵌套的文字列表表示为数组或字典和公式(假设转换为DNF或CNF没问题)。此外, f 很少更改,而搜索频繁发生。看来这个问题可以归结为布尔电路最小化之类的东西,但是我还没有找到任何在线研究可以导致对上述朴素算法的改进(具有合理的预处理时间)。

0 个答案:

没有答案