제1장. 양자 회로와 유니버설 게이트

“양자시간” 1, 2장에서 배운 힐베르트 공간, 큐빗, 얽힘은 양자 정보의 ’재료’입니다. “양자역학”에서 배운 유니터리 진화(\(e^{-iHt/\hbar}\))는 이 재료의 ’물리 법칙’입니다.

이 장에서는 이 물리 법칙을 ’계산’이라는 목적에 맞게 추상화하는 언어, 즉 양자 회로(Quantum Circuit)를 배웁니다. 고전 컴퓨터가 AND, OR, NOT 게이트로 모든 계산을 수행하듯, 양자 컴퓨터는 양자 게이트(Quantum Gate)라는 기본 연산자(유니터리 행렬)의 조합으로 모든 양자 알고리즘을 수행합니다.


1. 기본 개념 (Fundamental Concepts)

  • 큐빗 (Qubit) 복습 ⚛️: “양자역사” 1장에서 배운 대로, 큐빗은 2차원 힐베르트 공간(\(\mathbb{C}^2\))의 상태 벡터입니다. 표준 기저(Z-기저) \(|0\rangle, |1\rangle\)의 중첩으로 표현됩니다. \[|\psi\rangle = \alpha|0\rangle + \beta|1\rangle \quad (|\alpha|^2 + |\beta|^2 = 1)\]

    • 블로흐 구 (Bloch Sphere) 🌐: 큐빗의 상태는 3차원 구의 표면에 있는 한 점으로 시각화할 수 있습니다. (전역 위상은 무시) \[|\psi\rangle = \cos(\theta/2)|0\rangle + e^{i\phi}\sin(\theta/2)|1\rangle\]

      준교과서레벨 상세 설명: 블로흐 구의 기하학적 의미 > 블로흐 구는 순수한 큐빗 상태를 시각화하는 강력한 도구입니다. 구의 표면에 있는 모든 점이 가능한 큐빗 상태 \(|\psi\rangle\)에 해당합니다.

      1. 극점(Pole): 북극은 \(|0\rangle\) 상태(\(\theta=0\)), 남극은 \(|1\rangle\) 상태(\(\theta=\pi\))를 나타냅니다. 이들은 고전적 비트에 대응합니다.
      2. 경도(\(\phi\)): \(xy\)-평면상의 회전 각도로, \(\phi\)상대 위상(Relative Phase) \(e^{i\phi}\)를 인코딩합니다. 이 상대 위상은 \(X, Y\) 기저 측정 결과에 영향을 미치며, 특히 양자 간섭 현상을 이해하는 데 필수적입니다.
      3. 위도(\(\theta\)): \(z\)-축으로부터의 각도 \(\theta\)확률 진폭(\(|\alpha|^2, |\beta|^2\))을 결정합니다. \(\theta=0\)일 때 \(|0\rangle\)일 확률은 1, \(\theta=\pi/2\) (적도)일 때는 \(|0\rangle\) 또는 \(|1\rangle\)일 확률이 각각 \(1/2\)로 중첩이 극대화됩니다.

      게이트와의 관계: 1장에서 배울 모든 단일 큐빗 게이트(\(X, Y, Z, H\) 등)는 블로흐 구 상에서 상태 벡터를 회전(Rotation)시키는 연산으로 기하학적으로 해석할 수 있습니다. (예: \(X\) 게이트는 \(x\)축에 대한 \(180^\circ\) 회전)

      동영상 소개: 블로흐 구 위에서 양자 상태의 변화와 회전을 시각적으로 보여주는 다음 동영상을 참고하여 \(H\) 게이트나 \(R_z(\phi)\) 게이트의 역할을 직관적으로 이해할 수 있습니다.

  • 양자 게이트 (Quantum Gate): 큐빗의 상태를 다른 상태로 변환하는 연산입니다. 양자역학의 공리에 따라(확률 보존), 모든 양자 게이트는 반드시 유니터리(Unitary) 연산자(\(U^\dagger U = \mathbf{1}\))여야 합니다.

  • 단일 큐빗 게이트 (Single-Qubit Gates): 단 하나의 큐빗에 작용하는 \(2 \times 2\) 유니터리 행렬입니다. 이는 블로흐 구 상에서 큐빗 상태 벡터를 회전(rotation)시키는 것과 같습니다.

    • X, Y, Z 게이트 (파울리 연산자): 180° 회전.
    • H 게이트 (하다마드): 기저를 변환(\(|0\rangle \to |+\rangle, |1\rangle \to |-\rangle\))하여 중첩을 만듭니다.
    • S, T 게이트: Z축에 대한 특정 각도(\(90^\circ, 45^\circ\)) 회전 (위상 게이트).
  • 다중 큐빗 게이트 (Multi-Qubit Gates): 여러 큐빗(예: 2큐빗 \(\mathbb{C}^4\))에 동시에 작용하는 \(4 \times 4\) 유니터리 행렬입니다. 큐빗들 사이에 얽힘(Entanglement)을 생성하는 데 필수적입니다.

    • CNOT (Controlled-NOT): 가장 핵심적인 2-큐빗 게이트. 제어(Control) 큐빗이 \(|1\rangle\)일 때만, 대상(Target) 큐빗에 X 게이트(NOT)를 적용합니다.
  • 유니버설 게이트 세트 (Universal Gate Set): 이 게이트들만 있으면 모든 가능한 양자 연산을 임의의 정밀도로 근사할 수 있는 최소한의 게이트 조합입니다. (고전의 {AND, NOT}과 유사)

    • 표준 세트: {CNOT, H, T} (단일 큐빗 회전 + 2-큐빗 게이트)
  • 양자 회로 (Quantum Circuit): 양자 게이트들을 시간 순서대로(왼쪽에서 오른쪽으로) 배열하여 양자 알고리즘의 수행 과정을 시각적으로 나타낸 도표입니다.


