SATソルバーペーパーの開始


24

最初のSATソルバーを作りたいです。私はSATコンペティションとSATコンファレンスを知っていますが、このテーマに関する論文はたくさんあります。私はスターターであり、圧倒的なスターターです。どこから始めればいいですか?最終的には、最先端をプッシュしたいと思います。開始方法について専門家のアドバイスが欲しいので、あまり重要ではないものに早すぎる時間を費やさないようにします。どうもありがとう。


6
すでにDPLLアルゴリズムを実装していますか?非常に高速に実行できるように、実装を微調整および洗練しましたか?
ユッカスオメラ

5
充足のハンドブック- amazon.co.uk/...(おそらくコストはかなり高く、ライブラリを確認してください)。
MGwynne

1
@Jukka:コメント->回答?
スレシュヴェンカト

4
ユッカには同意しません。なぜ車輪を再発明するのですか?MiniSATがすでにオープンソースを提供しているものをやり直す理由はありません。CDCLフレームワークへの追加に関心がある場合は、追加したMiniSATのパフォーマンスが向上します。また、DPLLだけでは不十分です。多くの改善が行われました。基本的に、ミコラスの答えに従ってください!
ハックベネット

1
また、関連の質問を参照してくださいcstheory.stackexchange.com/q/1988
アンドラス・サラモン

回答:


18

初心者向けの優れた概要は、2009年の次の記事に記載されています。

技術的な側面に入る方法はいくつかあります。オリジナルのデービス・パトナム論文から始めることもできます。非常に明確で、詳細な例があります。コースでSATの最適化について議論するとき、数人がすでにそこにいると想像するかもしれないことを発見しました。Davis-Logeman-Lovelandの論文は(あまり感じないが)あまり有益ではありませんが、とても短いので読むことができます。

次の50年の発展に追いつく方法があります。講義スライドをお勧めします。「DPLL」を検索するだけで、多くのチュートリアルが表示されます。それらを閲覧すると、ある程度霧が消えるはずです。多くの有用な調査もあります。Zhang-Malikの論文は、始めるのに適した場所です。Handbook of Satisfiabilityには、役に立つと思われる記事がいくつかあります。

私はミコラオスの提案を二番目にします。MiniSATコードはクリーンで管理可能なサイズです。あなたはそれで遊ぶことができます。他にもいくつかのソルバーを試すことができます。CryptoMiniSatも非常にきれいです。また、SATソルバーを作成し、SATソルバーを作成することについて書いているArmin Biereの作業を参照してください。


17

最初に、どの手法がソルバーを本当に進化させたかを理解することをお勧めします。そのためには、次の概要と分析をお勧めします。

それから私はminisatのソースコードをダウンロードしてその説明を読むことをお勧めします。

もちろんそれは個人的なものかもしれませんが、ソースコードを見ることが最も価値があることがわかりました。


9

あなたがそこにあるすべての仕事に圧倒されているなら、誰も以前に問題に取り組んだことがないふりを始めてみませんか?最終的に競争力のあるSATソルバーを構築することが目標である場合、それはかなり長い道のりになるでしょう。「解決策をチェックする」ことなく、いじくり回すことから始めることで、いわば、失うことよりも得ることの方が多くなります。

nmnm

nm


9

良い調査用紙から始めてください。主題の断片を攻撃することは簡単であり、同じ技法や異なる技法に使用される同じ名前について、文献の異なる名前に混乱する可能性があります。また、最新技術がわからない場合は、古いアルゴリズムの戦い(たとえば、発生するリスト対頭尾リスト対DPLL実装の2つの監視リテラル)を簡単に再現できます。

ゴメス他による充足可能性ソルバー 等 大まかな土地を提供します。

Mantheyによる最先端の技術を使用してSATソルバーを改善すると、現在に近づくことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.