SATを使用して、量指定子除去の正確性を検証する


8

ましょうx=(x1,,xn)とあることのブール変数の-vectors。私はブール述語をに持っています。友達にプリシラを渡します。それに応答して、彼女は私に与え、上のブール述語、と彼女は主張しますy=(y1,,yn)nQ(x,y)x,yQ(x,y)P(x)x

P(x)y.Q(x,y),

言い換えれば、

x.[P(x)y.Q(x,y)].

なんとか彼女の主張を検証したい。プリシラはこの主張を確認するのにどのように役立ちますか?

と両方がCNF式として表され、それらが大きすぎない(多項式サイズなど)と想定できます。PQ

理想的な世界では、この主張をSATに検証する問題を軽減できればすばらしいでしょう。SATソルバーがあり、SATソルバーを使用してこの主張を検証できればすばらしいと思います。ただし、この主張をSATインスタンスとして直接検証するという問題を定式化することは不可能だと確信しています。2QBF式の有効性をテストすることは、 SATよりもほぼ確実に困難です。(方向はSATインスタンスとして簡単に定式化できますが、方向は2つの交互の量指定子が本質的に含まれるため困難です。)

しかし、プリシラが彼女の主張を裏付けるいくつかの追加の証拠を私に与えることができると仮定します。プリシラが私に与えることができる追加の証拠または証人はありますか?それにより、彼女の主張を簡単に確認できますか?特に、彼女が私に与えることができる追加の証拠または証人はありますか?これにより、彼女の主張をSATのインスタンスとして検証する問題を簡単に定式化できます(次に、SATソルバーを適用できます)?

私の設定の珍しい側面の1つは、SATのオラクルがあると(ヒューリスティックに)想定していることです。複雑さの理論が好きなら、このように考えることができます。私は、(つまり、)で計算できるマシンの役割を担っており、プリシラのアルゴリズムを使用して要求します。このような考え方について、mdxに感謝します。PNPΔ2PPNP


私の動機/アプリケーション:システムの正式な検証(たとえば、シンボリックモデルのチェック)を行うつもりであり、推論の重要なステップには、数量詞の削除(つまり、から開始して取得する)が含まれます。量指定子の削除が正しく行われたことを確認するためのクリーンな方法を期待しています。QP

考えられるすべてので機能する解決策がない場合は、「健全だが完全ではない」解決策を提案してください。つまり、多くの、主張された同等性を検証できます。(主張を満たす主張の検証に失敗した場合でも、誤った主張を検証したと不適切に主張しない限り、ヒューリスティックとしてこれを試すことができます。特定の、機能する場合と機能しない場合があります。機能しない場合でも、始めたときより悪くはありません)。P Q P QP,QP,QP,QP,Q


プリシラに場合、yは無関係ですが、効果的に解いていないのですか?もしそうなら、NP = coNPでない限り、プリシラがあなたに与えることができる証明書はありません。タウトCONPをQ(x,y)TAUTcoNPNP=coNP
mdxn 2013年

@mdx、この設定の特異な点は、SATソルバーがあることです。SA​​Tソルバーは(経験的に)実際に実行する述語でほぼ常に動作するようです。だから、私は与えられていた場合と検証したいX P X Q X 、私が養うことができますP X ¬ QのP(x),Q(x)x.P(x)Q(x) SATソルバーに。それは、これが満足できるでない見つけた場合、私が確認したxとP X Q xは本当です。したがって、これで TAUTを効果的に解決できたとしても、実際には問題ありません。またはあなたのコメントの要点を誤解しましたか?(P(x)¬Q(x))(¬P(x)Q(x))x.P(x)Q(x)TAUT
DW

1
ああ、私はあなたが問題を決定する機械の役割取っていると仮定(またはのヒューリスティック相当)を?PNP=Δ2P
mdxn 2013年

@mdx、ええ、あなたがそれを言及した今、それはそれについて考える良い方法です。その視点を提案してくれてありがとう!
DW

