SATコンペティションで使用されているようなベンチマークデータセットでCDCL SATソルバーを参照していると思います。これらのプログラムは、多くのヒューリスティックと多くの最適化に基づいています。2014年にバンフで行われた応用SATの理論的基礎ワークショップで、彼らがどのように働くかについての非常に良い紹介がありました
(ビデオ)。
これらのアルゴリズムは、競合を検出したときに変数とバックトラックに値を設定することにより、満足のいく割り当てを見つけようとするDPLLバックトラッキングアルゴリズムに基づいています。人々は、これらのヒューリスティックがどれほどの影響を与えるかを見てきました。例えば
ベンチマークでのこれらのSATソルバーの効率は、主に2つの2つのヒューリスティック(およびそのバリアント)に由来するようです。
- VSIDSヒューリスティックfirは、次に分岐する変数を選択します。
- CDCL:競合から新しい句を学習する競合駆動型の句学習ヒューリスティック。
DPLLプルーフが解像度のプルーフに対応することはよく知られています。CDCLがない場合、取得できる唯一の解像度証明は、一般的な解像度証明よりもはるかに弱いツリー解像度証明です。
一般的な解像度の証明を取得できることをCDCLで示す結果があります。ただし、注意点があり、多くの人為的な再起動、人為的な分岐、および/または特定の前処理が必要であるため、これらがこれらのプログラムの実際の動作にどれだけ近いかは明確ではありません。詳細については、たとえば次のペーパーを参照してください。
CDCLは、本質的にサーチスペースからブランチをカットしています。紛争から新たな教訓条項を導き出すには、さまざまな方法があります。理想的には、競合を暗示する最小限の節のセットを追加しますが、実際には、それは大きく、計算に費用がかかる可能性があります。トップSATソルバーは、学習した句を定期的に削除することが多く、実際に役立ちます。
他のヒューリスティックVSIDSは、基本的に各変数のスコアを維持します。競合が発生するたびに、すべてのスコアに値 <1を掛けて、競合に「関与した」スコアに定数を追加することにより、すべてのスコアが調整されます。これが何を意味するかを見るために、変数vが番目の競合に「関与」している場合、1であるシーケンスについて考えてください。してみましょう固定一定です。時間での変数のスコアは次のとおりです。
F (V 、I )I 0 < α < 1 V N Σ I < N F (V 、I )α (N - I )αF(v,i)i0<α<1vn
∑i<nF(v,i)α(n−i)
直観的に、これは最近の紛争に一貫して関与していた変数を強調しようとすると言うことができます
。また、次の競合にどの変数が関与するかを予測する単純で非常に安価な方法と考えることもできます。したがって、VSIDSはこれらの変数で最初に分岐します。アルゴリズムは本質的にフェイルファーストアルゴリズムであると主張でき、競合を迅速に見つけます。Fastは、変数セットの数が少ないことに関連しています。つまり、検索ツリーの大きなサブツリーをブロックします。しかし、これはほとんど直観的であり、SATデータセットでテストすることを非常に慎重に公式化した人はいません。これらのデータセットの1つでSATソルバーを実行することは、最適な決定(節の1つに違反する変数への現在の割り当ての最小拡張)と比較することはもちろん、安くはありません。VSIDSは、各競合としてバンプする変数にも依存します。変数が競合に関与するタイミングを定義するさまざまな方法があります。
これらのアイデアの特定の実装が動的グラフの頂点の時間加重中心性に対応することを示す結果があります。
また、NPハード問題や暗号プリミティブに基づくもののような敵対的なインスタンスや、CDCL SATソルバーが得意ではないランダムなインスタンスを除外するという提案もあります。構造はCDCL SATソルバーによって悪用されます(多くのアイデアがバックドア、凍結変数などに言及されています)が、それらはほとんどアイデアであり、それらをバックアップする強力な理論的または実験的証拠はありません。厳密に適切に定義し、これらのアルゴリズムがうまく機能するインスタンスにプロパティがあることを示し、次にこれらのアルゴリズムがそれらのプロパティを活用することを示す必要があると思います。
一部の人々は、節の比率としきい値が町で唯一のゲームであると主張し続けています。産業用SATソルバーの動作に少し精通している、または証明の複雑さの知識がある人なら誰でも知っているように、これは間違いです。SATソルバーを実際にインスタンスで動作させるか、動作させない多くのことがあり、句の比率は関与する可能性のあるものの1つにすぎません。次の調査は、証明の複雑さとSATソルバーの関係と展望について学ぶための良い出発点だと思います。
興味深いことに、しきい値現象でさえ、ほとんどの人が考えるよりも複雑です。MosheVardi は、講演「位相遷移と計算の複雑さ」で、GRASPの実行時間の中央値は、しきい値後のランダム3SAT式では指数関数のままですが、指数は減少すると述べました(afaik、どのくらい速く減少するかは明らかではありません)。
なぜSATソルバーを(複雑性理論家として)研究するのですか?答えは他のアルゴリズムの場合と同じだと思います:1.それらを比較し、2.それらの限界を見つけ、3.より良いものを設計し、4.複雑性理論の基本的な質問に答えます。
ヒューリスティックをモデル化する場合、ヒューリスティックを非決定性に置き換えることがよくあります。質問は、それが「公正な」代替品になりますか?そして、ここで公平に言えば、上記の質問に答えるのに役立つモデルがどれだけ近いかということです。
SATソルバーを証明システムとしてモデル化すると、証明システムの下限を持つステートメントに対してアルゴリズムが非効率になるため、部分的にその制限を示しています。ただし、アルゴリズムが実際に検出するものと、証明システムでの最適な証明との間にはまだギャップがあります。したがって、逆も同様に示す必要があります。つまり、アルゴリズムは証明システムの証明と同じくらい良い証明を見つけることができます。私たちはその質問にすぐに答えることはできませんが、非決定論に置き換わるヒューリスティックの量が、モデルが証明システムにどれだけ近いかを定義します。ヒューリスティックの非決定性への置き換えを完全に落とすとは思わない。
したがって、モデルを見るときの質問は、SATソルバーAがSATソルバーBよりも優れている理由をモデルがどの程度説明するのに役立ちますか?彼らはより良いSATソルバーを開発するのにどのくらい役立ちますか?SATソルバーは、実際にはモデル内の最適な証明に近い証明を見つけますか?...また、実際のインスタンスをモデル化する必要があります。
CDCL SATソルバーが「実際のインスタンスの構造を活用する」という直感については(その構造が何であれ)、一般的に受け入れられていると思います。本当の問題は、それが何を意味するのか説得力のある説明を与え、それが本当に真実であることを証明することです。
最近の開発については、Jakob Nordstrom自身の回答も参照してください。