ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 양자 게이트 기초 (2) - 벨 회로와 양자통신
    Category Q/Quantum Computing 2023. 7. 29. 17:30

    아다마르(Hadamard), 파울리(Pauli) 게이트

     

    지난 포스팅에서  CNOT 게이트를 통해 큐비트가 얽히게 되는 원리를 알아보았다.

    (https://old-lie.tistory.com/8)

     

    왜 CNOT 게이트를 먼저 공부했을까? 

    각각의 양자 게이트들이 큐비트를 어떻게 제어하는가?

    그리고 그러한 연산들이 과연 무슨 의미를 가지는걸까?

    이제부터 차근차근 풀어나가보자.

     

    [아다마르 게이트 : Hadamard Gate]
    $|0\rangle$ 인 큐비트의 상태를 $|0\rangle$과 $|1\rangle$의 중첩 상태로 변경해준다
    아다마르 게이트를 통과한 큐비트를 관측하면 $|0\rangle$과 $|1\rangle$의 관측확률이 50%로 세팅된다.
    CNOT 게이트의 역으로, 벨 회로 및 벨 상태를 구성하는 필수 요소이다.

    [Pauli - X, Y 게이트]
    X 게이트는 $|0\rangle$과 $|1\rangle$을 서로 맞바꾸는 NOT 게이트의 역할을 한다.
    블로흐구의 X축을 중심으로 큐비트의 상태를 180도 회전시키는 개념이다.

    Y 게이트는 $|0\rangle$과 $|1\rangle$을 맞바꿈과 동시에 상대위상도 변경시킨다.
    블로흐구의 Y축을 중심으로 큐비트의 상태를 180도 회전시킨다.

     

    위의 게이트들은 양자암호 관련 포스팅에서도 간단하게 등장했던 개념이다

    (https://old-lie.tistory.com/7)

     

     

    아다마르 게이트는 다음과 같이 선형대수로 표현할 수 있다.

     

    $$H = \begin{bmatrix}\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\\frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{bmatrix} = \frac{1}{\sqrt{2}}\begin{bmatrix}1 & 1 \\1 & -1 \end{bmatrix}$$

     

    이를 통해 표준 기저 벡터들을 다음과 같이 중첩 상태로 변경한다.

     

    $H(|0\rangle)=\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)$,    $H(|1\rangle)=\frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)$

     

     

    이 때 회로 상태와 블로흐구의 모습은 다음과 같다.

    01
    Hadamard 게이트를 통과한 큐비트의 중첩 상태

     

     

    Pauli X, Y 게이트의 상태는 각각 다음과 같이 선형대수로 표현 가능하다.

     

    $$X = \begin{bmatrix}0 & 1 \\1 & 0 \end{bmatrix},  Y=\begin{bmatrix}0 & 1 \\-1 & 0 \end{bmatrix}$$

     

    이를 통해 초기값이 $|0\rangle$이었던 큐비트는 각각 아래와 같이 변경된다.

     

    0123
    Pauli X, Y 게이트를 통과한 후 큐비트의 모습

     

    초기상태 $|0\rangle$ 에서 X, Y 게이트의 결과값은 서로 같아보이나,

    Hadamard 게이트를 통과시킨 중첩상태의 큐비트를 X, Y 게이트에 적용시키면

    다음과 같이 상대 위상에서 차이가 발생하는 것을 알 수 있다.

     

    01
    중첩상태의 큐비트를 X - Y 게이트에 통과시켰을 때 위상 변화

     

    $$H*X = \frac{1}{\sqrt{2}}\begin{bmatrix}1 & 1 \\1 & -1 \end{bmatrix}\begin{bmatrix}0 & 1 \\1 & 0 \end{bmatrix}=\frac{1}{\sqrt{2}}\begin{bmatrix}1 & 1 \\-1 & 1 \end{bmatrix}$$

     

    $$H*Y = \frac{1}{\sqrt{2}}\begin{bmatrix}1 & 1 \\1 & -1 \end{bmatrix}\begin{bmatrix}0 & 1 \\-1 & 0 \end{bmatrix}=\frac{1}{\sqrt{2}}\begin{bmatrix}-1 & 1 \\1 & 1 \end{bmatrix}$$

     

     

    X, Y 게이트를 통과시키는 것은 큐비트를 측정하는 것과 같은 개념으로 

    향후 Pauli-Z, 스퀘어루트-X 게이트 등 측정방향을 달리하는 다양한 연산 회로들과 연결된다.

     

    이에 대한 개념은 슈테른-게를라흐 실험의 것과 일맥상통하므로 다시 한 번 정리하고 넘어가면 좋을 것 같다.

    (https://old-lie.tistory.com/2)

     


     

    벨 상태와  초고밀도 통신

     

    초 고밀도 혹은 초 압축 코딩은 Alice가 Bob에게 고전 컴퓨팅적인 신호를 전달하는 상황을 가정한다.

    양자채널을 통해 큐비트를 전송하여 상태값을 주고받으려면 벨 상태 (Bell State)에서 서로 직교하는 4쌍의 표준기저를 이용해야 한다.

    그 이유에 대해서는 아래와 같이 설명할 수 있다.

     

    벨 회로 (Bell Circuit)

     

    위 회로에 표준 기저를 이루는 큐비트들을 입력해보자.

    $|00\rangle$ = $|0\rangle|0\rangle$ 인 큐비트쌍은 먼저 아다마르 게이트를 통과하게 된다.

     

    위에서 아다마르 게이트를 통과해 중첩상태인 큐비트의 표준기저는

    $H(|0\rangle)=\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)$,   $H(|1\rangle)=\frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)$

     

    라고 하였으므로, H를 통과한 물리계의 상태는 아래와 같이 표현 가능하다.

     

    $$(\frac{1}{\sqrt{2}}|0\rangle+\frac{1}{\sqrt{2}}|1\rangle)*|0\rangle = \frac{1}{\sqrt{2}}|00\rangle+\frac{1}{\sqrt{2}}|10\rangle$$

     

    이후 CNOT 게이트 (위 사진에서 q1 +) 를 통과하게 되면 $|10\rangle$이 $|11\rangle$로 반전되므로,

    최종 상태값은 $\frac{1}{\sqrt{2}}|00\rangle+\frac{1}{\sqrt{2}}|11\rangle$이 된다.

     

    즉, 다음과 같이 표준화 가능하다.

    $$ \psi(00) = \frac{1}{\sqrt{2}}|00\rangle+\frac{1}{\sqrt{2}}|11\rangle $$

     

    이제 나머지 $|01\rangle$, $|10\rangle$, $|11\rangle$ 큐비트쌍에 대한  경우도 동일하게 연산하면

    최종적으로는 아래와 같이 유도된다.

    $$ \psi(00) = \frac{1}{\sqrt{2}}|00\rangle+\frac{1}{\sqrt{2}}|11\rangle $$
    $$ \psi(01) = \frac{1}{\sqrt{2}}|01\rangle+\frac{1}{\sqrt{2}}|10\rangle $$
    $$ \psi(10) = \frac{1}{\sqrt{2}}|00\rangle-\frac{1}{\sqrt{2}}|11\rangle $$
    $$ \psi(11) = \frac{1}{\sqrt{2}}|01\rangle-\frac{1}{\sqrt{2}}|10\rangle $$

     


     

    위의 내용은 Alice가 송신하는 데이터에 대한 양자구간에서의 동작이며,

    Bob이 실제 데이터를 수신하는 구간에서는 아래와 같이 Reverse 벨 회로가 사용된다.

     

    Bob이 큐비트 데이터를 수신하기 위해 사용하는 리버스 회로

     

     

    아다마르 게이트와 CNOT 게이트는 서로 역 관계이기 때문에

    벨 회로와 리버스 벨 회로를 연결하면 결국 입력값과 출력값이 같게 된다.

     

    다시말해, Alice가 벨 회로를 통해 전송한 표준 기저를,  Bob이 리버스 벨 회로를 통해 받는 경우

    $$ \frac{1}{\sqrt{2}}|00\rangle+\frac{1}{\sqrt{2}}|11\rangle = |00\rangle$$
    $$ \frac{1}{\sqrt{2}}|01\rangle+\frac{1}{\sqrt{2}}|10\rangle = |01\rangle $$
    $$ \frac{1}{\sqrt{2}}|00\rangle-\frac{1}{\sqrt{2}}|11\rangle = |10\rangle $$
    $$ \frac{1}{\sqrt{2}}|01\rangle-\frac{1}{\sqrt{2}}|10\rangle = |11\rangle $$

     

    위와 같이 각각의 큐비트쌍이 표현하고자 했던 상태값을 수신할 수 있게 된다.

     

    이것이 바로 우리가 관측, 큐비트, CNOT, 아다마르 게이트를 순차적으로 학습해야 했던 이유이다.

    이를 응용하면 아래와 같이 양자 도약을 활용한 통신을 구현할 수 있다.

     


    양자 도약을 통한 큐비트 전송

    양자 순간이동이라고도 부르는 이 연산은, 초고밀도 코딩과는 역산 관계이다.

    양자 순간이동에서 Alice는 리버스 벨 회로를 통해 인코딩하고, 이 정보를 수신하는 Bob은 Pauli 변환을 통해 관측/디코딩 한다.

     

    초기 단계에서 Alice와 Bob은 양자 통신을 위해 서로 얽혀있는 표준기저

    $\frac{1}{\sqrt{2}}|00\rangle+\frac{1}{\sqrt{2}}|11\rangle$ 를 공유한다.

     

    그리고 앨리스는 $a|0\rangle$ + $b|1\rangle$의 상태값을 갖는 전자를 Bob에게 전송하려고 한다 가정하자.

    이 때 Bob이 전자를 측정하는 순간 $a|0\rangle$ + $b|1\rangle$이 아닌 $|0\rangle$ 또는 $|1\rangle$ 상태를 얻기 때문에 Alice는 자신의 표준기저와 전송하고자 하는 전자의 상태를 얽어서 Bob에게 전송해야 한다.

     

    $$ (a|0\rangle+b|1\rangle)\otimes(\frac{1}{\sqrt{2}}|00\rangle+\frac{1}{\sqrt{2}}|11\rangle) $$

     

    위의 전자를 리버스 벨 회로를 통해 인코딩하려면, 표준기저와 전송 큐비트에 CNOT 게이트를 적용한 후

    상단 비트에 Hadamard 게이트를 추가로 적용한다.

     

    Alice의 리버스 벨 회로를 이용한 인코딩

     

    CNOT 게이트를 통과시키면 아래와 같은 상태가 된다.

     

    $$ \frac{a}{\sqrt{2}}|00\rangle\otimes|0\rangle+\frac{a}{\sqrt{2}}|01\rangle\otimes|1\rangle+\frac{b}{\sqrt{2}}|11\rangle\otimes|0\rangle+\frac{b}{\sqrt{2}}|10\rangle\otimes|1\rangle $$

     

     

    여기서 Hadamard 게이트를 통과시키면,

     

    $$ \frac{1}{\sqrt{2}}|00\rangle\otimes(a|0\rangle+b|1\rangle)+\frac{1}{\sqrt{2}}|01\rangle\otimes(a|1\rangle+b|0\rangle)+\frac{1}{\sqrt{2}}|10\rangle\otimes(a|0\rangle-b|1\rangle)+\frac{1}{\sqrt{2}}|11\rangle\otimes(a|1\rangle-b|0\rangle) $$

     

    위와 같은 상태가 된다. 

    이제 Alice가 자신의 표준기저로 전자를 측정하는 순간 밥의 큐비트 역시 아래 4가지중 하나로 도약하게 된다.

     

    Alice Bob
    $|00\rangle$ $a|0\rangle+b|1\rangle$
    $|01\rangle$ $a|1\rangle+b|0\rangle$
    $|10\rangle$ $a|0\rangle-b|1\rangle$
    $|11\rangle$ $a|1\rangle-b|0\rangle$

     

    처음에 Alice는 $a|0\rangle$ + $b|1\rangle$ 상태를 전달하고 싶었으므로, 

    Bob이 어떤 상태의 큐비트를 전달받던 $a|0\rangle$ + $b|1\rangle$로 측정되어야 한다.

     

    따라서 Alice는 자신의 측정결과를 Bob에게 전달하고

    Bob은 전달받은 측정값에 따라 큐비트를 파울리 변환을 통해 디코딩하여 데이터를 저장하면 양자 통신이 마무리된다.

     

    예를들어 Alice가 자신의 측정값이 11이라고 Bob에게 알려줄 경우

    Bob은 자신의 큐비트가 $a|1\rangle-b|0\rangle$ 상태임을 인지하고 Pauli-Y 게이트를 적용한다.

     

    Pauli-Y 게이트는 $|0\rangle$과 $|1\rangle$을 반전시키고 위상 상태값의 부호도 변경하므로

    $a|1\rangle-b|0\rangle$ 는 $a|0\rangle+b|1\rangle$ 로 변환된다.

    이는 최초에 Alice가 보내려고 했던 전자의 값과 같다.

     


    얽힘과 관측을 통해 Alice의 큐비트를 전송할 때 Bob의 큐비트가 4개의 대응되는 상태값으로 도약하는 것이 중요 개념이며,

    수식과 이론적으로는 이해할 수 있으나, 실제 통신을 구현하는 것은 매우 어려워 보인다.

     

    순간이동이라는 단어 자체가 기존에 가지고 있던 개념과, 

    양자 도약 - 양자 순간이동의 개념이 조금 다른것 같아 이를 정정하여 이해할 학습이 더 필요한 것 같다.

    'Category Q > Quantum Computing' 카테고리의 다른 글

    큐비트 기반 양자암호 구현 기초 (1)  (0) 2023.07.02
Designed by Tistory.