[论文解读] Implicant based parallel all solution solver for Boolean satisfiability
本文提出了一种并行的、基于蕴含子的算法,用于计算代数正规形式(ANF)布尔公式的全部满足赋值,通过将稀疏布尔函数递归分解为蕴含子来实现。通过使用正交蕴含子对解进行紧凑表示,并在独立线程间分配计算,该求解器在拥有足够并行处理器时实现 O(n) 的时间复杂度,从而实现对大规模、稀疏系统的可扩展解枚举。
This paper develops a parallel computational solver for computing all satifying assignments of a Boolean system of equations defined by Boolean functions of several variables. While there are we known solvers for satisfiability of Boolean formulas in CNF form, these are designed primarily for deciding satisfiability of the formula and do not address the problem of finding all satisfying solutions. Moreover development of parallel solvers for satisfiability problems is still an unfinished problem of Computer Science. The solver proposed in this paper is aimed at representing all solutions of Boolean formulas even without the CNF form with a parallel algorithm. Algorithm proposed is applied to Boolean functions in algebraic normal form (ANF). The algorithm is based on the idea to represent the satisfying assignments in terms of a complete set of implicants of the Boolean functions appearing as factors of a Boolean formula. The algorithm is effective mainly in the case when the factors of the formula are sparse (i.e. have a small fraction of the total number of variables). This allows small computation of a complete set of implicants of individual factors one at a time and reduce the formula at each step. An algorithm is also proposed for finding a complete set of orthogonal implicants of functions in ANF. An advantages of this algorithm is that all solutions can be represented compactly in terms of implicants. Finally due to small and distributed computation at every step as well as computation in terms of independent threads, the solver proposed in this paper is expected to be useful for developing heuristics for a well scalable parallel solver for large size problems of Boolean satisfiability over large number of processors.
研究动机与目标
- 开发一种可扩展的并行求解器,用于计算布尔系统的全部满足赋值,特别是 ANF 形式的公式。
- 解决现有 SAT 求解器集中于决策问题而非完整解枚举的缺陷。
- 通过使用蕴含子和正交蕴含子,实现对指数级庞大解集的紧凑表示。
- 设计一种天然支持负载均衡和处理器复用的并行算法,通过独立线程生成实现。
- 通过利用布尔函数中的稀疏性,提升在密码分析、生物网络和逻辑优化等大规模问题中的可扩展性。
提出的方法
- 该算法为布尔公式 F = ∏fi 中的每个因子计算一组完整的蕴含子,其中 fi 是 ANF 形式下的稀疏布尔函数。
- 使用一个主因子生成初始蕴含子,然后通过将每个蕴含子代入剩余因子,递归地简化公式。
- 对于每个蕴含子,算法计算剩余函数的商,丢弃那些求值为 0(矛盾)或产生部分解的情况。
- 该方法采用正交蕴含子,以确保所有解的非冗余、紧凑表示,即作为部分赋值的并集。
- 计算被组织为每个蕴含子对应一个独立线程,支持并行执行并实现动态处理器复用。
- 该算法是递归且天然并行的,在拥有足够处理器且函数稀疏时,时间复杂度被限制在 O(n)。
实验结果
研究问题
- RQ1能否设计一种针对 ANF 形式布尔公式的全部解的并行求解器,并实现紧凑的解表示?
- RQ2如何利用蕴含子将计算分解并分发到独立线程中,以实现可扩展的解枚举?
- RQ3在理想并行执行条件下,此类求解器的理论时间复杂度是多少?
- RQ4布尔函数中的稀疏性如何影响求解器的可扩展性和性能?
- RQ5使用正交蕴含子能否带来更紧凑、更高效的全部满足赋值表示?
主要发现
- 在假设布尔函数稀疏且变量数有界的情况下,所提出的求解器在拥有足够并行处理器时,实现 O(n) 的时间复杂度,其中 n 为变量数。
- 线程段数量最初呈指数增长,但随着矛盾或部分解的检测,迅速被剪枝,从而降低整体计算负载。
- 该算法通过正交蕴含子确保所有解的紧凑表示,避免了解枚举中的指数级膨胀。
- 加速比随独立线程数增加而提升,最大理论加速比为 S = N / N_seq,其中 N 为线程段总数,N_seq 为最长的串行线程段。
- 根据 Amdahl 定律分析,当 P = N / N_seq 时,可实现临界加速比 S_crit = P² / (P² - (P-1)²),表明在理想条件下具有强可扩展性。
- 该方法在处理稀疏布尔函数问题(如密码分析和基因调控网络)中特别有效,其中单个函数的复杂度有界。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。