토폴리/CCNOT 게이트
📂양자정보이론토폴리/CCNOT 게이트
정의
다음과 같은 벡터값 부울함수를 토폴리 게이트Toffoli gate라고 한다.
T:{0,1}3→{0,1}3
T(a,b,c)=(a,b,(a∧b)⊕c)
- CCNOT 게이트Controlled Controlled NOT(CCNOT) gate라고도 한다.
설명
토폴리 게이트에서는 처음 두 입력이 모두 1이면, 세번째 입력이 반전된다. 나머지 경우에는 입력과 출력이 같다. 구체적인 계산은 다음과 같다.
T(0,0,0)T(0,0,1)T(0,1,0)T(0,1,1)T(1,0,0)T(1,0,1)T(1,1,0)T(1,1,1)=(0,0,(0∧0)⊕0)=(0,0,0⊕0)=(0,0,0)=(0,0,(0∧0)⊕1)=(0,0,0⊕1)=(0,0,1)=(0,1,(0∧1)⊕0)=(0,1,0⊕0)=(0,1,0)=(0,1,(0∧1)⊕1)=(0,1,0⊕1)=(0,1,1)=(1,0,(1∧0)⊕0)=(1,0,0⊕0)=(1,0,0)=(1,0,(1∧0)⊕1)=(1,0,0⊕1)=(1,0,1)=(1,1,(1∧1)⊕0)=(1,1,1⊕0)=(1,1,1)=(1,1,(1∧1)⊕1)=(1,1,1⊕1)=(1,1,0)
위 표를 보면 T가 가역 함수라는 사실과 T를 두 번 합성하면 항등함수가 됨을 쉽게 알 수 있다.
Id=T∘T
또한 {T}가 함수적으로 완전하므로, T는 범용 게이트이다.
부울 함수 | 기호 | 진리표 |
T |  | 입력 | 출력 | a | b | c | a | b | (a∧b)⊕c | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
|
정리
(사영과 주입을 제약없이 쓸 수 있다고 가정하면) 토폴리 게이트 T는 범용 게이트이다. 다시말해 {T}는 함수적으로 완전하다.
증명
정리
복제함수를 허용하면, {↑}는 함수적으로 완전하다. 다시말해 NAND 게이트 ↑는 범용 게이트이다.
위의 정리에 따라 사영, 주입, T를 적절히 사용하여 복제 함수 cl과 NAND 게이트를 표현할 수 있음을 보이면 증명이 끝난다.
복제 함수
cl=p1∘T∘2∘1
가 성립한다. 우선 T∘2∘1(a)를 계산해보면 다음과 같다.
T∘2∘1(a)=T∘2(a,1)=T(a,1,0)
여기서 a=1이면 T(1,1,0)=(1,1,1)이고, a=0이면 T(0,1,0)=(0,1,0)이므로 다음이 성립한다.
T(a,1,0)=(a,1,a)
따라서 p1을 취하면,
p1∘T∘2∘1(a)=p1(a,1,a)=(a,a)=cl(a)
NAND 게이트
p0∘p1∘T∘2=↑p0∘p1∘T∘2(a,b)=a↑b
가 성립한다. 차례로 계산해보면 다음과 같다.
p0∘p1∘T∘2(a,b)=p0∘p1∘T(a,b,1)=p0∘p1(a,b,(a∧b)⊕1)=p0(a,(a∧b)⊕1)=(a∧b)⊕1=¬(a∧b)=a↑b
마지막 줄은 XOR 게이트의 성질에 의해 성립한다.
■
같이보기