프레드킨/CSWAP 게이트
📂양자정보이론프레드킨/CSWAP 게이트
정의
다음과 같은 벡터값 부울함수를 프레드킨 게이트Fredkin gate라고 한다.
F:{0,1}3→{0,1}3
F(a,b,c)=(a,(¬a∧b)∨(a∧c),(¬a∧c)∨(a∧b))
- CSWAP 게이트Controlled SWAP(CSWAP) gate라고도 한다.
설명
에드워드 프레드킨Edward Fredkin에 의해 소개되었다. 프레드킨 게이트는 첫번째 입력은 바꾸지않고, 첫번째 입력이 1인 경우에는 나머지 두 값을 교환swap하여 출력한다. 그 구체적인 계산은 다음과 같다.
F(0,0,0)F(0,0,1)F(0,1,0)F(0,1,1)F(1,0,0)F(1,0,1)F(1,1,0)F(1,1,1)=(0,(¬0∧0)∨(0∧0),(¬0∧0)∨(0∧0))=(0,0∨0,0∨0)=(0,0,0)=(0,(¬0∧0)∨(0∧1),(¬0∧1)∨(0∧0))=(0,0∨0,1∨0)=(0,0,1)=(0,(¬0∧1)∨(0∧0),(¬0∧0)∨(0∧1))=(0,1∨0,0∨0)=(0,1,0)=(0,(¬0∧1)∨(0∧1),(¬0∧1)∨(0∧1))=(0,1∨0,1∨0)=(0,1,1)=(1,(¬1∧0)∨(1∧0),(¬1∧0)∨(1∧0))=(1,0∨0,0∨0)=(1,0,0)=(1,(¬1∧0)∨(1∧1),(¬1∧1)∨(1∧0))=(1,0∨1,0∨0)=(1,1,0)=(1,(¬1∧1)∨(1∧0),(¬1∧0)∨(1∧1))=(1,0∨0,0∨1)=(1,0,1)=(1,(¬1∧1)∨(1∧1),(¬1∧1)∨(1∧1))=(1,0∨1,0∨1)=(1,1,1)
위 표를 보면 F가 가역 함수라는 사실과 F를 두 번 합성하면 항등함수가 됨을 쉽게 알 수 있다.
Id=F∘F
또한 {F}가 함수적으로 완전하므로, F는 범용 게이트이다.
부울 함수 | 기호 |
F |  |
진리표 |
입력 | 출력 | a | b | c | a | (¬a∧b)∨(a∧c) | (¬a∧c)∨(a∧b) | 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 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
|
정리
(사영과 주입을 제약없이 쓸 수 있다고 가정하면) 프레드킨 게이트 F는 범용 게이트이다. 다시말해 {F}는 함수적으로 완전하다.
증명
정리
NOT 게이트와 AND 게이트의 집합 {¬,∧}은 함수적으로 완전하다.
위의 정리에 따라 사영, 주입, F를 적절히 사용하여 NOT, AND를 표현할 수 있음을 보이면 증명이 끝난다.
NOT 게이트
¬=p0∘p1∘F∘2∘1
가 성립한다. 우선 2∘1(a)=(a,0,1)이므로 다음을 얻는다.
F∘2∘1(a)=F(a,0,1)=(a,a,¬a)
여기서 앞의 두 값을 지우기 위해 p0∘p1를 취하면,
p0∘p1∘F∘2∘1(a)=p0∘p1(a,a,¬a)=¬a
※ 추가적으로 (1)에 p2을 적용하면 복제 함수를 얻는다.
AND 게이트
∧=p0∘p1∘F∘2
가 성립한다. 우선 F∘2(a,b)는 다음과 같다.
F∘2(a,b)=F(a,b,0)=(a,(¬a∧b)∨(a∧0),(¬a∧0)∨(a∧b))=(a,(¬a∧b)∨0,0∨(a∧b))=(a,¬a∧b,a∧b)
따라서 p0∘p1를 취하면,
p0∘p1∘F∘2(a,b)=p0∘p1(a,¬a∧b,a∧b)=a∧b
■
같이보기