first-order-logicタグが正当化されているとは思いません。問題は、数量化されたブール式に関するすべてです。
kne

回答:


2

私が識別できた2つの手法を次に示します。

  • 明示的なスコーレム関数を特定します。プリシラがような明示的な関数fを識別できるとします。f

    x.P(x)Q(x,f(x))

    保持します。それから、プリシラの主張は正しいということになります。

    これは、上記の命題が成り立つように関数提供することにより、プリシラが彼女の主張を検証するのに役立つことを意味します。次の式の充足可能性をテストすることにより、上記の命題が成り立つことを確認できます。f

    ¬(P(x)Q(x,f(x))).

    この公式が満足できない場合、プリシラの主張は確認されています。

    注意点の1つは、プリシラが適切な関数を識別できる必要があることです。さらに注意が必要なのは、fを、たとえば多項式サイズのブール回路として簡潔な形で具体的に表現できるようにする必要があることです。ただし、これらの条件が満たされている場合、この手法は機能するはずです。ff

  • ハイブリッドな議論。 この問題の特別なケースを考えてみましょう。ここでは、(ビット変数ではなく)1ビット変数を定量化しています。この場合、問題は簡単に解決できます。これは、その手法をn回連鎖させ、そのたびにyのビットを1つ削除することを示唆しています。このアイデアがうまくいくこともありますが、常にうまくいくとは限りません。nny

    が1ビット変数の場合のプリシラの主張を検証する方法について説明します。そして、yのQ X Yは、と同等であるQ X Q X 。後者の式は最大でQの 2倍の大きさであるため、多項式サイズのままです。これで、SATソルバーを使用して、Q x x True y=(y1)y.Q(x,y)Q(x,False)Q(x,True)QQ(x,False)Q(x,True)です。次の式が満たされない場合、等価性は正確に保持されます。P(x)

    ¬(P(x)(Q(x,False)Q(x,True))).

    したがって、1ビットで定量化している場合、これは、数量詞の除去が正しく行われたことを確認する方法を提供します。

    元の問題を解決するには、これを複数回適用します。プリシラの仕事は、ブール述語R 0R 1R 2Rを与えることです。n+1、そのようなことをR0,R1,R2,,Rn

    Ri(x,(yi+1,,yn))y1,y2,,yi.Q(x,y).

    私たちの仕事は、これらすべてのブール述語が正しく生成されたかどうかを検証することです。我々が試験することによってこれを行うことができるかどうかをP X R NQ(x,y)R0(x,y)P(x)Rn(x)

    Ri+1(x,(yi+2,,yn))yi+1.Ri(x,(yi+1,,yn))for i=1,2,,n1.

    後者は単一ビットによる量指定子除去のインスタンスであるため、SATソルバーを使用して正しく行われたことをテストする方法についてはすでに説明しました。かどうかを我々はまた、テストすることができ及びP Rは、ソルバ直接的SATを使用します。したがって、プリシラがR 0R nを生成したかどうかを確認できます。QR0PRR0,,Rn正しくます。もしそうなら、が適切に生成されたことを確認しました。P

    注意点の1つは、プリシラがを生成できる必要があることです。より大きな注意点は、すべてのR iのサイズが妥当である必要があることです(たとえば、多項式サイズ)。プリシラがR iを単純に生成する場合、それらのサイズはiとともに指数関数的に増加する可能性があり、これは良くありません。したがって、プリシラは各段階で単純化する方法が必要になります。すべて多項式サイズのR 0R nのシーケンスが存在する必要があり、プリシラはそのようなシーケンスを見つけることができる必要があります。それは決して保証されていません。とは言っても、プリシラがこれを行うことができれば、このテクニックはうまくいくはずです。RiRiRiiR0,,Rn

私はこれらのテクニックに完全に満足していません-それらは不完全なヒューリスティックであり、それらはいくつか/多くの問題インスタンスで失敗するかもしれません-したがって、この問題に取り組む他の方法を見ることに興味があります。

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