これはSATと似ていますが、各変数の割り当ては知っていますが、ブール演算子の割り当てはわかりません。その場合、式が特定のブール値に評価されるように各演算子の割り当てを見つけることはNPCの問題ですか?
実際、整数算術式( = 10など)を満たす算術演算子の割り当てを見つけることがNP完全かどうか疑問に思っていました。
これはSATと似ていますが、各変数の割り当ては知っていますが、ブール演算子の割り当てはわかりません。その場合、式が特定のブール値に評価されるように各演算子の割り当てを見つけることはNPCの問題ですか?
実際、整数算術式( = 10など)を満たす算術演算子の割り当てを見つけることがNP完全かどうか疑問に思っていました。
回答:
加算と減算を使用すると、NP困難なパーティションの問題は2番目の問題に帰着すると思います。
集合与えられると、問題を作成します。
o p 1 s 2 o p 2 s 3 o p 3 … o p n − 1 s n = 0。
ソリューションが存在する場合、2つのセットを作成します。
元の問題のセットアップでは、これら2つのセットの合計が同じでなければならないため、パーティションの問題は解決されます。これは、この問題に対する実際の解決策を考え出すだけでなく、実際には、NPが解決策が存在するかどうかを判断するのが難しいことを示しています(少なくとも加算と減算の場合)。
乗算や加算など、負の整数を作成できない一連の操作については、それほど明確ではありません。また、これは問題がNP困難であることを示しています。これよりも強力な結果をもたらす削減があるかもしれません。
短い答え。SATの演算子バージョンは効率的に解くことができます。少なくとも、ゲートセットの任意の選択に対して、ファンアウトのない2入力ゲートの任意の回路を想定した場合。
長い答え。 私は次の形式のブール値問題を想定しています。
G C G X X X C
特に、回路特定の構造を課すことはなく(バイナリツリーであることを除く)、ファンアウトを許可しません(したがって、各ビットは1回だけ使用されます)。ゲートは非対称になります。2ビットゲートのみを許可することで、NOTゲートを除外します(ただし、AND / NANDなどの否定によって互いに関連する複数のゲートを使用することでシミュレートできます。また、入力のない定数を単に出力するゲートも除外しますので、回路におけるゲート数は、実際には常になることのためビット入力。簡潔にするためには、私が参照するために2-TREE-OPSATとして以下単にOPSATx n − 1 n; ただし、任意のk入力ゲートを許可する回路(k-TREE-OPSAT)またはファンアウトを許可する回路(これをk-FANOUT-OPSATと呼ぶ場合があります)では、問題の分析がはるかに困難になる場合があります。
[ 追加して編集:質問の現在のリビジョンのより一般的な問題を考慮してこれを簡単に調整できます。この場合、特定のをターゲット値にマッピングしようとします、以下の分析でと役割を交換します。これは、の役割を交換する効果有しANDとOR、NANDやNORを、等 ] B ∈ { 0 、1 } 0 1
固定選択の、適切なゲートを持つ適切なツリーを選択する問題は、論理和と同じです:などの等価性を使用する より複雑なゲートセットを単純な(そして強力な)ゲートセットに関連付けるコレクション間でリダクションを実行できます。ゲートと同じ効果(特定の入力が与えられたとき)を持つ要素を賢明に選択することにより、1つのゲートセットがセットに属さない他のゲートをエミュレートできることを話すことができます。特に、ゲートの特定の組み合わせ()は、を生成する定数関数をシミュレートできます。OR(X 、Y )
異なるタイプのゲートを含むゲートセットを検討することから始め、後でそれらのゲートを分析の後半のケースから除外して、ゲートのいずれか1つを含むゲートセットが扱いやすい問題につながることを示します。定数ゲートから定数ゲートまで、問題のゲートを満たす2ビット文字列の数の順に進みます。1 0
定数ゲートを含むゲートセット場合、そのゲートのみを使用して単純に回路を構築できます。この場合、は任意の受け入れます。 G (x 、y )= 1 C C x
ORおよびNAND。を含むすべてのゲートセットについて:他のすべてのゲートが満たす場合はますが、他のゲートを選択する利点はありませんが、回路を構築します。ゲートのみの回路は、以外の文字列を受け入れます。そうでない場合、が自己であるようなゲートが存在します。したがって、 SATを使用したOPSATのインスタンスは簡単です。も同様の注意が適用されます。OR G ∈ G G (X 、Y )OR C OR X ∈ 0 * G ∈ G { G 、OR } OR ∈ G NAND ∈ G
含意のようなゲート。ゲート考えてみましょう。これは場合にのみゼロを出力します。以下では、同様の分析がゲートます。
任意の文字列検討します。がで終わる場合、を形式の部分文字列に分解します。そのような各、を右から左に再帰的に適用し、各に対して出力を生成します。(長さが1の部分文字列の場合、単純な回路を使用します。つまり、その入力はそのままにします。)同様に、(X 、Y )= (1 、0 )、G '(X 、Y )= X ∨ ¬ Y のx ∈ { 0 、1 } nは、X 0 、X 、W 、J = 1 * 0 w j G 0 w j x 1 x w
はで終わり、をの形式の部分文字列に分解し、各にを左から右に再帰的に適用します。これにより、各出力が生成されます。したがって、または(は部分文字列またはの数いずれかで満たされる回路を構築する問題を減らすことができます。以下のために、我々が使用してのいずれかで受け入れることができる再帰的に適用することにより、ゲート左から右へ。これは単にケースを残しますG W jを 1 W J 0 、M 1 、M、M 1 * 0 0 * 1 、M ⩾ 2 G G M = 1 のx ∈ 1 * 0 、X = 1 * 0 G 1 * 0 0 G H ∈ G H (1 、0 )= 1 { G 、H、そのために問題の場合は、入力である。以下のために、のみからなる任意の回路ゲートは、フォームの短いストリングもたらす、最終的に単一ビット列得、のない回路ように:ゲートはによって満足することができませんこの入力。存在する場合にも、ゲートれる、次いで同原あります。または、ゲートがある場合、形式の文字列を減らすことができます
H ∈ G H (1 、1 )= 0 11 * 0 (1 * 0 )* H X X ∈ 1 * 0 G最初の2ビットにを適用することにより、形式の文字列に。そうでない場合、を受け入れる回路を構築できません。
したがって、含意的なゲートを含むゲートセット場合、OPSATは簡単です。
投影の否定。ゲートおよび考慮してください。私たちは考えると、分析類似しています。独自に、に任意の文字列を受け入れることができるのための最終還元によりの単一ビットにビットを、次いで適用 ; そして、同様にを、最後のビットを1ビットに減らしてから、回路¬ π 2(X 、Y )= ¬ Y ¬ π 1 ¬ π 2 ¬ π 1 0 (0 | 1 )N - 1 N ⩾ 2 N - 1 ¬ π 1 1 (0 | 1 )N - 1のn ⩾ 3¬ π 1(¬ π 1(X 1、xは2)、xは3)¬ π 1 10 11。回路が受け入れられない入力はまたはです。補助ゲートがこれらを受け入れるかどうかを判断するのは簡単です。したがって、OPSATは予測の否定に対して簡単です。
パリティと平等。ゲート考慮してください。ゲートセットは、1の奇数を持つ文字列によってのみ正確に満たされることは明らかです。他のゲートを追加する利点を考慮します。G = { PARITY } のx ∈ { 0 、1 } nは
したがって、OPSATは、を含むにとって簡単です。同様の分析は、に適用ためのようなゲートゲート理由:、回路ゲートは、本質的に数のパリティカウント入力で秒。と交換することにより、の分析をの分析に減らすことができます。
プロジェクションゲート。ゲートおよびは、それぞれで開始または終了する文字列を受け入れる回路のみを構築できます。ゲートに他のゲートをした場合の効果を考慮してください(同様の分析が)。
したがって、他のゲートについては、(または)を補完するか、セットを取得するか、(または)のみで追加の受け入れ電力を取得しないか、またはの以前の簡単なケースに減らすことができます。その後、またはを使用したOPSATのインスタンスは簡単です。
デルタ機能ゲート。入力を満たす入力が1つしかない2ビットゲートについて考えます。、、、および。ゲートのみで作成された回路は、文字列のみを受け入れることができます。他のデルタ関数ゲートでそれらを補うと、、、またはいずれかをシミュレートできます。同様の発言が適用されます。同様に、ゲートセットを使用してシミュレートすることもできます。ゲート。したがって、ゲートまたはいずれかに注目することができます。おそらく、ゲート補完され。場合も同様であるため、注目します。なる回路単独では受け入れるように構築することができる文字列を除いて、ファイナルに任意の回路を適用することにより、ビットと、回路を適用。明らかに、文字列はまたは受け入れられません。帰納法により、
文字列を受け入れる回路は、左端のブランチにあるゲートの中間結果を持ち、すべてから左端の入力までを生成する必要があります。ゲートを追加しても、追加の利点は得られません。したがって、回路はのみを受け入れることができます。
最後に、ゲートのみで構成される回路は入力を受け入れません。
各ゲートは、それを受け入れる明確に定義された一般的に非常に大きな入力クラスを生成し、追加のゲートが問題を平凡にする傾向があるため、2-TREE-OPSATはPにあることがわかります。