回答:
解決策検索(いくつかの優れたヒューリスティックで解決規則を適用するだけ)は、SATソルバーの別の可能な戦略です。理論的には、DPLL(指数を短く証明する問題が存在する)よりも強力です(つまり、ツリー解像度を実行しますが、パワーを向上させるための良い学習なしに増強できます-それが一般的な解像度と同じくらい強力になるかどうか)私が知っている限りは開いています)が、より良いパフォーマンスを実現する実際の実装は知りません
完全な検索に制限しない場合、WalkSatはローカル検索ソルバーであり、満足のいくソリューションを見つけるために使用でき、多くの場合DPLLベースの検索よりも優れています。ただし、失敗したすべての割り当てをキャッシュしない限り、これは指数関数的なメモリ要件を意味しますが、これを使用して不満を証明することはできません。
編集:追加を忘れた- 切断面も使用できます(SATを整数プログラムに減らすことにより)。特に、整数プログラムを最適に解くには、Gomoryカットで十分です。最悪の場合でも、指数関数が必要になる場合があります。Arora&BarakのComputational Complexity本には、SAT解法のようなものに理論上使用できる証明システムの例がいくつかあると思います。繰り返しになりますが、DPLLベースまたはローカル検索ベースのメソッド以外の高速実装は実際には見たことがありません。
モンテカルロツリー検索(MCTS)は最近、Goなどのゲームでいくつかの印象的な結果を達成しました。大まかな基本的な考え方は、ランダムシミュレーションとツリー検索のインターリーブです。軽量で実装が簡単で、リンクした研究ハブページには、多くの例、論文、コードも含まれています。
Previti et al。[1] SATに適用されるMCTSの予備調査を行いました。MCTSベースの検索アルゴリズムUCTSAT(「ツリーSATに適用される信頼限界の上限」、必要に応じて)を呼び出します。彼らは、UCTSATがDPLLよりも大幅に小さな検索ツリーを生成するかどうかを確認する目的で、SATLIBリポジトリのインスタンスでのDPLLとUCTSATのパフォーマンスを比較しました。
異なるサイズの均一ランダム3-SATおよびフラットグラフカラーリングインスタンスの場合、大きな違いはありませんでした。ただし、UCTSATは実世界のインスタンスでより優れたパフォーマンスを発揮しました。4つの異なるSSA回路障害分析インスタンスの平均ノードサイズ(ノード数)は、DPLLでは数千でしたが、UCTSATでは常に200未満でした。
DPLLは変数訪問順序を厳密に指定しておらず、最適な変数順序攻撃戦略を検討している多くの興味深い研究があります。この一部は、SATアルゴリズムの変数選択ロジックに組み込まれています。ある意味で、この研究のいくつかは予備的であり、さまざまな可変攻撃の順序付けがさまざまな連続制約(インスタンスの硬さと非常に相関している)につながることを示しており、この明らかに重要な洞察を活用するための最も効果的なヒューリスティックまたは戦略を考案しているようです研究の初期段階で。