この問題はcoNP困難(したがってcoNP完全)です。k=3
これを証明するために、3-SATからこの問題を補完するものに減らします(特定の回路に対して、回路は非全単射関数を成立させます)。NC03
最初に役立つ予備的な定義:
ラベル付きグラフを有向グラフとして定義し、そのエッジのいくつかはリテラルでラベル付けされ、すべての頂点にはラベルなしの入力エッジが1つ、ラベル付きの入力エッジが1つ、またはラベルなしの入力エッジが2つあります。
削減
我々は3-SATの式を有すると仮定からなるm個のそれぞれ3個のリテラルを含む、条項。最初のステップは、標識されたグラフを構築することであるGからφを。このラベルの付いたグラフには、ϕの各句に対して次のガジェットのコピーが1つ含まれています(ひどい図は残念です)。代わりに、L1、L2、およびL3とラベル付けされた3つのエッジには、句のリテラルがラベル付けされます。ϕmGϕϕ
|
| |
| |
| O<-----\
| ^ |
| | |
| | |
| /----->O |
| | ^ |
| | | |
| | | |
| O O O
| ^ ^ ^
| | | |
| |L1 |L2 |L3
| | | |
| O O O
| ^ ^ ^
| | | |
| | | |
| \------O------/
| ^
| |
| |
| O
| ^
| |
|
ガジェット(各句に1つ)はすべて、1つの大きなサイクルで配置され、1つのガジェットの下部が次のガジェットの上部にリンクします。
このガジェットの配列は、実際にはラベル付きグラフを形成することに注意してください(すべての頂点には、次数1または2があり、次数1の頂点につながるエッジのみがラベル付けされます)。
式とラベル付きグラフG(ϕから構築された)から、次にN C 0 3回路を構築します(これで縮約が終了します)。この回路の入力および出力の数はN + V n個の変数の数であり、φ及びvはの頂点の数であるG。1つの入力と1つの出力は、各変数に割り当てられたφとの各頂点にG。場合xがでいくつかの変数ですφϕGϕNC03n+vnϕvGϕGxϕ次に、関連付けられた入力および出力ビットをx i nおよびx o u tとして参照します。場合さらに、Lはリテラルであり、Lが= X、我々は定義LをI N = X I N及び場合lはリテラルであり、L = ¬ X我々は定義LをI N = ¬ X I nが。最後に、vがGの頂点である場合xxinxoutll=xlI N= xI NlL = ¬ Xl私N= ¬ XI NvG次に、関連付けられた入力および出力ビットをv i nおよびv o u tとして参照します。vvI NvO U T
出力ビットには4つのタイプがあります。
1)inのすべての変数について、x o u t = x i n。この出力は1つの入力ビットのみに依存することに注意してください。バツϕバツO U T= xI N
2)すべての頂点について正確に1つの着信エッジに標識されたグラフ中の(U 、V )エッジが標識されていないように、V O U T = V I N ⊕ U I N。この出力は2つの入力ビットのみに依存することに注意してください。v(u 、v )vO U T= vI N⊕ UI N
3)すべての頂点について正確に1つの着信エッジに標識されたグラフ中の(U 、V )エッジが標識されているように、L、V O U T = V iがN ⊕ (U I N ∧ L I N)。l i nはリテラルlで使用される変数xのx i nのみに依存するため、この出力は3つの入力ビットのみに依存することに注意してください。v(u 、v )lvO U T= vI N⊕ (uI N∧ リットルI N)lI NバツI Nバツl
4)すべての頂点について正確に2つの入力エッジを有する標識されたグラフ中の(U 、V )及び(W 、V )、V O U T = V I N ⊕ (U I N ∨ W I N)。この出力は3つの入力ビットのみに依存することに注意してください。v(u 、v )(w 、v )vO U T= vI N⊕ (uI N∨ ワットI N)
すべての場合において、出力は3つの入力のみに依存するため、構築する回路は必要に応じてです。NC03
正しさの証明の場合1:は充足可能ϕ
以下のための満足の割り当てが存在すると仮定。次に、入力用に次の2つの値セットを作成します。ϕ
1)の変数に関連付けられた入力満たす割り当ての値を与えられています。Gの頂点に関連付けられているすべての入力には、値0が与えられます。ϕG
2)の変数に関連付けられた入力満たす割り当ての値を与えられています。Gの 1つの節のガジェットの頂点を考えます。ラベルの値が0(満足のいく割り当ての下)の場合、そのラベルでラベル付けされたエッジのターゲットエンドポイントの頂点に関連付けられた入力には値0が与えられます。L1とL2の両方の値が0の場合-(上記の)ガジェットの頂点にも値0が与えられます。他のすべての頂点には値1が与えられます。ϕG
これら2つの入力セットが同一の出力を生成し、したがって回路が順列をエンコードしないことを示したいと思います。NC03
次の4種類の出力ビットを検討してください。
1)inのすべての変数について、x o u t = x i n。以来、X iは、n個の入力の両方のセットに対して同じである、この形式の出力が常に入力の二組で同じであろう。バツϕバツO U T= xI NバツI N
2)すべての頂点について正確に1つの着信エッジに標識されたグラフ中の(U 、V )エッジが標識されていないように、V O U T = V I N ⊕ U I N。コピーがGを構成するガジェットを調べると、そのようなエッジはすべて、入力の2番目のセットの下で入力値が常に1である頂点のペアのみで構成されていることがわかります。したがって、V O U T = V I N ⊕ U I N = 0 ⊕ 0 =v(u 、v )vO U T= vI N⊕ UI NG最初の入力のセットと下 V O U T = V I N ⊕ U I N = 1 ⊕ 1 = 0の入力の第二の組の下で。したがって、この形式の出力は、2つの入力セットで常に同じ(そして実際にはゼロ)になります。vout=vin⊕uin=0⊕0=0vout=vin⊕uin=1⊕1=0
3)すべての頂点について正確に1つの着信エッジに標識されたグラフ中の(U 、V )エッジが標識されているように、L、V O U T = V I N ⊕ (U I N ∧ L )。割り当ての下でlがfalseの場合、両方の入力セットでv i nは0です。次いで、V O U T = V I N ⊕ (U I N ∧v(u,v)lvout=vin⊕(uin∧l)lvinの入力の両方の組の下で。割り当ての下で lが真の場合、 v i nは最初の入力セットでは0で、2番目の入力セットでは1です。また、ガジェットでは、ラベル付きエッジ(u 、v )のみに頂点 uがあり、常に u i n = 1であることに注意してくださいvout=vin⊕(uin∧l)=vin⊕(uin∧0)=vin=0lvin(u,v)uuin=12番目の入力セットの下。その結果、両方の入力セットの下で、lがtrueのときはいつでもあることがわかります。次いで、V O U T = V I N ⊕ (U I N ∧ L )= V I N ⊕ (U I N ∧ 1 )= V I N ⊕ U I N = V I N ⊕ Vuin=vinl。したがって、この形式の出力は、2つの入力セットで常に同じ(そして実際にはゼロ)になります。vout=vin⊕(uin∧l)=vin⊕(uin∧1)=vin⊕uin=vin⊕vin=0
4)すべての頂点について正確に2つの入力エッジを有する標識されたグラフ中の(U 、V )及び(W 、V )、V O U T = V I N ⊕ (U I N ∨ W I N)。各ガジェットには、このような頂点が2つあります。上の頂点と2番目から上の頂点。これら2つのケースを個別に検討します。v(u,v)(w,v)vout=vin⊕(uin∨win)
4a)がガジェットの2番目の頂点である場合、uおよびwは、L1およびL2とラベル付けされたエッジの2つのターゲットエンドポイントです。入力の第一の組の下で、V O U T = V I N ⊕ (uはI N ∨ W I N)= 0 ⊕ (0 ∨ 0 )= 0。入力の第二の組の下で、U iがN L1 IFF 0別名(満足割り当て下で値0を有している、U 、I 、N =vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uin); 同様に、 W I N L2が(別名満たす割り当て下で値0を有するときに限り0であり、 wは、I N = L 2)。そして最後に、 V I N L1とL2の両方IFF 0有する値0になるように定義されているが(別名 V I N = L 1 ∨ L 2)。したがって、入力の第二の組の下で、 V O U T = V I N ⊕ (U I N ∨ W I N)= (uin=L1winwin=L2vinvin=L1∨L2。したがって、この形式の出力は、2つの入力セットで常に同じ(そして実際にはゼロ)になります。vout=vin⊕(uin∨win)=(L1∨L2)⊕(L1∨L2)=0
4b)がガジェットの最上部の頂点である場合、uは2番目の最上部の頂点であり、wはL3とラベル付けされたエッジのターゲットエンドポイントです。入力の第一の組の下で、V O U T = V I N ⊕ (uはI N ∨ W I N)= 0 ⊕ (0 ∨ 0 )= 0。入力の2番目のセットでは、L1とL2の両方の値が0である場合、u i nは0です(別名u i n = Lvuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uin)。W I N L3が(別名値0を有するときに限り0であり、 wは、I N = L 3)。そして最後に v i n = 1です。したがって、入力の第二の組の下で、 V O U T = V I N ⊕ (U I N ∨ W I N)= 1 ⊕ ((L 1 ∨ L 2 )∨ L 3 )uin=L1∨L2winwin=L3vin=1等式(L 1 ∨ L 2 ∨ L 3 )= 1は、すべての句のために満足割り当てに定義することによって成立します。したがって、この形式の出力は、2つの入力セットで常に同じ(そして実際にはゼロ)になります。vout=vin⊕(uin∨win)=1⊕((L1∨L2)∨L3)=1⊕(L1∨L2∨L3)=1⊕1=0(L1∨L2∨L3)=1
明らかに、出力は2つの異なる入力セットで同じであるため、回路は非全単射関数を実行します。NC03
正しさの証明ケース2:が満たされないϕ
満足割り当てが存在しないことになりましたと。次に、矛盾のために、いくつかの異なる入力セットが同じ出力を持つN C 0 3回路につながると仮定します。ϕNC03
明らかに、2つの入力が同じ値持っている必要がありますすべての変数のためのxでφ。したがって、xの値を明確に参照できます。xinxϕx
定義頂点の集合であることがVでGようにV I nは、入力値の二組が異なります。SvGvin
以下の補題を証明します。
補助定理1:いくつかのガジェットで標識されたエッジのターゲット・エンドポイントですべての3つの頂点がでない場合は次いでガジェットにおけるこれら3つ以上のない頂点がでないS。SS
補題2:一部のガジェットでトップの頂点はでていない場合はなし頂点まで次のガジェットで、その後はであるS。SS
ガジェットがループを形成するので、これは任意のガジェットで標識されたエッジのターゲット・エンドポイントですべての3つの頂点がでない場合ことを意味その後には頂点GがでていないS(言い換えれば、Sは空です)。SGSS
しかし、句に関連したガジェット検討満足されていません。このガジェットでは、すべての3つのラベルは、我々は、そのエッジを知っている値0を有する(U 、V )標識Lを満足しなければならないV O U T = V I N ⊕ (U I N ∧ L )が、L = 0、そうV O U T = v i n(L1∨L2∨L3)(u,v)Lvout= vI N⊕ (uI N∧ L )L = 0。したがって、出力は両方の入力で同じなので、 v i nの値も2つの入力セットで同じでなければなりません。つまり、 vが Sにないことを示しました。したがって、この特定のガジェットでは、ラベル付きエッジのターゲットエンドポイントの3つの頂点は Sにありません。vO U T= vI N⊕ (uI N∧ L )= VI N⊕ (uI N∧ 0 )= VI N⊕ 0 = VI NvI NvSS
結果として、は空であると結論付けます。ただし、これは、2つの入力セット間で違いがなかったことを意味し、これらの入力セットが異なるという仮定に矛盾します。その結果、N C 0 3回路によって実行される関数は単射であるため、全単射であることがわかります。SNC03
残っているのは、補題を証明することだけです。
これを行うには、すべてのタイプの頂点(ラベル付きの次数1、ラベルなしの次数1、および次数2)について、すべての着信エッジがSにない頂点から来る場合、問題の頂点もSにないことに注意してください。これは、すべての3つのケースがでV O U T = V I N ⊕ XここでXに縁を持つ変数、及び/又は頂点に関連付けられた入力のいくつかの関数であるV。そのような頂点はすべて仮定ではSにないため、Xの値は両方の入力セットで同じでなければなりません。したがって、v iGSSvO U T= vI N⊕ XバツvSバツも入力の両方のセットの下で同じです。つまり、vはSにありません。vI N= vO U T⊕ XvS
これで、すべての先行タスクがSにないときは常に頂点がないという規則ができたので、上のガジェット図に規則を繰り返し適用するだけで、補題が続きます。SS