양자 컴퓨터 (Quantum Computer)

[2부] 양자게이트와 양자회로 설계

springfallinlove 2025. 6. 4. 13:52
[2부] 양자게이트와 양자회로 설계

[2부] 양자게이트와 양자회로 설계

2부에서는 양자컴퓨터의 연산 단위인 양자게이트와 이를 연결하여 실제로 계산을 수행하는 양자회로 설계 방법을 다룹니다. 단일 큐빗 게이트부터 다중 큐빗 게이트까지, 각 게이트의 수학적 정의와 회로 다이어그램을 통해 양자 알고리즘의 핵심 연산이 이루어지는 방식을 살펴봅니다.

1. 양자게이트의 개념

고전 컴퓨터에서는 논리 게이트(예: AND, OR, NOT)가 비트열을 변환하지만, 양자컴퓨터에서는 큐빗 상태 벡터유니터리 연산을 적용하여 상태를 변화시킵니다. 이 유니터리 연산이 바로 양자게이트(Quantum Gate)입니다.

유니터리 연산 \(U\)의 성질: \[ U^\dagger U \;=\; U U^\dagger \;=\; I, \] 여기서 \(U^\dagger\)는 \(U\)의 에르미트 수반(Hermitian conjugate), \(I\)는 단위 행렬입니다. 유니터리 게이트는 큐빗의 정규화(norm)를 항상 보존합니다.

2. 단일 큐빗 게이트

단일 큐빗 게이트는 2×2 유니터리 행렬로 표현됩니다. 대표적인 단일 큐빗 게이트를 정리합니다.

2.1 Pauli 게이트 (X, Y, Z)

Pauli 게이트는 가장 기본적인 단일 큐빗 게이트로, 다음과 같은 행렬을 가집니다:

\[ X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \quad Y = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}, \quad Z = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}. \]
  • X 게이트: 고전적 NOT과 유사하여 상태 \(|0\rangle \leftrightarrow |1\rangle\)를 바꿉니다. \[ X|0\rangle = |1\rangle,\quad X|1\rangle = |0\rangle. \]
  • Y 게이트: 위상 인자를 포함한 상태 전환. \[ Y|0\rangle = i|1\rangle,\quad Y|1\rangle = -i|0\rangle. \]
  • Z 게이트: \(|0\rangle\)는 그대로 두고 \(|1\rangle\)에 위상 \(\pi\) 부여. \[ Z|0\rangle = |0\rangle,\quad Z|1\rangle = -|1\rangle. \]

2.2 Hadamard (H) 게이트

Hadamard 게이트는 중첩 생성에 자주 사용됩니다. 정의는 다음과 같습니다:

\[ H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}. \]

Hadamard를 기저 상태에 적용하면: \[ H|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle), \quad H|1\rangle = \frac{1}{\sqrt{2}}(|0\rangle - |1\rangle). \] 이를 통해 큐빗을 \(|0\rangle\)이나 \(|1\rangle\)에서 50:50 확률의 중첩 상태로 변경합니다.

2.3 위상 게이트 (S, T)

위상 게이트는 기저 상태에 위상 인자만 부여합니다. 대표적인 S 게이트와 T(Phase \(\pi/4\)) 게이트:

\[ S = \begin{pmatrix} 1 & 0 \\ 0 & i \end{pmatrix}, \quad T = \begin{pmatrix} 1 & 0 \\ 0 & e^{i \pi/4} \end{pmatrix}. \]
  • S 게이트: \(|1\rangle\)에 위상 \(\frac{\pi}{2}\) 부여. \[ S|0\rangle = |0\rangle,\quad S|1\rangle = i|1\rangle. \]
  • T 게이트: \(|1\rangle\)에 위상 \(\frac{\pi}{4}\) 부여. \[ T|0\rangle = |0\rangle,\quad T|1\rangle = e^{i\pi/4}|1\rangle. \]

2.4 회전 게이트 (Rx, Ry, Rz)

Bloch 구 상에서 큐빗 상태를 특정 축을 기준으로 회전시키는 게이트는 다음과 같이 정의됩니다:

