표면 부호(Surface Code)의 구조와 오류 정정 원리
표면 부호는 2차원 격자 위에 물리 큐비트를 배치하고, 인접 큐비트 간의 안정자(stabilizer) 측정을 통해 양자 오류를 비파괴적으로 감지·정정하는 위상학적 양자 오류 정정 부호다. 낮은 물리 오류율 임계값(~1%)과 국소적 연산만을 요구하는 특성 덕분에 현재 가장 유력한 결함 허용 양자컴퓨팅 구조로 평가받는다. 본 장에서는 격자 구조, 안정자 연산자, 오류 증후군 디코딩의 원리를 엄밀하게 다룬다.
개념 소개
양자 정보는 환경과의 결합(decoherence) 및 게이트 불완전성으로 인해 필연적으로 오류를 동반한다. 고전 오류 정정이 비트를 단순 복사해 다수결로 복원하듯, 양자 오류 정정은 복사 불가 원리(no-cloning theorem) 의 제약 안에서 정보를 여러 물리 큐비트에 얽힘 형태로 분산 인코딩한다.
표면 부호(Surface Code)는 격자에 물리 큐비트를 배치하는 위상학적 안정자 부호다. 여기서 는 부호 거리(code distance)이며, 정정 가능한 오류 수는 개다. 즉 이면 최대 2개의 독립 오류를 정정할 수 있다.
핵심 원리
격자 구조
표면 부호의 표준 구성은 다음과 같다.
- 데이터 큐비트(data qubit): 격자의 꼭짓점(vertex) 위치에 개 배치
- 보조 큐비트(ancilla qubit): 격자 면(plaquette)과 꼭짓점 체크 위치에 배치되어 안정자를 측정
전체 물리 큐비트 수는 개이며, 논리 큐비트 1개를 인코딩한다. 인코딩 비율(encoding rate)은 로 낮지만, 높은 오류 임계값으로 이를 상쇄한다.
안정자 연산자
표면 부호의 안정자 군(stabilizer group) 는 두 종류의 연산자로 구성된다.
꼭짓점 연산자 (Z-type / vertex stabilizer):
꼭짓점 주변 4개(경계는 2~3개) 데이터 큐비트에 Pauli-를 작용한다.
면 연산자 (X-type / plaquette stabilizer):
면 주변 4개 데이터 큐비트에 Pauli-를 작용한다.
임의의 와 는 공유 큐비트가 항상 짝수 개이므로 이 보장된다. 논리 연산자는 격자를 가로지르는 비자명(non-trivial) 체인으로 정의된다.
오류 증후군(Syndrome) 추출
안정자 측정 결과 집합을 증후군이라 한다. 오류가 없으면 모든 의 고유값은 이다. 단일 비트 플립( 오류)이 데이터 큐비트 에 발생하면, 를 공유하는 두 꼭짓점 안정자가 을 반환하여 오류의 끝점이 드러난다.
오류 체인은 증후군의 경계(boundary) 로 나타나므로, 최솟값 매칭(Minimum Weight Perfect Matching, MWPM) 알고리즘으로 가장 짧은 오류 경로를 추론해 정정한다.
import networkx as nx
def decode_syndrome_mwpm(syndrome_nodes: list[tuple[int,int]]) -> list[tuple]:
"""
syndrome_nodes: 증후군이 -1인 안정자의 2D 좌표 리스트
반환: 매칭된 (노드A, 노드B) 쌍 리스트 — 이 경로가 정정 연산 위치
"""
G = nx.Graph()
for i, u in enumerate(syndrome_nodes):
for j, v in enumerate(syndrome_nodes):
if i >= j:
continue
dist = abs(u[0] - v[0]) + abs(u[1] - v[1]) # Manhattan distance
G.add_edge(i, j, weight=-dist) # networkx는 최대 매칭 기준
matching = nx.max_weight_matching(G, maxcardinality=True)
return [(syndrome_nodes[a], syndrome_nodes[b]) for a, b in matching]
오류 임계값
오류 임계값 는 물리 오류율 이면 부호 거리 를 늘릴수록 논리 오류율이 지수적으로 감소하는 임계점이다. 표면 부호는 독립 탈분극화 오류 모델 하에서
로 계산되며, 이는 다른 주요 부호 대비 월등히 높은 수치다. 논리 오류율은 근사적으로
로 스케일된다.
예시·응용
Google의 실험적 검증: 표면 부호 구조에서 대비 로 거리를 증가시킬 때 논리 오류율이 실제로 감소함을 초전도 큐비트 플랫폼에서 확인한 연구가 발표된 바 있다.
격자 수술(Lattice Surgery): 두 논리 큐비트를 얽히게 하는 대표적 방법으로, 격자 경계를 임시로 합병·분리하여 논리 또는 측정을 수행한다. 보조 게이트 없이 국소 연산만으로 구현되어 오버헤드가 낮다.
자원 추정 예시: 논리 오류율 을 목표로 할 때, 물리 오류율 이면 이 필요하며 물리 큐비트 수는 약 개/논리 큐비트가 요구된다.
정리
표면 부호는 2차원 국소 상호작용만으로 결함 허용 양자 연산을 구현할 수 있는 가장 실용적인 오류 정정 구조다. 핵심은 데이터 큐비트를 직접 측정하지 않고 보조 큐비트로 안정자를 추출하는 비파괴 증후군 측정, 그리고 MWPM 기반 디코딩 알고리즘이다. 부호 거리 를 늘리면 지수적으로 낮은 논리 오류율을 달성할 수 있으나, 이에 비례한 물리 큐비트 오버헤드가 따른다.
연습문제
Q1.$d=3$ 표면 부호에서 정정 가능한 최대 오류 개수는 몇 개인가? 그 이유를 부호 거리의 정의로부터 설명하라.
힌트 보기
$t = \lfloor (d-1)/2 \rfloor$ 공식을 적용하고, 오류 체인의 길이와 논리 오류와의 관계를 생각하라.
해설 보기
$t = \lfloor (3-1)/2 \rfloor = 1$이므로 1개의 독립 오류를 정정할 수 있다. 부호 거리 $d=3$은 논리 연산자를 구성하는 최단 체인의 길이가 3임을 의미한다. 오류가 2개 이상이면 MWPM 디코더가 오류 체인의 끝점을 잘못 연결하여 논리 오류(격자를 관통하는 체인)가 형성될 수 있다.
Q2.표면 부호에서 X-type 오류(비트 플립)가 발생했을 때 활성화되는 안정자는 Z-type 꼭짓점 연산자($A_v$)인가, X-type 면 연산자($B_p$)인가? 파울리 교환 관계로 설명하라.
해설 보기
Z-type 꼭짓점 연산자 $A_v$가 활성화된다. 데이터 큐비트 $j$에 $X_j$ 오류가 발생하면 $X_j Z_j = -Z_j X_j$이므로 $j$를 포함하는 $A_v$의 측정값이 $+1 \to -1$로 반전된다. 반면 $B_p$는 $X$로만 구성되어 $X_j$와 교환 가능($[X_j, X_j]=0$)하므로 영향을 받지 않는다.
Q3.물리 오류율 $p = 5 \times 10^{-3}$, 목표 논리 오류율 $p_L \leq 10^{-6}$일 때, $p_{th} = 0.011$, $A=0.1$로 가정하면 필요한 최소 부호 거리 $d$를 추정하라.
힌트 보기
$p_L \approx A(p/p_{th})^{\lfloor d/2 \rfloor + 1}$ 에서 양변에 로그를 취하라.
해설 보기
$r = p/p_{th} = 5\times10^{-3}/0.011 \approx 0.455$. 조건은 $0.1 \times 0.455^{\lfloor d/2\rfloor+1} \leq 10^{-6}$, 즉 $0.455^k \leq 10^{-5}$ ($k = \lfloor d/2\rfloor+1$). 양변 로그: $k \geq \log(10^{-5})/\log(0.455) \approx (-5)/(-0.342) \approx 14.6$, 따라서 $k=15$, $\lfloor d/2\rfloor = 14$이므로 $d \geq 29$ (홀수 기준 $d=29$). 이때 물리 큐비트 수는 약 $2\times29^2-1=1681$개가 필요하다.