이 문제 는 coNP-hard (따라서 coNP-complete)입니다.k=3
이를 증명하기 위해 3-SAT에서이 문제의 보완으로 (주어진 회로의 경우 회로가 이 아닌 기능을 ).NC03
먼저 도움이 될 예비 정의 :
레이블이 붙은 그래프를 유향 그래프로 정의합니다. 일부 정점에는 리터럴로 레이블이 지정되어 있으며 모든 정점에는 레이블이없는 수신 모서리, 레이블이없는 수신 모서리 또는 레이블이없는 수신 모서리가 있습니다.
감소
각각 3 개의 리터럴을 포함하는 절로 구성된 3-SAT 공식 가 있다고 가정 합니다. 첫 번째 단계는 에서 레이블이 지정된 그래프 를 구성하는 것입니다.m G ϕϕmGϕ 입니다. 이 레이블이있는 그래프에는 각 절에 대해 다음 가젯 (끔찍한 다이어그램에 대해 죄송합니다)의 사본 하나가 포함되어 있습니다 . L1, L2 및 L3으로 표시된 세 개의 모서리는 대신 절의 리터럴로 레이블이 지정됩니다.ϕ
|
| |
| |
| O<-----\
| ^ |
| | |
| | |
| /----->O |
| | ^ |
| | | |
| | | |
| O O O
| ^ ^ ^
| | | |
| |L1 |L2 |L3
| | | |
| O O O
| ^ ^ ^
| | | |
| | | |
| \------O------/
| ^
| |
| |
| O
| ^
| |
|
가제트 (각 절마다 하나씩)는 하나의 가제트의 하단이 다음의 상단에 연결되어 하나의 큰 주기로 정렬됩니다.
이 가제트 배열은 실제로 레이블이 지정된 그래프를 형성합니다 (모든 정점은 1 또는 2의 부정확 한 모서리를 가지므로 1의 정점은 부정확 한 1의 정점이 레이블로 표시됨).
화학식에서 와 표시된 그래프 G (로부터 제조 하였다 φ ) 우리 옆 구성 N C 0 3 회로 (이는 감소를 종결한다). 이 회로의 입력 및 출력 수는 n + v입니다. 여기서 n 은 ϕ 의 변수 수 이고 v 는 G 의 꼭짓점 수입니다 . 하나의 입력과 하나의 출력이 ϕ의 각 변수 와 G의 각 정점에 할당됩니다 . x 가 ϕ 에서 일부 변수 인 경우ϕGϕNC03n+vnϕvGϕGxϕ 와 관련된 입력 및 출력 비트 를 x i n 및 x o u t로 참조 합니다. 경우 또한, L은 로 리터럴 L이 = X 우리 정의 패 I N = X 나 N 과 경우 L은 함께 리터럴 L = ¬ X 우리 정의 패 I N = ¬ X I N은 . 마지막으로 v 가 G의 정점 인 경우xxinxoutll=xlin=xinll=¬xlin=¬xinvG그런 다음 와 관련된 입력 및 출력 비트 를 v i n 및 v o u t로 참조 합니다.vvinvout
출력 비트에는 네 가지 유형이 있습니다.
1) 모든 변수 에 φ , X O U t = X 나 N . 이 출력은 하나의 입력 비트에만 의존합니다.xϕxout=xin
2) 레이블이 붙은 그래프의 모든 정점 에 대해 모서리가 레이블이 지정되지 않도록 정확히 하나의 들어오는 모서리 ( u , v ) 가있는 경우 v o u t = v i n ⊕ u i n . 이 출력은 두 개의 입력 비트에만 의존합니다.v(u,v)vout=vin⊕uin
3) 모서리가 l , v o u t = v i n ⊕ ( u i n ∧ l i n )으로 레이블링되도록 정확히 하나의 들어오는 모서리 ( u , v )를 갖는 레이블이있는 그래프의 모든 정점 에 대해 . 참고이 출력은 세 개의 입력 비트들에 의존하는 사람 L I N 밖에는 X 나 N 변수간에 대한 X 리터럴에서 사용되는 L .v(u,v)lvout=vin⊕(uin∧lin)linxinxl
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)vout=vin⊕(uin∨win)
모든 경우에 출력은 3 개의 입력에만 의존하기 때문에 원하는 회로는 에 있습니다.NC03
정확성 증명 사례 1 : 가 만족 스럽다ϕ
만족스러운 할당이 있다고 가정합니다 . 그런 다음 입력에 대해 다음 두 세트의 값을 구성하십시오.ϕ
1) 의 변수와 관련된 입력 은 만족스러운 할당의 값이 주어진다. G의 꼭짓점과 관련된 모든 입력 에 값 0이 제공됩니다.ϕG
2) 의 변수와 관련된 입력 은 만족스러운 할당 값이 주어진다. G의 한 절 가젯에서 꼭짓점을 고려하십시오 . 레이블 값이 0 (만족 할당 아래)이면 해당 레이블로 레이블이 지정된 가장자리의 대상 끝점에서 정점과 관련된 입력에 값 0이 제공됩니다. L1과 L2 모두 값이 0 인 경우 두 번째 값 가젯의 -top 꼭짓점 (위 그림 참조)에도 0 값이 지정됩니다. 다른 모든 꼭짓점에는 1 값이 지정됩니다.ϕG
이 두 세트의 입력이 동일한 출력을 생성하므로 회로가 순열을 인코딩하지 않음 을 보여 주려고합니다 .NC03
네 가지 유형의 출력 비트를 고려하십시오.
1) 모든 변수 에 φ , X O U t = X 나 N . 이후 X 나 N 입력 세트 모두에 대해 동일하며,이 형태의 출력은 항상 입력의 두 세트에 대해 동일한 것이다.xϕxout=xinxin
2) 레이블이 붙은 그래프의 모든 정점 에 대해 모서리가 레이블이 지정되지 않도록 정확히 하나의 들어오는 모서리 ( u , v ) 가있는 경우 v o u t = v i n ⊕ u i n . 복사본이 G 를 구성하는 가제트를 살펴보면 이러한 모든 모서리는 두 번째 입력 세트에서 입력 값이 항상 1 인 정점 쌍으로 만 구성되어 있음을 알 수 있습니다. 따라서 v o u t = v i n ⊕ u i n = 0 ⊕ 0 =v(u,v)vout=vin⊕uinG첫 번째 입력 세트에서는 0 이고 두 번째 입력 세트에서는 v o u t = v i n ⊕ u i n = 1 ⊕ 1 = 0 입니다. 따라서이 형식의 출력은 두 입력 세트에서 항상 동일합니다 (실제로 0).vout=vin⊕uin=0⊕0=0vout=vin⊕uin=1⊕1=0
3) 각 정점 용 정확히 하나의 입력 에지 표지 그래프 ( U , V ) 에지 레이블링되도록 L , V O U t = V I N ⊕ ( U I N ∧ L ) . 경우 L은 할당 아래 거짓 다음 v에 난 N 입력의 두 세트 하에서 0이고; 그런 다음 v o u t = v i n ⊕ ( u i n ∧v(u,v)lvout=vin⊕(uin∧l)lvin 두 입력 세트 모두에서. 경우 L은 할당하에 사실, V 나 N 번째 아래의 첫 번째 입력 세트 1 미만 0이고; 또한, 가제트 유일한 레이블 에지 점에 유의 ( U를 , V ) 의 정점을 유 하는 항상 가지고 U에게 난을 N = 1vout=vin⊕(uin∧l)=vin⊕(uin∧0)=vin=0lvin(u,v)uuin=1두 번째 입력 세트에서. 결과적으로 두 입력 세트에서 l 이 참일 때마다 임을 알 수 있습니다. 그런 다음 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입니다. 따라서이 형식의 출력은 두 입력 세트에서 항상 동일합니다 (실제로 0).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 ) . 각 가젯에는 두 개의 정점이 있습니다. 최상위 정점과 두 번째 정점. 우리는이 두 가지 경우를 별도로 고려합니다.v(u,v)(w,v)vout=vin⊕(uin∨win)
4a) 가 가젯의 두 번째 정점 인 경우 u 와 w 는 L1과 L2로 표시된 가장자리의 두 대상 끝점입니다. 첫 번째 입력 세트에서, v o u t = v i n ⊕ ( u i n ∨ w i n ) = 0 ⊕ ( 0 ∨ 0 ) = 0 입니다. 두 번째 입력 세트에서 u i n 은 0입니다. iff L1이 만족스러운 할당에서 값 0을 갖습니다 (aka u i n =vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uin ); 유사하게, w i n 은 0이고, L2가 만족하는 할당 하에서 값 0을 갖는 경우 (일명, w i n = L 2 ); 그리고 마지막으로, V 나 N L1 및 L2가 모두 값 0이 IFF에 정의되고 0이어야 (일명 v에 난을 N = L 1 ∨ L 2 ). 따라서 두 번째 입력 세트에서, v o u t = v i n ⊕ ( u i n ∨ w i n ) = (uin=L1winwin=L2vinvin=L1∨L2 . 따라서이 형식의 출력은 두 입력 세트에서 항상 동일합니다 (실제로 0).vout=vin⊕(uin∨win)=(L1∨L2)⊕(L1∨L2)=0
4b) 가젯에서 가 최상위 정점 인 경우 u 는 두 번째 정점이며 w 는 L3으로 표시된 가장자리의 대상 끝점입니다. 첫 번째 입력 세트에서, v o u t = v i n ⊕ ( u i n ∨ w i n ) = 0 ⊕ ( 0 ∨ 0 ) = 0 입니다. 두 번째 입력 세트에서 L i1과 L2 모두 0 값을 갖는 경우 u i n 은 0입니다 (일명 u i n = Lvuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uin ); w i n 은 0이고, L3은 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 은 모든 절에 대해 만족할만한 대입으로 정의에 의해 유지됩니다. 따라서이 형식의 출력은 두 입력 세트에서 항상 동일합니다 (실제로 0).vout=vin⊕(uin∨win)=1⊕((L1∨L2)∨L3)=1⊕(L1∨L2∨L3)=1⊕1=0(L1∨L2∨L3)=1
분명히, 우리는 두 개의 서로 다른 입력 세트에 대해 출력이 동일하므로 회로가 궤적이 아닌 기능을 수행 한다는 것을 알 수 있습니다.NC03
ϕ
ϕNC03
xinxϕx
SvGvin
우리는 아래의 정리를 증명할 것입니다 :
SS
SS
SGSS
(L1∨L2∨L3)(u,v)Lvout=vin⊕(uin∧L)L=0vout=vin⊕(uin∧L)=vin⊕(uin∧0)=vin⊕0=vinvinvSS
SNC03
남은 것은 부지런함을 증명하는 것입니다.
GSSvout=vin⊕XXvSXvin=vout⊕XvS
SS