\[ R_x(\theta) = \exp\Bigl(-i\,\frac{\theta}{2}\,X\Bigr) = \cos\Bigl(\frac{\theta}{2}\Bigr)\,I - i\,\sin\Bigl(\frac{\theta}{2}\Bigr)\,X, \] \[ R_y(\theta) = \exp\Bigl(-i\,\frac{\theta}{2}\,Y\Bigr) = \cos\Bigl(\frac{\theta}{2}\Bigr)\,I - i\,\sin\Bigl(\frac{\theta}{2}\Bigr)\,Y, \] \[ R_z(\theta) = \exp\Bigl(-i\,\frac{\theta}{2}\,Z\Bigr) = \cos\Bigl(\frac{\theta}{2}\Bigr)\,I - i\,\sin\Bigl(\frac{\theta}{2}\Bigr)\,Z. \]

예를 들어, \(R_z(\theta)\)를 기저 상태에 적용하면: \[ R_z(\theta)|0\rangle = e^{-i\,\theta/2}\,|0\rangle, \quad R_z(\theta)|1\rangle = e^{i\,\theta/2}\,|1\rangle. \] Bloch 구에서 Z축을 기준으로 각도 \(\theta\)만큼 회전하는 효과를 가집니다.

3. 다중 큐빗 게이트

다중 큐빗 게이트는 여러 큐빗 상태 공간의 텐서곱 위에서 동작하는 유니터리 행렬입니다. 제어(control)와 타겟(target) 큐빗을 구분하여 조건에 따라 타겟 큐빗에 연산을 수행합니다.

3.1 CNOT (Controlled-NOT) 게이트

CNOT 게이트는 두 큐빗 게이트의 대표 주자로, 제어 큐빗이 \(|1\rangle\)일 때 타겟 큐빗에 X 연산을 수행합니다.

\[ \text{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix}. \]

동작: 제어 큐빗(control)이 \(|0\rangle\)일 때는 타겟에 연산 없이, 제어 큐빗이 \(|1\rangle\)일 때 타겟 큐빗을 NOT(플립)합니다. 예: \(|10\rangle\) 입력 → \(\text{CNOT}|10\rangle = |11\rangle\).

3.2 CZ (Controlled-Z) 게이트

CZ 게이트는 제어 큐빗이 \(|1\rangle\)일 때 타겟 큐빗에 Z 연산을 적용합니다.

\[ \text{CZ} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & -1 \end{pmatrix}. \]

예: \(|11\rangle\)에 CZ 적용 → \(-\,|11\rangle\). CZ는 얽힌 상태 생성에도 사용됩니다.

3.3 SWAP 게이트

SWAP 게이트는 두 큐빗을 서로 교환합니다. 행렬 표현(4×4):

\[ \text{SWAP} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}. \]

예: \(|01\rangle\)에 SWAP → \(|10\rangle\). \(|10\rangle\)에 SWAP → \(|01\rangle\).

3.4 Toffoli (CCNOT) 게이트

Toffoli(Controlled-Controlled-NOT) 게이트는 두 개의 제어 큐빗과 한 개의 타겟 큐빗을 가집니다. 두 제어 큐빗이 모두 \(|1\rangle\)일 때만 타겟 큐빗에 X 연산을 수행합니다.

\[ \text{Toffoli} = \begin{pmatrix} I_6 & 0 \\ 0 & X \end{pmatrix}, \] 여기서 \(I_6\)은 \(6\times6\) 단위행렬, \(X\)는 Pauli-X 행렬입니다.

주로 고전 논리 덧셈기(adder) 회로 구현 등에 사용됩니다.

4. 양자회로(Quantum Circuit) 설계

양자회로는 시간 방향(왼쪽에서 오른쪽)으로 흐르는 일련의 양자게이트를 큐빗 라인 위에 배치하여 연산을 수행합니다. 큐빗 각각을 한 줄(wire)으로 표현하며, 각 게이트는 해당 줄 위에 기호로 표시됩니다.

4.1 회로 다이어그램 읽는 법

