양자 컴퓨터 (Quantum Computer)

[5부] 양자오류정정(Quantum Error Correction, QEC) 기초

springfallinlove 2025. 6. 4. 14:16
[5부] 양자오류정정(Quantum Error Correction, QEC) 기초

[5부] 양자오류정정(Quantum Error Correction, QEC) 기초

요약 설명: 양자컴퓨터가 직면하는 오류의 주요 원인(디코히어런스, 잡음 채널)과 이를 해결하기 위한 대표적 오류정정 코드(비트·페이즈 플립, 쇼어 코드, 5-큐빗 스테빌라이저 코드, 표면 코드, 색상 코드) 원리를 살펴봅니다.

1. 오류 발생 메커니즘

양자 시스템은 환경과 상호작용하며 디코히어런스(Decoherence)잡음 채널(Noise channel)을 겪습니다. 특히 큐빗 상태가 유지되어야 할 타이밍에 신호가 주변 열·전기·자기 잡음과 결합하여 위상이 뒤틀리거나 진폭이 변화하게 됩니다.

대표적 잡음 채널:

  • 비트 플립(Bit-flip): \(\rho \mapsto X \rho X^\dagger\) 형태로, 상태 \(|0\rangle \leftrightarrow |1\rangle\) 전이.
  • 페이즈 플립(Phase-flip): \(\rho \mapsto Z \rho Z^\dagger\) 형태로, \(|1\rangle\) 상태에 위상 반전 발생.
  • 비트+페이즈 플립(Depolarizing): 확률적으로 \(X, Y, Z\) 중 하나 적용되어 완전 혼합화 경향.

오류가 누적되면 얽힘(Entanglement)이 깨지고, 양자 알고리즘 결과가 전혀 다른 값을 낼 수 있기 때문에 오류정정 코드를 사용해 물리적 큐빗 여러 개로 하나의 논리 큐빗을 보호해야 합니다.

2. 3큐빗 비트-플립 / 페이즈-플립 코드

2.1 3큐빗 비트-플립 코드

가장 단순한 오류정정 코드 중 하나로, 하나의 논리 큐빗을 세 개의 물리 큐빗으로 인코딩하여 단일 비트 플립 오류를 교정합니다.
논리 상태는 다음과 같이 정의합니다:

\[ |0_L\rangle = |000\rangle, \quad |1_L\rangle = |111\rangle. \]

입력 \(\alpha|0_L\rangle + \beta|1_L\rangle\) 상태에서 물리적 비트 플립 \(X_i\)가 하나 발생하면, 세 큐빗 중 어느 하나가 반전된 상태가 됩니다. 검사(Measurement) 비트로 시너(Parity) 검사를 수행하여 오류 위치를 식별하고, 해당 물리 큐빗에 다시 \(X\) 연산을 적용해 복원합니다.


    오류 전:  α|000⟩ + β|111⟩

    비트 플립 오류 예시: 첫 번째 큐빗이 플립 → α|100⟩ + β|011⟩

    시너 검사:
      Z₁Z₂, Z₂Z₃ 측정하여 오류 위치 탐지

    복원: 식별된 위치에 X 연산 적용 → α|000⟩ + β|111⟩
  

2.2 3큐빗 페이즈-플립 코드

비트 플립 코드와 유사하게, 페이즈 플립 오류 \(Z_i\)를 교정하기 위해서는 하다마드 변환(Hadamard transform) 후 비트 플립 코드 적용 후 다시 하다마드 변환을 수행합니다. \[ H^{\otimes 3} \bigl(\alpha|0_L\rangle + \beta|1_L\rangle\bigr) = \alpha|+\!+\!+\rangle + \beta|-\!-\!-\rangle \] 여기서 \(|\pm\rangle = \frac{|0\rangle \pm |1\rangle}{\sqrt{2}}\). 이후 비트 플립 교정 절차를 통해 페이즈 오류를 복원합니다.

3. 쇼어(Shor) 코드 및 5-큐빗 스테빌라이저 코드

3.1 쇼어 코드(Shor Code)

쇼어 코드는 9개의 물리 큐빗을 사용하여 하나의 논리 큐빗을 오류정정하며, 비트-플립과 페이즈-플립을 모두 교정할 수 있는 최초의 QEC 코드입니다.
구조:

  • First Layer: 3큐빗 비트 플립 코드를 사용해 비트 오류( \(X\) )에 대응.
  • Second Layer: 각 물리 큐빗 그룹에 대해 하다마드 후 3큐빗 비트 플립 → 페이즈 오류( \(Z\) ) 교정.

논리 상태 예:

\[ |0_L\rangle = \frac{1}{2\sqrt{2}} (|000\rangle + |111\rangle)^{\otimes 3}, \quad |1_L\rangle = \frac{1}{2\sqrt{2}} (|000\rangle - |111\rangle)^{\otimes 3}. \]

총 9큐빗을 사용하지만 단일 \(X\) 및 \(Z\) 오류를 모두 교정할 수 있어, 초기 QEC 실험에서 중요한 역할을 했습니다.