2. 기호 및 핵심 관계식 (게이트 행렬)

표준 기저 \(|0\rangle = \begin{pmatrix} 1 \\ 0 \end{pmatrix}, |1\rangle = \begin{pmatrix} 0 \\ 1 \end{pmatrix}\)에 대해,

  • 파울리 X (Bit-Flip): \(\quad X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} \quad\) (고전적 NOT)

  • 파울리 Y: \(\quad Y = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}\)

  • 파울리 Z (Phase-Flip): \(\quad Z = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} \quad\) (\(|1\rangle\)에만 \(-1\) 위상)

  • 하다마드 (Hadamard): \(\quad H = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \quad\) (중첩 생성)

  • S 게이트 (Phase): \(\quad S = \begin{pmatrix} 1 & 0 \\ 0 & i \end{pmatrix} \quad\) (Z축 90° 회전)

  • T 게이트: \(\quad T = \begin{pmatrix} 1 & 0 \\ 0 & e^{i\pi/4} \end{pmatrix} \quad\) (Z축 45° 회전)

  • CNOT (제어-NOT): (첫 번째 큐빗이 제어, 두 번째 큐빗이 대상)

    • 기저 \(|00\rangle, |01\rangle, |10\rangle, |11\rangle\) 에 대해,
    • \(\text{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix}\)
    • 작용:
      • \(\text{CNOT}|00\rangle = |00\rangle\) (제어가 0, 변화 없음)
      • \(\text{CNOT}|01\rangle = |01\rangle\) (제어가 0, 변화 없음)
      • \(\text{CNOT}|10\rangle = |11\rangle\) (제어가 1, 대상이 0 \(\to\) 1)
      • \(\text{CNOT}|11\rangle = |10\rangle\) (제어가 1, 대상이 1 \(\to\) 0)

3. 손쉬운 예제 (Examples with Deeper Insight)

