PHPの満足できるインスタンスでのDPLLベースのSATソルバーはどれくらい効率的ですか?


15

私たちは、DPLLベースのSAT-ソルバーが充足不能のインスタンスに正しく答えるために失敗することを知っている「から単射マッピングがある上(鳩の巣原理)、例えばN + 1nが」:PHPn+1n

PHPnn+1:=(i[n+1] j[n] pi,j)(ii[n+1] j[n] (¬pi,j¬pi,j))

私は、彼らが満足できるのインスタンス上で実行する方法についての結果を探しています「から単射マッピングがある上、例えばの」。PHPnn

そのようなインスタンスで満足のいく割り当てがすぐに見つかりますか?


1
「正しく答えられない」とは、「nの十分に大きな値でリソースが不足する」ことを意味しますか?
ビジェイD

@Kaveh同じ句内で句の繰り返しや変数の繰り返しを許可していますか?ありがとう
Tayfun Pay

@VijayD、私は、アルゴリズムが十分に大きいに対して多項式時間で正しい答えを返さないことを意味します。DPLLベースのアルゴリズムがこのファミリで多項式時間で機能することを証明できることを期待できます。n
カヴェー

@Geekster、あなたが何を言っているのか分かりません。特定の式のファミリがあります。その式に繰り返しがあるかどうか尋ねていますか?
カベ

回答:


14

充足可能なインスタンスでは、DPLLベースのSATソルバーは線形時間で満足のいく割り当てを提供します。PHP

理由は、の充足不可能なインスタンスの符号化CNFを観察Nの孔とN + 1羽のハトのインスタンスへsintactically同一であり、K = N個の入力グラフのクリークであるグラフ彩色、N + 1つの頂点。PHPnn+1k=nn+1

同様に、n個の穴とn個のハトを持つ充足可能なインスタンスのCNFエンコーディングは、入力グラフがn頂点のクリークであるk = n Graph Coloringのインスタンスと構文的に同一です。PHPnnk=nn

今、のクリーク着色で頂点をn個の頂点をスキャンし、それらの残りの各色のいずれかへの割り当ては、(既に割り当てられた色が自動的によって除外される:色は簡単であるクリークネスユニットの伝播を使用して、グラフの) 。あなたが選択した残りの色が何であれ、それは良いものであり、あなたを満足のいく課題に導きます。nn

DPLLソルバーの観点から:変数ブール値を推測しようとするたびに、そのような値は(それが何であれ)正しいでしょう。なぜなら、変数v iが推測値。ユニット伝搬は、ソルバーを満足のいくパスに沿って誘導することにより(言い換えると、間違った値を推測することを防ぐことにより)、残りの仕事を行います。vivi

検索は、正しい推測を行うたびに、線形的に変数を次々に進めます。


ありがとう、これは私が期待していたことです。ところで、これを述べているリファレンスを知っていますか(つまり、「DPLLアルゴリズムは線形時間でPHP / GCの満足できるインスタンスを解決します」)。
カヴェー

1
どういたしまして。私はこれを述べている参考文献を知りません、私は生の推論を通してそれを自分で導きました。すべてのSATソルバーが次の変数の選択とブール値の推測の両方で合理的なヒューリスティックを使用するという事実に依存することで、正式に証明することは難しくありません。実際、線形時間で解に到達することを妨げる不合理なヒューリスティックが少なくとも1つ存在することに注意する必要があります(このような不合理なヒューリスティックは、可能な限りすべての変数をfalseに設定することです)。合理的なヒューリスティックでは、線形時間が保証されます。
ジョルジオカメラニ

同意する。誰かがこれをどこかに述べて、必要なときに引用できるようにしたいと思っています。あと数日お待ちしたいと思います。誰も参照を与えない場合、私はこの答えを受け入れます。再度、感謝します。:)
Kaveh

私の喜び;-)乾杯!
ジョルジオカメラニ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.