3.2 5-큐빗 스테빌라이저 코드

5-큐빗 코드는 가장 적은 수의 물리 큐빗으로 단일 큐빗 오류( \(X\), \(Z\), 또는 \(Y\) )를 교정할 수 있는 스테빌라이저 코드입니다. 5개의 스테빌라이저 생성자(Generators) \(g_i\)를 정의하여 오류를 감지합니다.

\[ \begin{aligned} g_1 &= X \, Z \, Z \, X \, I, \\ g_2 &= I \, X \, Z \, Z \, X, \\ g_3 &= X \, I \, X \, Z \, Z, \\ g_4 &= Z \, X \, I \, X \, Z. \end{aligned} \]

각 검사 비트(Ancilla)로 \(g_i\)를 측정하여 오류 시그니처(Syndrome)를 얻고, 이를 통해 오류 위치 및 종류를 식별한 뒤 적절한 회복 연산을 수행합니다.


    오류 전:  |ψ_L⟩

    오류 발생:  X₂

    시그니처 측정: [g₁, g₂, g₃, g₄] → (결과 비트열)

    복원: 오류 위치 식별 후 해당 큐빗에 X 연산 적용
  

4. 표면 코드(Surface Code) 및 색상 코드(Color Code)

4.1 표면 코드 (Surface Code)

표면 코드는 2차원 격자 위에 물리 큐빗을 배치하고 국소적 스테빌라이저 측정만으로 오류를 교정하는 QEC 코드입니다.
격자 구조:

  • 데이터 큐빗(Data qubits): 격자 정점(vertex)에 위치.
  • 스테빌라이저 큐빗(Stabilizer qubits): 격자 면(face) 혹은 모서리(edge)에 배치되어 국소적 측정 수행.

스테빌라이저 연산:

\[ A_v = \prod_{i \in \text{vertex}(v)} X_i, \quad B_p = \prod_{i \in \text{face}(p)} Z_i. \]

여기서 \(A_v\)는 버텍스(정점) 주변의 데이터 큐빗에 \(X\) 연산을 곱하고, \(B_p\)는 면 주변의 데이터 큐빗에 \(Z\) 연산을 곱하여 위상 및 비트 오류를 감지합니다.

장점:

  • 국소적 연산과 측정만으로 오류 교정 가능 → 하드웨어 구현 용이.
  • 임계 오류율(Threshold)이 비교적 높아(~1%) 실제 장비에서 실현 가능성이 큽니다.

4.2 색상 코드 (Color Code)

색상 코드는 3색(삼각형) 격자에서 스테빌라이저 측정을 수행하여 데이터 큐빗을 보호합니다. 표면 코드와 유사하지만, 논리 게이트 구현 시 토폴로지 활용이 더 자유롭다는 장점이 있습니다.
구조:

  • 세 가지 색(빨강, 녹색, 파랑)으로 구분된 삼각형 격자.
  • 각 색깔 삼각형에 대응하는 스테빌라이저 연산자: \(X\) 군, \(Z\) 군 측정.

특징:

  • 표면 코드보다 논리 게이트(Clifford 계열) 구현이 간결할 수 있음.
  • 다양한 토폴로지적 결함(Defect)을 활용한 논리 큐빗 배치 및 게이트 구성 가능.

그러나 색상 코드는 표면 코드에 비해 국소적 연산 범위가 약간 더 크고, 스테빌라이저 측정 회로가 복잡해집니다.

4.3 결함 허용(Fault-Tolerant) 설계

QEC를 실제 시스템에 적용하기 위해서는 결함 허용(Fault-Tolerance) 원칙을 따라야 합니다. 이는 오류를 교정하는 과정 자체에서 새로운 오류를 유발하지 않도록 설계하는 것을 의미합니다.

  • 스테빌라이저 측정 중 발생할 수 있는 오류를 별도 검출 → 중첩 오류 방지.
  • 논리 게이트 수행 시 코드 공간 내에서만 연산이 이루어지도록 토폴로지적 이동(Braiding) 사용.
결함 허용 설계를 통해 다중 큐빗 논리 게이트를 안전하게 구현할 수 있습니다.

5. 결론 및 다음 단계 안내

이번 5부에서는 양자컴퓨터가 직면한 주요 오류 메커니즘과 이를 해결하기 위한 대표적 QEC 코드를 소개했습니다.

  • 디코히어런스, 잡음 채널로 인한 비트/페이즈 오류 이해.
  • 3큐빗 비트-플립/페이즈-플립 코드: 단일 오류 교정 원리.
  • 쇼어 코드(9큐빗)와 5-큐빗 스테빌라이저 코드: 복합 오류 교정 방법.
  • 표면 코드, 색상 코드: 2D 격자 기반 스테빌라이저 코드와 결함 허용 설계.
다음 6부에서는 양자알고리즘을 다룹니다. 대표적인 양자 알고리즘(도이치-조사, 그로버, 쇼어, VQE, QAOA 등)의 원리 및 회로 구현 예시를 학습하게 됩니다.