暫定的な充足可能性アルゴリズム


8

一般的な充足可能性(ホーン句などのいくつかの例外を除く)には、アルゴリズムによる解決策があるとは考えられていません。ただし、次のアルゴリズムは一般的な充足可能性の解決策のようです。次のアルゴリズムの欠陥は何ですか?

  1. してみましょう必ずしも真または偽でなければならないすべての変数が含まれています空のセットも。W
  2. してみましょう節の集合とします。L
  3. ループします。L
  4. 非条件変数が見つかるたびに、それをから削除して挿入し。WLW
  5. この葉空の含意場合からその空の意味合いですべての変数を削除と挿入。WLW
  6. この葉空または暗示する場合、含意がある場合意味合い(つまり、1つの変数を持つところ、各インスタンスのお得な情報、アルゴリズムの新しいインスタンスを作成します。、1つのインスタンス作成挿入され、1をここで、は挿入され、とは挿入され。x W y WxVyxWyWy WxyW
  7. すべての変数を、必要な値に設定します。W
  8. 変数再度挿入中でその変更した値で、すべての句が満たされているかどうかを確認。LWL
  9. 充足可能性が満たされている場合はを返し、それ以外の場合は「満たされていない」を返します。L

非条件変数は、真または偽である必要がある変数として定義されます。たとえば、またはです。x¬y

空の含意は、片側が空である含意(例:)または反対側が必然的に真である(例:)として定義されます。T R U EAxytrueab

アルゴリズムをより直感的に理解するために、以下の一連の節検討してください。L

abc(i)fg(ii)f¬a(iii)fab(iv)c(v)

アルゴリズムは次のことを行います。

1)、、は非条件変数なので、アルゴリズムはそれらを挿入し。。f g W W = { c f g }cfgWW={c,f,g}

2)、およびを削除すると、空の句が残ります:。これらはに追加され。。f gcfgW W = { C F G B ¬ }¬a,ab,bWW={c,f,g,b,¬a}

3)変数をに再挿入すると、最初の句に違反します:。はfalseであるため、はfalseであり、(v)の項に違反しています。アルゴリズムは「満足できない」を返しますA BLa cabcac

アルゴリズムが混乱しているように見えることを知っています。お気軽にご相談ください。


コメントから、今では効率的な一般な充足可能性アルゴリズムは知られていないことがわかりました。私のアルゴリズムに関するフィードバックにはまだ興味があります。うまくいきますか?一般的なアルゴリズムとどのように比較しますか?


17
一般的な充足可能性に対するアルゴリズムによる解決策がないと思われる理由は何ですか?これを行うためのアルゴリズムは絶対にあります。ただし、最悪の場合の多項式ランタイムがあることは知られていません。あなたが説明しているものは、よく知られている解像度ベースの充足可能性アルゴリズムのようです。
templatetypedef

@templatetypedefウィキペディアの記事は、解決策が存在しないことを示唆しているようです。万が一、よく知られたアルゴリズムを紹介してもらえますか?

9
@RiddlerはWikipediaの記事で実際に述べているように、「SATはNP完全問題の最初の既知の例でした。つまり、SATのすべてのインスタンスを効率的に解決する既知のアルゴリズムがないことを意味します」「SATを解決するためのアルゴリズム」もあるセクション。

5
ブルートフォースソリューション(True / False値のすべての組み合わせを変数に割り当て、結果の式のいずれかがTrueと評価されるかどうかを確認する)があるため、一般的な充足可能性には間違いなくアルゴリズム的なソリューションがあります。

2
問題は、最悪の場合、空のORから指数関数的な数の新しいインスタンスを生成することです。
Elliot Gorokhovsky、2015

回答:


6

問題1

(xyy¯)xx¯W(xyy¯)

問題2

注:これは私が気付いた1つの問題です。他にも問題があるかもしれません。

問題は、「空のORの含意」が2つのアルゴリズムに分割されることです。現在の形式では、分割がすべてのケースをカバーするわけではありません。特に:

(xcy)c(x[]y)x=Ty=Ty=Tx=Fy=Fy

yx¯

問題3

次の形式の句が残っている場合はどうなりますか。

(abc)

または

(abc)

すべてを削減した後、これらの句は残り、満足度を簡単にテストすることはできなくなります。

分析

O(something)Ω(something)

Ω(2m)m

完全な二分木の図

xyO(m)mmm2m 2m


Ω(.)

ΩO(2m)

Ω(2m)

O(.)Ω(.)Ω(2m)Θ(m)Ω(m)

-5

「新しい」SATアルゴリズムを使用していると感じる前に、文献の標準/クラシックバックトラッキング/検索アルゴリズムで、デイビス-パトナム-ログマン-ラブランドアルゴリズム〜1962年まで遡る問題を確認してください。問題のほとんどのバックトラッキング/再帰アルゴリズムは、この同等性を実証するのにかなり時間がかかる可能性がありますが、最終的にはこのアルゴリズムにいくぶん似ているように見えるでしょう。

深刻な分析には、例(またはランダムなインスタンス)とDPLLに対するアルゴリズムのベンチマークが含まれます。

したがって、アルゴリズムがアルゴリズムとどのように異なるかを要約するだけで役立ちます。コードを確認しない場合、オッズは次のとおりです。

  • アルゴリズムにはバグがあります。偽陽性または陰性のいずれかを返します(つまり、アルゴリズムが「式が満足できる場合」であるか、そうでない場合はそれぞれ逆です)。これは通常、ランダムに生成された広範囲の数式を非常に徹底的にテストし、別の既知の正しいアルゴリズム/ 実装( DPLL など)と照合することで検出できます。
  • あなたのアルゴリズムはDPLLほど良くありません。
  • それがDPLLまたは「より良い」と同じくらい良い場合、それは一般に、分岐と変数選択のヒューリスティック/戦略、およびテスト中のインスタンスの分散によるものです。

アルゴリズムはインテリジェントな学部生でも簡単に理解できますが、学部レベルや学部の教科書ではほとんど教えられていないか、参照されないこともあり、基本的なSATアルゴリズムが十分に理解されていないという誤った見方や印象につながる可能性があります。

また最近、YuenとBebelによるToughSatと呼ばれるこの「ライブ」サイトに出くわし、ベンチマークで使用するハードインスタンスを生成しました。一部は因数分解に基づいています[古典的なSATハードインスタンス生成方法の1つ]。他には、ハードインスタンスのアーカイブを保存するDIMACなどがありますが、オンラインではなくなる可能性があります。

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