-
6. CNOT 게이트Quantum Computing 2021. 1. 15. 23:54
다입자 양자 상태 (Multiparticle quantum state)
이때까지 배운 양자 상태를 표현하는 방법을 돌아봅시다.
첫번째로 디랙 표기법을 통해 브라 또는 켓으로 양자 상태를 수식으로 표현할 수 있었습니다.
다음으로, 블로흐 구를 통해 양자 상태를 시각적으로 표현할 수 있었습니다.
지금까지는 하나의 큐비트의 상태를 표현하는 방법을 다루었다면,
이제 여러 큐비트의 상태, 즉 다입자 양자 상태를 표현하는 방법을 소개하고자 합니다.
텐서 곱 (tensor product)
다입자 양자 상태를 기술하기 위해서, 텐서 곱을 사용합니다.
$ \quad |a\rangle \otimes |b\rangle = \begin{pmatrix} a_1 \\ a_2 \end{pmatrix} \otimes \begin{pmatrix} b_1 \\ b_2 \end{pmatrix} = \begin{pmatrix} a_1 b_1 \\ a_1 b_2 \\ a_2 b_1 \\ a_2 b_2 \end{pmatrix} $
ex) 시스템 A가 $ \left|1\right>_A $ 상태에 있고, 시스템 B가 $ \left|0\right>_B $ 상태에 있다면
전체 상태가 이분가능(bipartible)할 때에 한해서 전체 상태는 다음과 같이 표현됩니다.
$ \quad \left|10\right>_{AB} := \left|1\right>_A \otimes \left|0\right>_B = \begin{pmatrix} 0 \\ 0 \\ 1 \\ 0 \end{pmatrix}$
이러한 형태의 상태를 비-상관(uncorrealated)되어있다고 합니다.
하지만 $\left|\psi\right>_A\otimes\left|\phi\right>_B $의 형태로 나타낼 수 없는 이분가능한 상태도 존재합니다.
이러한 상태들을 상관(correalated)되어있다고 하며,
더욱 강한 상관관계를 가지면 얽혀(entangled)있다고 합니다.
ex) $ \left|\psi^{(00)}\right>_{AB} = \dfrac{1}{\sqrt2}\big( \left|00\right>_{AB} + \left|11\right>_{AB} \big) = \dfrac{1}{\sqrt2} \begin{pmatrix} 1 \\ 0 \\ 0 \\ 1 \end{pmatrix}$
이 상태는 벨 상태 (Bell sate) 중 하나이며,
양자 전송, 양자 암호, 벨 부등식 실험 등에 사용됩니다.
CNOT 게이트
$ \quad \text{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix} = |00\rangle\langle00| + |01\rangle\langle01| + |10\rangle\langle11| + |11\rangle\langle10| $CNOT 게이트는 두 개의 큐비트에 대한 연산을 수행하는 양자 논리 게이트입니다.
CNOT 게이트에 대해 알아보기 전에, 전통적인 논리 게이트 중 하나인 XOR 게이트를 봅시다.
XOR 게이트는 위와 같이 두 비트의 입력을 받아 한 비트의 결과를 반환합니다.
여기서 주목해야할 이 게이트의 특징은 비가역적이라는 것입니다.
예를 들어, 두 입력 비트 $x$, $y$의 값을 모르는 상황에서 결과가 0이 나왔을 때,
우리는 이 결과가 $x=0, y=0$에서 나왔는지, $x=1, y=1$에서 나왔는지 알 수 없습니다.
즉, XOR 게이트는 출력값으로부터 입력값을 알 수 없습니다.
하지만, 이전 글에서 말씀드렸듯이 양자 역학의 유니터리성에 의해
모든 양자 게이트는 유니터리, 즉 가역적이어야합니다.
XOR 게이트를 가역적으로 만드는 것은 생각보다 단순합니다.
기존의 XOR 게이트가 비가역적이었던 원인은 근본적으로 입력과 출력의 갯수 차이입니다.
입력은 두 비트로 4가지의 경우의 수가 있지만, 출력은 한 비트로 2가지의 경우만을 나타낼 수 있기 때문입니다.
즉, 입력의 두 비트를 모두 특정하려면 출력이 한 비트 더 필요하다는 것입니다.
실제로, XOR 게이트의 결과가 0이 나왔을 때 $x$나 $y$ 중 하나만 알면 나머지 하나도 알 수 있습니다.
따라서 출력으로 $x$의 값을 전달해 주면 가역적인 성질을 가질 수 있게 됩니다.
CNOT 게이트는 이러한 가역적 XOR 게이트의 양자 논리 게이트 버전입니다.
이름에서 CNOT은 Controlled NOT을 줄인 것인데, 이유는 다음과 같습니다.
실제로 논리 회로나 컴퓨터 구조 등의 과목에서 다루는 내용인데,
XOR 게이트는 사용하기에 따라 NOT 게이트로 활용할 수 있습니다.
위의 그림와 같이, XOR 게이트에서 $x$의 값이 0일 때는 출력으로 $y$가 그대로 나오고,
$x$의 값이 1일 때는 출력으로 $y$에 대해 NOT 게이트를 적용한 값이 나옵니다.
CNOT 게이트 또한 가역적 XOR 게이트와 같이 동작하기 때문에
큐비트 $x$의 상태에 따라 $y$의 상태의 비트 반전($\sigma_z$)을 취한 결과가 나옵니다.
즉, CNOT 게이트는 NOT 게이트처럼 동작할지 여부가 $x$의 상태에 의해 제어(Controlled)되는 게이트입니다.
앞에서의 XOR 게이트의 사례와 같이, 모든 함수 $f$는 가역적인 회로로 나타내어질 수 있습니다.
따라서 양자 회로는 기존의 컴퓨터가 연산할 수 있는 모든 함수를 실행할 수 있음을 알 수 있습니다.
다음 글에서는 양자 얽힘과 관련된 벨 상태에 대해서 알아봅니다.
'Quantum Computing' 카테고리의 다른 글
7. 벨 상태 (1) 2021.01.23 5. 단일 큐비트 양자 게이트 (0) 2021.01.13 4. 블로흐 구 (0) 2021.01.13 3. 직교 기저와 측정 (2) 2021.01.11 2. 디랙 표기법 (브라-켓 표기법) (0) 2021.01.11