Skip to main content
QUICK REVIEW

[論文レビュー] Implicant based parallel all solution solver for Boolean satisfiability

Virendra Sule|arXiv (Cornell University)|Nov 29, 2016
Formal Methods in Verification参考文献 8被引用数 3
ひとこと要約

本稿では、スパースなブール関数をインパリカンツに分解する再帰的分解を活用し、代数的正規形(ANF)に表現されたブール論理式のすべての充足割当を計算する並列でインパリカンツベースのアルゴリズムを提示する。解を直交インパリカンツによるコンパクトな表現で表し、独立したスレッドに計算を分散させることで、十分な並列プロセッサが利用可能な場合、時間計算量がO(n)にまで低下し、大規模でスパースなシステムにおけるスケーラブルな解の列挙を実現する。

ABSTRACT

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ソルバが決定問題に焦点を当てているのに対し、全解の列挙に焦点を当てたギャップを埋めること。
  • インパリカンツと直交インパリカンツを用いて、指数的増加する解集合をコンパクトに表現すること。
  • 独立したスレッド生成によって自然に負荷分散とプロセッサの再利用を可能にする並列アルゴリズムを設計すること。
  • 暗号解析、生物学的ネットワーク、論理最適化分野の大規模問題におけるスケーラビリティを向上させるために、ブール関数のスパarsityを活用すること。

提案手法

  • ブール論理式 F = ∏fi における各要因 fi(ANF形式のスパースなブール関数)に対して完全なインパリカンツ集合を計算する。
  • ピボット要因を用いて初期インパリカンツを生成し、その後各インパリカンツを残りの要因に代入することで、論理式を再帰的に簡略化する。
  • 各インパリカンツに対して、残りの関数の商を計算し、0に評価される(矛盾を示す)ものや部分解が得られるものを除外する。
  • すべての解を部分割当ての和集合として重複のないコンパクトな表現にするために、直交インパリカンツを用いる。
  • 計算は各インパリカンツごとに独立したスレッドとして構造化され、動的プロセッサ再利用を可能にする並列実行が可能となる。
  • アルゴリズムは再帰的かつ本質的に並列的であり、関数がスパースで十分なプロセッサが利用可能な場合、時間計算量がO(n)で抑えられる。

実験結果

リサーチクエスチョン

  • RQ1ANF形式のブール論理式の全解を求める並列ソルバを、コンパクトな解表現で設計可能か?
  • RQ2インパリカンツを用いて計算を独立したスレッドに分解・分散させ、スケーラブルな解の列挙を実現する方法は何か?
  • RQ3理想の並列実行条件下でのこのソルバの理論的時間計算量は何か?
  • RQ4ブール関数のスパarsityが、このソルバのスケーラビリティとパフォーマンスに与える影響は何か?
  • RQ5直交インパリカンツの使用により、すべての充足割当のよりコンパクトで効率的な表現が可能になるか?

主な発見

  • 十分な並列プロセッサが利用可能な場合、ブール関数がスパースで変数数が有界であるという仮定のもと、提案されたソルバはO(n)の時間計算量を達成する。ここでnは変数の数である。
  • スレッドセグメントの数は当初指数関数的に増加するが、矛盾や部分解が検出されると急速に削減され、全体の計算負荷が低減される。
  • 直交インパリカンツを用いることで、解の列挙における指数的爆発を回避する、すべての解のコンパクトな表現が保証される。
  • スループットは独立スレッド数に比例し、最大理論的スループットS = N / N_seqが達成される。ここでNは全スレッドセグメント数、N_seqは最長の逐次スレッド数である。
  • アムダールの法則による解析から、P = N / N_seqのとき、臨界的スループットS_crit = P² / (P² - (P-1)²)が達成可能であり、理想状態下で強いスケーラビリティを示す。
  • 本手法は、暗号解析や遺伝的制御ネットワークなど、個々の関数の複雑さが有界な問題に対して特に効果的である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。