일반 표기법:

  • 각 라인(—)은 하나의 큐빗을 나타냅니다. 예: \(|0\rangle\) 초기화된 큐빗은 “—|0⟩—”로 시작합니다.
  • 단일 큐빗 게이트는 상자 또는 원으로 표시됩니다. 예: “—[H]—”는 Hadamard 게이트.
  • 제어-타겟 구조(CNOT 등)는 ●(Control)와 ⊕(Target) 기호로 연결된 선으로 표시됩니다.
  • 측정(Measurement)은 측정 기호(‘⊕→ classical bit’)로 표시되어, 큐빗을 고전 비트로 변환함을 나타냅니다.

4.2 간단한 회로 예제: 벨 상태 생성

벨 상태 \(\displaystyle |\Phi^{+}\rangle = \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle)\)를 생성하는 회로:


        ┌───┐         
    |0⟩─┤ H ├─●───   → (1/√2)(|00⟩ + |11⟩)
        └───┘ │       
             │       
    |0⟩──────X─────
    

설명:

  1. 첫 번째 큐빗에 Hadamard 적용: \[ H|0\rangle = \tfrac{1}{\sqrt{2}}(|0\rangle + |1\rangle). \]
  2. 두 번째 큐빗(아래)은 초기 \(|0\rangle\). 첫 번째 큐빗을 제어, 두 번째 큐빗을 타겟으로 CNOT 적용: \[ \text{CNOT}\bigl(\tfrac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes|0\rangle\bigr) = \tfrac{1}{\sqrt{2}}(|00\rangle + |11\rangle). \]

4.3 복합 회로 예제: 간단한 양자 덧셈기

두 한 비트 숫자 \(|a\rangle, |b\rangle\)와 결과 비트 \(|c\rangle\)로 구성된 전가수(full adder) 회로 예시:
목표: \(|a,b,c\rangle \mapsto |a,b,a \oplus b \oplus c\rangle\).


          a ───●─────●─────────────
               │     │
          b ───●─────┼───●─────────
               │     │   │
          c ─────────X───X──●──────
                       │   │
          (out) ──────────X─────
    

게이트 구성:

  • 첫 번째 CNOT(제어=a, 타겟=b): \(b \leftarrow b \oplus a\)
  • 두 번째 CNOT(제어=a, 타겟=c): \(c \leftarrow c \oplus a\)
  • 세 번째 CNOT(제어=b, 타겟=c): \(c \leftarrow c \oplus b\)
이로써 최종 타겟 큐빗이 \(a \oplus b \oplus c\) 값을 갖습니다.

5. 회로 최적화 기법(간략 소개)

양자회로를 설계할 때는 게이트 수큐빗 수를 최소화하여 노이즈 누적을 방지하는 것이 중요합니다. 아래 항목들은 특히 중요한 최적화 기법입니다:

  • 게이트 합병(Gate Fusion): 연속된 단일 큐빗 회전 게이트들을 하나의 회전으로 합병하여 게이트 수를 줄임.
  • 불필요한 CNOT 제거: 같은 제어-타겟 쌍에서 연이어 CNOT이 두 번 적용되면 서로 상쇄되므로 제거 가능.
  • 토폴로지 고려: 실제 하드웨어의 연결 제한을 반영하여, 추가적인 SWAP 게이트를 최소화하는 방향으로 배치.

6. 요약 및 다음 단계 안내

2부에서는 다음 내용을 다뤘습니다:

  • 단일 큐빗 게이트: Pauli(X, Y, Z), Hadamard, 위상(S, T), 회전(Rx, Ry, Rz) 게이트.
  • 다중 큐빗 게이트: CNOT, CZ, SWAP, Toffoli(CCNOT) 게이트의 행렬 표현과 동작 원리.
  • 회로 다이어그램: 큐빗 라인 위에 게이트 기호 배치, 벨 상태 생성 회로 예시, 간단한 양자 덧셈기 예시.
  • 회로 최적화 기법: 게이트 합병, 불필요한 CNOT 제거, 토폴로지 고려, 라이트시프트 등의 기본 개념.

다음 3부에서는 “양자하드웨어 개론”을 다룹니다. 초전도 큐빗, 이온 트랩 큐빗, 광자 큐빗 등 각 플랫폼의 동작 원리와 장단점을 살펴보고, 실제 하드웨어 구현 시 고려해야 할 환경적 제약과 기술적 이슈를 학습합니다.