예제 1: X, Z 게이트 (비트 및 위상 플립)

  • 상황: 가장 기본적인 단일 큐빗 게이트인 X(NOT)와 Z(Phase Flip) 게이트를 \(|+\rangle\) 상태에 적용합니다.

  • 계산: \(|+\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)\)

    1. X 게이트 적용: \[X|+\rangle = X \left( \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) \right) = \frac{1}{\sqrt{2}}(X|0\rangle + X|1\rangle) = \frac{1}{\sqrt{2}}(|1\rangle + |0\rangle) = |+\rangle\]
    2. Z 게이트 적용: \[Z|+\rangle = Z \left( \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) \right) = \frac{1}{\sqrt{2}}(Z|0\rangle + Z|1\rangle) = \frac{1}{\sqrt{2}}(|0\rangle - |1\rangle) = |-\rangle\]
  • 💡 상세 설명 (기저의 선택과 오류 모델): > > 1. X 게이트와 기저: \(|+\rangle\) 상태는 \(X\) 게이트(\(\sigma_x\))의 고유 상태이므로, \(X\) 게이트를 적용해도 상태가 변하지 않습니다. 즉, \(X\) 게이트는 Z-기저(\(|0\rangle, |1\rangle\))에서는 비트 플립을 유발하지만, X-기저(\(|+\rangle, |-\rangle\))에서는 아무 영향도 주지 않습니다. > 2. Z 게이트와 위상 플립: \(|+\rangle\) 상태는 \(|0\rangle\)\(|1\rangle\)상대 위상\(0\)인 중첩 상태입니다. \(Z\) 게이트는 \(|1\rangle\)에만 \(-1\) 위상(즉, \(180^\circ\) 회전)을 주어 \(|\psi\rangle\)전체 위상을 바꾸는 대신, \(|0\rangle\)\(|1\rangle\) 사이의 상대 위상을 반전시킵니다. > > \(\implies\) Z 게이트는 X-기저에서 NOT 게이트처럼 작용합니다 (\(\frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) \to \frac{1}{\sqrt{2}}(|0\rangle - |1\rangle)\)). > > 이 예제는 양자 오류 정정(3부)에서 다룰 비트 플립 오류(\(X\))위상 플립 오류(\(Z\) 또는 \(Y\))를 이해하는 기초가 됩니다.

예제 2: H 게이트 (중첩 생성기)

  • 상황: \(|0\rangle\) 상태의 큐빗에 하다마드(H) 게이트를 적용합니다.

  • 계산: \(H|0\rangle = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 \\ 1 \end{pmatrix}\) \[= \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) \equiv |+\rangle\]

  • 💡 상세 설명 (기저 변환과 중첩의 준비): > > 하다마드 게이트는 Z-기저(\(|0\rangle, |1\rangle\))를 X-기저(\(|+\rangle, |-\rangle\))로 변환하는 ‘기저 변환기’입니다. > > 1. \(Z\)-기저: \(\sigma_z\)의 고유 상태 (스핀 z-방향, 북/남극) > 2. \(X\)-기저: \(\sigma_x\)의 고유 상태 (스핀 x-방향, 적도) > > \(|0\rangle\) 상태(북극)에 \(H\)를 적용하면, 큐빗이 \(X\)축을 향하게(\(|+\rangle\), 적도) 됩니다. 이 상태는 \(Z\)축 관점에서 보면 \(|0\rangle\)\(|1\rangle\)50:50으로 중첩된 상태입니다. > > \(H\) 게이트는 2장에서 배울 양자 병렬성을 준비하는 데 필수적이며, 고전 알고리즘에서 입력 레지스터를 초기화하는 작업에 해당합니다. \(H^2 = \mathbf{1}\) (두 번 적용하면 원상 복구) 성질도 중요합니다.


