Ten problem z jest trudny coNP (a zatem coNP-zupełny).k = 3
Aby to udowodnić, zredukuję z 3-SAT do uzupełnienia tego problemu (czy dla danego obwodu obwód ma funkcję nie-bijectywną).N.do03)
Najpierw wstępna definicja, która będzie pomocna:
Definiujemy wykres oznaczony jako wykres ukierunkowany, którego niektóre krawędzie są oznaczone literałami, z tą właściwością, że każdy wierzchołek ma albo jedną nieznakowaną krawędź wejściową, jedną oznaczoną krawędź wejściową lub dwie nieznakowane krawędzie przychodzące.
Redukcja
Załóżmy, że mamy wzór 3-SAT składający się z m klauzul, z których każda zawiera trzy literały. Pierwszym krokiem jest zbudowanie oznaczonego wykresu G z ϕ . Ten wykres z etykietą zawiera jedną kopię następującego gadżetu (przepraszam za okropny schemat) dla każdej klauzuli w ϕ . Trzy krawędzie oznaczone L1, L2 i L3 są zamiast tego oznaczone literałami w klauzuli.ϕmsolϕϕ
|
| |
| |
| O<-----\
| ^ |
| | |
| | |
| /----->O |
| | ^ |
| | | |
| | | |
| O O O
| ^ ^ ^
| | | |
| |L1 |L2 |L3
| | | |
| O O O
| ^ ^ ^
| | | |
| | | |
| \------O------/
| ^
| |
| |
| O
| ^
| |
|
Gadżety (po jednym dla każdej klauzuli) są ułożone w jednym dużym cyklu, a dół jednego gadżetu łączy się z górą następnego.
Zauważ, że taki układ gadżetów faktycznie tworzy wykres z etykietą (każdy wierzchołek ma stopień 1 lub 2 z tylko krawędziami prowadzącymi do etykietowania wierzchołków stopnia 1).
Na podstawie wzoru i oznaczonego wykresu G (który został skonstruowany z ϕ ) konstruujemy następnie obwód N C 0 3 (zakończy to redukcję). Liczba wejść i wyjść z tego układu jest brak + V , gdzie n oznacza liczbę zmiennych cp a v jest liczbą wierzchołków G . Jedno wejście i jedno wyjście jest przypisana do każdej zmiennej w cp i każdego wierzchołka w G . Jeśli x jest jakąś zmienną w ϕϕsolϕN.do03)n + vnϕvGϕGxϕwtedy będziemy odnosić się do bitów wejściowych i wyjściowych związanych z jako x i n i x o u t . Ponadto, jeśli l jest literałem przy l = x, wówczas definiujemy l i n = x i n, a jeśli l jest literałem przy l = ¬ x, to definiujemy l i n = ¬ x i n . Wreszcie, jeśli v jest jakimś wierzchołkiem w Gxxinxoutll=xlin=xinll=¬xlin=¬xinvGnastępnie będzie odnosić się do bitów wejściowych i wyjściowych związane z jak V i n i V O U ţ .vvinvout
Istnieją cztery typy bitów wyjściowych:
1) Dla każdej zmiennej in ϕ , x o u t = x i n . Zauważ, że to wyjście zależy tylko od jednego bitu wejściowego.xϕxout=xin
v(u,v)vout=vin⊕uin
v(u,v)lvout=vin⊕(uin∧lin)linxinxl
v(u,v)(w,v)vout=vin⊕(uin∨win)
NC03
ϕ
ϕ
ϕG
ϕG
NC03
Rozważ cztery typy bitów wyjściowych:
xϕxout=xinxin
v(u,v)vout=vin⊕uinGvout=vin⊕uin=0⊕0=0vout=vin⊕uin=1⊕1=0
v(u,v)lvout=vin⊕(uin∧l)lvinvout=vin⊕(uin∧l)=vin⊕(uin∧0)=vin=0lvin(u,v)uuin=1uin=vinlvout=vin⊕(uin∧l)=vin⊕(uin∧1)=vin⊕uin=vin⊕vin=0
v(u,v)(w,v)vout=vin⊕(uin∨win)
vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uinuin=L1winwin=L2vinvin=L1∨L2vout=vin⊕(uin∨win)=(L1∨L2)⊕(L1∨L2)=0
vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uinuin=L1∨L2winwin=L3vin=1vout=vin⊕(uin∨win)=1⊕((L1∨L2)∨L3)=1⊕(L1∨L2∨L3)=1⊕1=0(L1∨L2∨L3)=1
NC03
ϕ
ϕNC03
xinxϕx
SvGvin
Poniżej udowodnimy następujące lematy:
SS
SS
SGSS
(L1∨L2∨L3)(u,v)Lvout=vin⊕(uin∧L)L=0vout=vin⊕(uin∧L)=vin⊕(uin∧0)=vin⊕0=vinvinvSS
SNC03
Pozostało tylko udowodnić lematy.
GSSvout=vin⊕XXvSXvin=vout⊕XvS
SS