logo

프레드킨/CSWAP 게이트 📂양자정보이론

프레드킨/CSWAP 게이트

양자정보이론
[ 펼치기 · 접기 ]

정의1

다음과 같은 벡터값 부울함수프레드킨 게이트Fredkin gate라고 한다.

F:{0,1}3{0,1}3 F : \left\{ 0, 1 \right\}^{3} \to \left\{ 0, 1 \right\}^{3}

F(a,b,c)=(a,(¬ab)(ac),(¬ac)(ab)) F (a, b, c) = \Big(a, (\lnot a \land b) \lor (a \land c), (\lnot a \land c) \lor (a \land b) \Big)

  • CSWAP\text{CSWAP} 게이트Controlled SWAP(CSWAP) gate라고도 한다.

설명

에드워드 프레드킨Edward Fredkin에 의해 소개되었다. 프레드킨 게이트는 첫번째 입력은 바꾸지않고, 첫번째 입력이 11인 경우에는 나머지 두 값을 교환swap하여 출력한다. 그 구체적인 계산은 다음과 같다.

F(0,0,0)=(0,(¬00)(00),(¬00)(00))=(0,00,00)=(0,0,0)F(0,0,1)=(0,(¬00)(01),(¬01)(00))=(0,00,10)=(0,0,1)F(0,1,0)=(0,(¬01)(00),(¬00)(01))=(0,10,00)=(0,1,0)F(0,1,1)=(0,(¬01)(01),(¬01)(01))=(0,10,10)=(0,1,1)F(1,0,0)=(1,(¬10)(10),(¬10)(10))=(1,00,00)=(1,0,0)F(1,0,1)=(1,(¬10)(11),(¬11)(10))=(1,01,00)=(1,1,0)F(1,1,0)=(1,(¬11)(10),(¬10)(11))=(1,00,01)=(1,0,1)F(1,1,1)=(1,(¬11)(11),(¬11)(11))=(1,01,01)=(1,1,1) \begin{align*} F (0,0,0) &= (0, (\lnot 0 \land 0) \lor (0 \land 0), (\lnot 0 \land 0) \lor (0 \land 0)) = (0, 0 \lor 0, 0 \lor 0) = (0, 0, 0) \\ F (0,0,1) &= (0, (\lnot 0 \land 0) \lor (0 \land 1), (\lnot 0 \land 1) \lor (0 \land 0)) = (0, 0 \lor 0, 1 \lor 0) = (0, 0, 1) \\ F (0,1,0) &= (0, (\lnot 0 \land 1) \lor (0 \land 0), (\lnot 0 \land 0) \lor (0 \land 1)) = (0, 1 \lor 0, 0 \lor 0) = (0, 1, 0) \\ F (0,1,1) &= (0, (\lnot 0 \land 1) \lor (0 \land 1), (\lnot 0 \land 1) \lor (0 \land 1)) = (0, 1 \lor 0, 1 \lor 0) = (0, 1, 1) \\ F (1,0,0) &= (1, (\lnot 1 \land 0) \lor (1 \land 0), (\lnot 1 \land 0) \lor (1 \land 0)) = (1, 0 \lor 0, 0 \lor 0) = (1, 0, 0) \\ F (1,0,1) &= (1, (\lnot 1 \land 0) \lor (1 \land 1), (\lnot 1 \land 1) \lor (1 \land 0)) = (1, 0 \lor 1, 0 \lor 0) = (1, 1, 0) \\ F (1,1,0) &= (1, (\lnot 1 \land 1) \lor (1 \land 0), (\lnot 1 \land 0) \lor (1 \land 1)) = (1, 0 \lor 0, 0 \lor 1) = (1, 0, 1) \\ F (1,1,1) &= (1, (\lnot 1 \land 1) \lor (1 \land 1), (\lnot 1 \land 1) \lor (1 \land 1)) = (1, 0 \lor 1, 0 \lor 1) = (1, 1, 1) \\ \end{align*}

위 표를 보면 FF가역 함수라는 사실과 FF를 두 번 합성하면 항등함수가 됨을 쉽게 알 수 있다.

Id=FF \operatorname{Id} = F \circ F

또한 {F}\left\{ F \right\}함수적으로 완전하므로, FF범용 게이트이다.

부울 함수기호
FF
진리표
입력출력
aabbccaa(¬ab)(ac) (\lnot a \land b) \lor (a \land c)(¬ac)(ab) (\lnot a \land c) \lor (a \land b)
000000000000
000011000011
001100001100
001111001111
110000110000
110011111100
111100110011
111111111111

정리

(사영과 주입을 제약없이 쓸 수 있다고 가정하면) 프레드킨 게이트 FF범용 게이트이다. 다시말해 {F}\left\{ F \right\}함수적으로 완전하다.

증명

정리

NOT\text{NOT} 게이트와 AND\text{AND} 게이트의 집합 {¬,}\left\{ \lnot, \land \right\}은 함수적으로 완전하다.

위의 정리에 따라 사영, 주입, FF를 적절히 사용하여 NOT\text{NOT}, AND\text{AND}를 표현할 수 있음을 보이면 증명이 끝난다.

  • NOT\text{NOT} 게이트

    ¬=p0p1Fȷ2ı1 \lnot = p_{0} \circ p_{1} \circ F \circ \jmath_{2} \circ \imath_{1}

    가 성립한다. 우선 ȷ2ı1(a)=(a,0,1)\jmath_{2} \circ \imath_{1} (a) = (a, 0, 1)이므로 다음을 얻는다.

    Fȷ2ı1(a)=F(a,0,1)=(a,a,¬a) \begin{equation} F \circ \jmath_{2} \circ \imath_{1}(a) = F(a, 0, 1) = (a, a, \lnot a) \end{equation}

    여기서 앞의 두 값을 지우기 위해 p0p1p_{0} \circ p_{1}를 취하면,

    p0p1Fȷ2ı1(a)=p0p1(a,a,¬a)=¬a p_{0} \circ p_{1} \circ F \circ \jmath_{2} \circ \imath_{1} (a) = p_{0} \circ p_{1} (a, a, \lnot a) = \lnot a

    ※ 추가적으로 (1)(1)p2p_{2}을 적용하면 복제 함수를 얻는다.

  • AND\text{AND} 게이트

    =p0p1Fı2 \land = p_{0} \circ p_{1} \circ F \circ \imath_{2}

    가 성립한다. 우선 Fȷ2(a,b)F \circ \jmath_{2} (a, b)는 다음과 같다.

    Fȷ2(a,b)=F(a,b,0)=(a,(¬ab)(a0),(¬a0)(ab))=(a,(¬ab)0,0(ab))=(a,¬ab,ab) \begin{align*} F \circ \jmath_{2} (a, b) = F(a, b, 0) &= (a, (\lnot a \land b) \lor (a \land 0), (\lnot a \land 0) \lor (a \land b)) \\ &= (a, (\lnot a \land b) \lor 0, 0 \lor (a \land b)) \\ &= (a, \lnot a \land b, a \land b) \end{align*}

    따라서 p0p1p_{0} \circ p_{1}를 취하면,

    p0p1Fı2(a,b)=p0p1(a,¬ab,ab)=ab p_{0} \circ p_{1} \circ F \circ \imath_{2} (a, b) = p_{0} \circ p_{1} (a, \lnot a \land b, a \land b) = a \land b

같이보기


  1. 김영훈·허재성, 양자 정보 이론 (2020), p90-93 ↩︎