예제 3: CNOT 게이트 (얽힘 생성기)

  • 상황: 두 큐빗이 \(|00\rangle\) 상태일 때, 첫 번째 큐빗에 H 게이트를, 그 다음 두 큐빗에 CNOT 게이트를 적용합니다. (가장 유명한 ‘벨 상태 생성’ 회로)

  • 회로: \[|0\rangle_1 \longrightarrow [H] \longrightarrow \bullet \longrightarrow\] \[|0\rangle_2 \longrightarrow [ ] \longrightarrow \oplus \longrightarrow\] (\(\bullet\)는 제어, \(\oplus\)는 대상)

  • 계산 (단계별):

    1. 초기 상태: \(|\psi_0\rangle = |0\rangle_1 \otimes |0\rangle_2 = |00\rangle\)
    2. H 게이트 적용 (H \(\otimes\) I): \[|\psi_1\rangle = (H|0\rangle_1) \otimes (I|0\rangle_2) = \left(\frac{|0\rangle+|1\rangle}{\sqrt{2}}\right) \otimes |0\rangle = \frac{1}{\sqrt{2}}(|00\rangle + |10\rangle)\]
    3. CNOT 게이트 적용: \[|\psi_2\rangle = \text{CNOT} |\psi_1\rangle = \text{CNOT} \left( \frac{1}{\sqrt{2}}(|00\rangle + |10\rangle) \right)\] \[= \frac{1}{\sqrt{2}} (\text{CNOT}|00\rangle + \text{CNOT}|10\rangle)\]
      • CNOT 규칙 적용: \(\text{CNOT}|00\rangle = |00\rangle\), \(\text{CNOT}|10\rangle = |11\rangle\) \[= \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle) \equiv |\Phi^+\rangle \quad (\text{벨 상태})\]
  • 💡 상세 설명 (얽힘의 탄생과 상관관계): > > \(|\psi_1\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) \otimes |0\rangle\) 상태는 아직 분리 가능(Separable)합니다. 1번 큐빗을 측정해도 2번 큐빗은 항상 \(|0\rangle\)으로, 서로 독립적입니다. > > 하지만 CNOT을 통과한 \(|\psi_2\rangle = \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle)\) 상태는 얽혀 있습니다(Entangled). > > 1. 1번 큐빗을 측정해서 \(|0\rangle\)이 나오면, 2번 큐빗은 즉시 \(|0\rangle\)으로 확정됩니다. > 2. 1번 큐빗을 측정해서 \(|1\rangle\)이 나오면, 2번 큐빗은 즉시 \(|1\rangle\)으로 확정됩니다. > > CNOT 게이트는 이처럼 ’중첩’과 ’제어’를 결합하여 큐빗들 사이에 고전적으로는 불가능한 완벽한 상관관계, 즉 얽힘을 만들어냅니다. 이 얽힘 상태는 정보를 분할하여 인코딩하며, 2장에서 배울 양자 알고리즘의 비고전적 자원이자 핵심 동력입니다.


예제 4: SWAP 게이트 구현 (게이트 조합)

  • 상황: 두 큐빗의 상태를 바꾸는(\(|\psi\rangle|\phi\rangle \to |\phi\rangle|\psi\rangle\)) SWAP 게이트가 필요합니다. 이는 CNOT 게이트만 가지고 만들 수 있습니다.
  • 회로: 3개의 CNOT 게이트를 순서대로 적용하여 SWAP을 합성합니다. \[\text{SWAP} = \text{CNOT}_{1\to 2} \cdot \text{CNOT}_{2\to 1} \cdot \text{CNOT}_{1\to 2}\]
  • 검증: \(|10\rangle\) 상태를 넣어봅시다.
    1. \(\text{CNOT}_{1\to 2} |10\rangle = |11\rangle\)
    2. \(\text{CNOT}_{2\to 1} |11\rangle = |01\rangle\) (2번 큐빗이 제어, 1번 큐빗이 \(1 \to 0\))
    3. \(\text{CNOT}_{1\to 2} |01\rangle = |01\rangle\) (1번 큐빗이 제어, 0이므로 변화 없음)
    • 최종 결과: \(|01\rangle\). (초기 \(|10\rangle\)\(|01\rangle\)SWAP 되었습니다.)
  • 💡 상세 설명 (유니버설 세트의 힘과 회로 합성): > > 이 예시는 양자 회로 합성(Circuit Synthesis)의 기본을 보여줍니다. 즉, 우리가 {CNOT, H, T} 같은 유니버설 게이트 세트만 있으면, SWAP이든 Toffoli(CCNOT)든 어떤 복잡한 유니터리 연산이라도 이들의 조합으로 ‘조립’해낼 수 있습니다. > > SWAP 연산이 3개의 CNOT만으로 구현될 수 있다는 사실은, 복잡한 알고리즘을 설계할 때 가장 기본적인 2-큐빗 게이트만으로도 충분하다는 근본적인 통찰을 제공하며, 이는 하드웨어 구현의 난이도를 결정하는 핵심 요소입니다. (2-큐빗 게이트의 수가 양자 컴퓨터의 ’깊이’와 ’비용’을 결정함) —–

