Quantum Algorithm (1) - Quantum Circuit Evaluation

·임성혁

양자 컴퓨팅에서 양자 회로의 동작을 이해하고 계산하는 것은 핵심적인 작업입니다. 이번 글에서는 같은 양자 회로를 두 가지 다른 방법으로 평가하는 과정을 살펴보겠습니다.

우리가 분석할 회로는 다음과 같습니다:

  • 입력: 2개의 큐비트가 얽힌 상태 1200+1211\frac{1}{\sqrt{2}}|00\rangle + \frac{1}{\sqrt{2}}|11\rangle
  • 게이트: 첫 번째 큐비트에 H(Hadamard) 게이트, 두 번째 큐비트에 NOT\sqrt{NOT} 게이트 적용

이는 벨 상태(Bell state)의 한 형태로, 양자 얽힘을 보여주는 대표적인 예입니다.

첫 번째 접근법은 각 기저 상태에 대해 개별적으로 게이트 연산을 수행하는 것입니다. (compute Au \otimes Bv)

먼저 사용할 게이트들의 정의를 확인하고 각 basis를 input으로 제공했을 때 어떤 결과를 제공하는지 확인해봅시다.

Hadamard 게이트 (H): H=12(1111)H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}

  • H0=12(0+1)H|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) (균등 중첩상태 생성)
  • H1=12(01)H|1\rangle = \frac{1}{\sqrt{2}}(|0\rangle - |1\rangle) (위상이 반전된 중첩상태)

NOT\sqrt{NOT} 게이트: NOT=12(1111)\sqrt{NOT} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & -1 \\ 1 & 1 \end{pmatrix}

  • NOT0=12(0+1)\sqrt{NOT}|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)
  • NOT1=12(10)=12(0+1)\sqrt{NOT}|1\rangle = \frac{1}{\sqrt{2}}(|1\rangle - |0\rangle) = \frac{1}{\sqrt{2}}(-|0\rangle + |1\rangle)

|00⟩ 상태에 대해:

  1. 초기 상태: 1200=12(00)\frac{1}{\sqrt{2}}|00\rangle = \frac{1}{\sqrt{2}}(|0\rangle \otimes |0\rangle)

    • |00>은 줄여쓴 것이므로 원래 형태로 풀어쓰면 우변에 해당하는 식이 나옵니다.
  2. 첫 번째 큐비트에 H 게이트 적용:

    • H0=12(0+1)H|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)
    • 따라서: 1212(0+1)0=12(0+1)0\frac{1}{\sqrt{2}} \cdot \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) \otimes |0\rangle = \frac{1}{2}(|0\rangle + |1\rangle) \otimes |0\rangle
  3. 두 번째 큐비트에 √NOT 게이트 적용:

    • NOT0=12(0+1)\sqrt{NOT}|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)
    • 따라서: 12(0+1)12(0+1)=122(0+1)(0+1)\frac{1}{2}(|0\rangle + |1\rangle) \otimes \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) = \frac{1}{2\sqrt{2}}(|0\rangle + |1\rangle) \otimes (|0\rangle + |1\rangle)
  4. 텐서곱 전개:

    • 122[(00)+(01)+(10)+(11)]\frac{1}{2\sqrt{2}}[(|0\rangle \otimes |0\rangle) + (|0\rangle \otimes |1\rangle) + (|1\rangle \otimes |0\rangle) + (|1\rangle \otimes |1\rangle)]
    • =122(00+01+10+11)= \frac{1}{2\sqrt{2}}(|00\rangle + |01\rangle + |10\rangle + |11\rangle)

|11⟩ 상태에 대해:

  • 1211=12(11)\frac{1}{\sqrt{2}}|11\rangle = \frac{1}{\sqrt{2}}(|1\rangle \otimes |1\rangle)
  • H와 √NOT 적용 후: 122(01)(10)\frac{1}{2\sqrt{2}}(|0\rangle - |1\rangle) \otimes (|1\rangle - |0\rangle)
  • 결과: 122(010011+10)\frac{1}{2\sqrt{2}}(|01\rangle - |00\rangle - |11\rangle + |10\rangle)

두 결과를 합산하면 => 12(01+10)\frac{1}{\sqrt{2}}(|01\rangle + |10\rangle)

두 번째 접근법은 전체 시스템을 하나의 행렬로 표현하여 계산하는 것입니다. (compute A \otimes B then compute A \otimes B(u \otimes v))

HNOTH \otimes \sqrt{NOT}의 텐서곱을 계산하면:

HNOT=12(NOTNOTNOTNOT)=12(1111111111111111)H \otimes \sqrt{NOT} = \frac{1}{2} \begin{pmatrix} \sqrt{NOT} & \sqrt{NOT} \\ \sqrt{NOT} & -\sqrt{NOT} \end{pmatrix} = \frac{1}{2} \begin{pmatrix} 1 & -1 & 1 & -1 \\ 1 & 1 & 1 & 1 \\ 1 & -1 & -1 & 1 \\ 1 & 1 & -1 & -1 \end{pmatrix}

초기 상태를 벡터로 표현하면: ψ=1200+1211=(120012)|\psi\rangle = \frac{1}{\sqrt{2}}|00\rangle + \frac{1}{\sqrt{2}}|11\rangle = \begin{pmatrix} \frac{1}{\sqrt{2}} \\ 0 \\ 0 \\ \frac{1}{\sqrt{2}} \end{pmatrix}

(HNOT)×ψ=12(1111111111111111)(120012)=(012120)(H \otimes \sqrt{NOT}) \times |\psi\rangle = \frac{1}{2} \begin{pmatrix} 1 & -1 & 1 & -1 \\ 1 & 1 & 1 & 1 \\ 1 & -1 & -1 & 1 \\ 1 & 1 & -1 & -1 \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}} \\ 0 \\ 0 \\ \frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} 0 \\ \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \\ 0 \end{pmatrix}

결과적으로 동일한 최종 상태 12(01+10)\frac{1}{\sqrt{2}}(|01\rangle + |10\rangle)를 얻습니다.

특징방법 1 (개별 계산)방법 2 (행렬 연산)
직관성높음 - 각 상태의 변화를 추적 가능낮음 - 전체적인 변환만 확인
계산 복잡도상태 수에 비례행렬 크기에 비례
확장성큐비트 수가 많을 때 비효율적대규모 시스템에 적합
구현손계산에 적합컴퓨터 시뮬레이션에 적합

이 두 접근법은 양자 컴퓨팅에서 서로 다른 상황에 유용합니다:

방법 1은 양자 알고리즘의 동작 원리를 이해하거나 작은 규모의 회로를 분석할 때 유용합니다. 각 상태가 어떻게 변화하는지 직접 볼 수 있어 교육적 가치가 높습니다.

방법 2는 양자 시뮬레이터나 실제 양자 컴퓨터에서 회로를 실행할 때 사용되는 방식입니다. 효율적이고 체계적이며, 복잡한 회로도 일관된 방식으로 처리할 수 있습니다.

양자 회로 평가는 양자 컴퓨팅의 핵심 개념 중 하나입니다. 같은 결과를 얻는 두 가지 방법을 이해함으로써, 양자 상태의 진화와 양자 게이트의 동작을 더 깊이 이해할 수 있습니다. 실제 양자 프로그래밍에서는 두 접근법을 상황에 맞게 활용하는 것이 중요합니다.