Masalah dengan ini adalah coNP-hard (dan karenanya coNP-complete).k=3
Untuk membuktikan ini, saya akan mengurangi dari 3-SAT untuk komplemen dari masalah ini (untuk diberikan sirkuit, apakah sirkuit memberlakukan fungsi non-bijective).NC03
Pertama definisi awal yang akan membantu:
Kami mendefinisikan grafik berlabel sebagai grafik terarah, beberapa di antaranya memiliki label literal, dengan properti yang setiap verteks memiliki satu tepi masuk yang tidak berlabel, satu tepi masuk berlabel, atau dua tepi masuk yang tidak berlabel.
Pengurangan
Misalkan kita memiliki rumus 3-SAT terdiri dari m klausa, masing-masing berisi tiga literal. Langkah pertama adalah membuat grafik berlabel G dari ϕ . Grafik berlabel ini berisi satu salinan gadget berikut (maaf untuk diagram yang mengerikan) untuk setiap klausa dalam ϕ . Tiga sisi berlabel L1, L2, dan L3 sebaliknya diberi label dengan literal dalam klausa.ϕmGϕϕ
|
| |
| |
| O<-----\
| ^ |
| | |
| | |
| /----->O |
| | ^ |
| | | |
| | | |
| O O O
| ^ ^ ^
| | | |
| |L1 |L2 |L3
| | | |
| O O O
| ^ ^ ^
| | | |
| | | |
| \------O------/
| ^
| |
| |
| O
| ^
| |
|
Gadget (satu untuk setiap klausa) semuanya diatur dalam satu siklus besar dengan bagian bawah satu gadget yang terhubung ke bagian atas yang berikutnya.
Perhatikan bahwa pengaturan gadget ini sebenarnya membentuk grafik berlabel (setiap titik memiliki indegree 1 atau 2 dengan hanya tepi yang mengarah ke simpul indegree 1 yang dilabeli).
ϕGϕNC03n+vnϕvGϕGxϕxxinxoutll=xlin=xinll=¬xlin=¬xinvGvvinvout
Ada empat jenis bit keluaran:
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
Pertimbangkan empat jenis bit keluaran:
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
Kami akan membuktikan lemmas berikut di bawah ini:
SS
SS
SGSS
(L1∨L2∨L3)(u,v)Lvout=vin⊕(uin∧L)L=0vout=vin⊕(uin∧L)=vin⊕(uin∧0)=vin⊕0=vinvinvSS
SNC03
Yang tersisa hanyalah membuktikan lemma.
GSSvout=vin⊕XXvSXvin=vout⊕XvS
SS