4. 연습문제

  1. 게이트 항등식: 하다마드 게이트 \(H\)를 파울리 \(X, Z\) 게이트로 표현한 항등식 \(HXH = Z\) 를 행렬 곱셈으로 증명하십시오. (이는 \(H\)\(X\)기저와 \(Z\)기저를 바꿈을 의미합니다)
  2. 단일 게이트 작용: 큐빗이 X-기저의 \(|+\rangle\) 상태에 있습니다. 여기에 (a) \(Z\) 게이트, (b) \(S\) 게이트를 적용하면 각각 어떤 상태가 되는지 계산하십시오.
  3. 벨 상태 생성 2: 예제 2의 회로에서 초기 상태를 \(|01\rangle\)로 바꾸면(\(H\)는 1번 큐빗, CNOT은 1$$2) 최종 상태는 무엇이 될지 계산하십시오.
  4. CNOT 방향: CNOT 게이트의 제어 큐빗과 대상 큐빗을 바꾼 \(\text{CNOT}_{2\to 1}\) 게이트의 \(4 \times 4\) 행렬을 \(|00\rangle, |01\rangle, |10\rangle, |11\rangle\) 기저로 표현하십시오. (힌트: \(\text{CNOT}_{2\to 1}|10\rangle = |10\rangle, \text{CNOT}_{2\to 1}|01\rangle = |11\rangle\))
  5. 유니터리 확인: T 게이트(\(T\))가 유니터리 연산자임을 (\(T^\dagger T = \mathbf{1}\)) 보이십시오.

5. 해설

  1. \(H X H = \left(\frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}\right) \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} \left(\frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}\right)\) \(= \frac{1}{2} \left(\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}\begin{pmatrix} 1 & -1 \\ 1 & 1 \end{pmatrix}\right) = \frac{1}{2} \begin{pmatrix} 2 & 0 \\ 0 & -2 \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} = Z\).
  2. \(|+\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)\)
    1. \(Z|+\rangle = Z \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) = \frac{1}{\sqrt{2}} (Z|0\rangle + Z|1\rangle) = \frac{1}{\sqrt{2}} (|0\rangle - |1\rangle) = |-\rangle\).
    2. \(S|+\rangle = S \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) = \frac{1}{\sqrt{2}} (S|0\rangle + S|1\rangle) = \frac{1}{\sqrt{2}} (|0\rangle + i|1\rangle) \equiv |+Y\rangle\).
  3. \(|\psi_0\rangle = |01\rangle\). \(|\psi_1\rangle = (H \otimes I) |01\rangle = (H|0\rangle) \otimes |1\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) \otimes |1\rangle = \frac{1}{\sqrt{2}}(|01\rangle + |11\rangle)\). \(|\psi_2\rangle = \text{CNOT}|\psi_1\rangle = \frac{1}{\sqrt{2}}(\text{CNOT}|01\rangle + \text{CNOT}|11\rangle) = \frac{1}{\sqrt{2}}(|01\rangle + |10\rangle) \equiv |\Psi^+\rangle\). (또 다른 벨 상태)
  4. \(|00\rangle \to |00\rangle, |01\rangle \to |11\rangle\) (제어 1, 대상 0$$1), \(|10\rangle \to |10\rangle\) (제어 0), \(|11\rangle \to |01\rangle\) (제어 1, 대상 1$\(0).\)_{2} = \[\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{pmatrix}\] $.
  5. \(T = \begin{pmatrix} 1 & 0 \\ 0 & e^{i\pi/4} \end{pmatrix}\). \(T^\dagger = \begin{pmatrix} 1 & 0 \\ 0 & (e^{i\pi/4})^* \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & e^{-i\pi/4} \end{pmatrix}\). \(T^\dagger T = \begin{pmatrix} 1 & 0 \\ 0 & e^{-i\pi/4} \end{pmatrix} \begin{pmatrix} 1 & 0 \\ 0 & e^{i\pi/4} \end{pmatrix} = \begin{pmatrix} 1\cdot 1 & 0 \\ 0 & e^{-i\pi/4}e^{i\pi/4} \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & e^0 \end{pmatrix} = \mathbf{1}\).