制約充足約束問題の複雑さ
(これはの「上端」で10ヶ月以上前からの私の質問 cs.stackexchange上を。 その質問と私は尋ねた「下端」以上の8ヶ月前にここで、 私も上の恵みを持って、両方の応答がない。 これらは、 あるスクリーンショット。それは正しくレンダリングていない場合には)この記事は、どのように見えるかの 動機セクションの先頭には: 私はかどうか--ない不思議開始シェーファーの二分法の定理は に拡張することができる約束その一環として-constraints、私が探した 最も単純な答えは簡単ではありませんそのため約束-制約: シェーファーの定理がすでに適用されていることを回避するには、約束が失敗する入力タプルが少なくとも1つ必要です。その定理と同じ理由で、all-trueおよびall-falseはNOを与える必要があり、YESを与える複数の入力が存在する必要があります。特に、可能な入力は4つを超える必要があるため、promise-constraintは少なくとも3つの変数を超える必要があります。単純なものを取得するには、それがちょうど3つの変数を超えており、対称的であると仮定します。入力のどれが真であり、どれが真ではないか。その場合、2-trueはYESを与え、1-trueは失敗し、1-trueはYESを与え、2-trueは失敗します。各変数を反転するだけで、それらは同等に困難です。したがって、短い正式なステートメントと「より良い」名前を提供するために、後者を使用します。 動機セクションの終わり 私の質問 レッツ「正1.2イン3-SAT」ことを約束問題の 入力がの構文持っている3-SATを否定することなく、 場合必見出力YES:入力された1-で-3充足 場合必見出力NO :入力はNAE充足可能ではありません 。 その問題の複雑さは何ですか? 1つのpromise-constraintで変数が2回発生するかどうかを選択できます。 (1つのpromise-constraintで3回発生する変数は、 自動的に必須出力NOインスタンスになります。) 明らかに、恒等関数は約束問題から正の1-in-3-SAT と正のNAE-SATへの縮小 であるため、GC(O(m)、coNLOGTIME)は約束の問題を解決できます。 ただし、 肯定的な1.2-in-3-SATの「単純な」NP硬さの証明を組み合わせて妨害することに つながる一見重要な観察が あります。少なくとも1つのpromise-constraintを複数回満たす変数のセットの場合、 これらの変数がすべて真である1対3の満足のいく割り当てはありません。 逆に、各promise-constraintを最大で1回満たす変数のセットの場合、 1-in-3-satisting割り当て、可能であればそれを変更して、そのセット内のすべての変数をtrueにすると、NAEを満たす割り当てが得られます。特に、2つの1で3を満たす課題の分離 は、常にNAEを満たす課題です。その結果について詳しく説明するには、 前提と正1.2-で-3-SATは持っているガジェットをするような、道具約束制約Cという ガジェットは、すなわち、「お互いと同じようにCの変数を表し、解釈します」 fo r w a r dforwardforward\hspace{.02 in}fo r w a r dforwardforwardb a c …