주 콘텐츠로 건너뛰기

기타 코드 패밀리

toric 코드가 발견된 지 25년이 넘게 지났으며, 그 이후로 양자 오류 정정 코드에 관한 많은 연구가 이루어져 왔습니다. 여기에는 toric 코드에서 영감을 받은 다른 위상학적 양자 코드들의 발견뿐만 아니라, 완전히 다른 아이디어에 기반한 코드들도 포함됩니다. 알려진 양자 오류 정정 코드 구성의 포괄적인 목록을 여기에 모두 담는 것은 불가능하지만, 몇 가지 대표적인 예를 간단히 살펴봄으로써 그 표면을 조금이나마 훑어보도록 하겠습니다.

Surface codes

알고 보면 toric 코드가 반드시 주기적 경계를 가질 필요는 없습니다. 즉, toric 코드의 일부분만 잘라내어 원환면 대신 2차원 표면 위에 평평하게 펼쳐서 양자 오류 정정 코드를 얻는 것이 가능합니다. 단, 가장자리에 있는 stabilizer 생성자들이 제대로 정의되어 있어야 합니다. 이렇게 해서 얻은 것을 surface code라고 부릅니다.

예를 들어, 아래는 surface code의 한 예시 다이어그램으로, 격자가 위아래는 이른바 거친(rough) 가장자리로, 양옆은 매끄러운(smooth) 가장자리로 잘려 있습니다. stabilizer 생성자들의 경계 사례는 자연스러운 방식으로 정의되는데, 즉 "누락된" Qubit에 대한 Pauli 연산은 단순히 생략됩니다.

Diagram of a surface code

이러한 형태의 surface code는 toric 코드가 두 개의 Qubit을 인코딩하는 것과 달리 단 하나의 Qubit을 인코딩합니다. 이 경우 stabilizer 생성자들은 toric 코드처럼 각 타입의 생성자 중 하나를 제거할 필요 없이, 그 자체로 최소 생성 집합을 이루게 됩니다. 그러나 이러한 차이에도 불구하고, toric 코드의 중요한 특성들은 그대로 계승됩니다. 특히, 이 코드에서 사소하지 않으면서 검출되지 않는 오류들은 왼쪽 가장자리에서 오른쪽 가장자리까지 이어지는 오류 사슬(XX 오류의 사슬에 해당)이거나, 위에서 아래로 이어지는 오류 사슬(ZZ 오류의 사슬에 해당)에 대응합니다.

또한 surface code의 가장자리를 대각선으로 잘라서, 종종 회전된(rotated) surface code라고 불리는 코드를 얻는 것도 가능합니다. 이 이름은 코드가 의미 있는 방식으로 회전되어서가 아니라, 다이어그램이 (45도) 회전되어 그려지기 때문에 붙여진 것입니다. 예를 들어, 아래는 거리 5를 가지는 회전된 surface code의 다이어그램입니다.

Diagram of a rotated surface code

이 유형의 다이어그램에서 검은색 타일(가장자리의 둥근 타일 포함)은 XX stabilizer 생성자를 나타내며, 각 타일의 (둘 또는 네 개의) 꼭짓점에 XX 연산이 적용됩니다. 반면 흰색 타일은 ZZ stabilizer 생성자를 나타냅니다. 회전된 surface code는 (회전되지 않은) surface code와 비슷한 성질을 가지지만, 사용되는 Qubit의 개수 면에서 더 경제적입니다.

Color codes

Color 코드는 또 다른 흥미로운 코드 종류로, 이 역시 위상학적 양자 코드의 일반 범주에 속합니다. 여기서는 간단하게만 설명하도록 하겠습니다.

Color 코드를 이해하는 한 가지 방법은 이를 7-Qubit Steane 코드의 기하학적 일반화로 바라보는 것입니다. 이를 염두에 두고, 7-Qubit Steane 코드를 다시 한 번 살펴보겠습니다. 일곱 개의 Qubit이 Qiskit의 번호 지정 관례를 따라 (Q6,Q5,Q4,Q3,Q2,Q1,Q0)(\mathsf{Q}_6,\mathsf{Q}_5,\mathsf{Q}_4,\mathsf{Q}_3,\mathsf{Q}_2,\mathsf{Q}_1,\mathsf{Q}_0)과 같이 이름 붙여지고 정렬되어 있다고 가정합니다. 이 코드의 stabilizer 생성자들은 다음과 같다는 점을 상기해 봅시다.

ZZZZIIIZZIIZZIZIZIZIZXXXXIIIXXIIXXIXIXIXIX\begin{array}{ccccccc} Z & Z & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] Z & Z & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} \\[1mm] Z & \mathbb{I} & Z & \mathbb{I} & Z & \mathbb{I} & Z \\[1mm] X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] X & X & \mathbb{I} & \mathbb{I} & X & X & \mathbb{I} \\[1mm] X & \mathbb{I} & X & \mathbb{I} & X & \mathbb{I} & X \end{array}

이 일곱 개의 Qubit을 아래 그래프의 꼭짓점에 대응시키면, stabilizer 생성자들이 그래프의 변들로 형성되는 면들과 정확히 일치한다는 사실을 알 수 있습니다.

Diagram illustrating geometric locality of the 7-qubit Steane code

즉, 각 면에 대해 ZZ stabilizer 생성자와 XX stabilizer 생성자가 모두 존재하며, 이들은 해당 면의 꼭짓점에 있는 Qubit들에 대해 자명하지 않게 작용합니다. 따라서 7-Qubit Steane 코드는 기하학적 지역성(geometric locality)을 가지므로, 원칙적으로 stabilizer 생성자를 측정하기 위해 Qubit들을 먼 거리로 이동시킬 필요가 없습니다. ZZXX stabilizer 생성자가 항상 정확히 동일한 Qubit 집합에 자명하지 않게 작용한다는 사실은, 다음 강의의 주제인 결함 허용 양자 계산(fault-tolerant quantum computation)과 관련된 이유에서도 좋은 특성입니다.

Color 코드는 이러한 기본 패턴을 일반화한 양자 오류 정정 코드(좀 더 정확하게는 CSS 코드)로, 기반이 되는 그래프가 달라질 수 있다는 점이 다릅니다. 예를 들어, 아래는 작동하는 19개 꼭짓점을 가진 그래프입니다. 이 그래프는 하나의 Qubit을 19개의 Qubit에 인코딩하고 거리 5를 가지는 코드를 정의합니다(즉, [[19,1,5]][[19,1,5]] stabilizer 코드입니다).

Diagram of a color code

이는 다양한 구조를 가지며 크기가 커지는 그래프 패밀리를 포함한 여러 다른 그래프들로도 수행할 수 있습니다.

Color 코드는 이런 이름으로 불리는데, 그 이유는 이들을 정의하는 그래프에 요구되는 조건 중 하나가 면들을 삼색으로 칠할 수 있어야 한다는 것이기 때문입니다. 즉, 각 면에 세 가지 색 중 하나를 할당하되 같은 색을 가진 두 면이 변을 공유하지 않는 방식으로 칠할 수 있어야 한다는 뜻입니다(앞선 다이어그램에서처럼 말이죠). 색 자체는 코드의 정의에 실제로 영향을 주지 않으며 — 색에 관계없이 각 면마다 항상 ZZXX stabilizer 생성자가 존재합니다 — 다만 코드가 어떻게 작동하는지 분석할 때 중요한 역할을 합니다.

Other codes

양자 오류 정정은 활발하고 빠르게 발전하고 있는 연구 분야입니다. 더 깊이 탐구하고자 하는 분들은 Error Correction Zoo를 참고해 주세요. 이곳에는 수많은 양자 오류 정정 코드의 예시와 분류가 정리되어 있습니다.

Example: The gross code

gross 코드는 최근 발견된 [[144,12,12]][[144,12,12]] stabilizer 코드입니다. 이 코드는 toric 코드와 유사하지만, 각 stabilizer 생성자가 해당 생성자의 타일이나 꼭짓점에서 조금 더 떨어진 두 개의 추가 Qubit에 대해서도 자명하지 않게 작용한다는 점이 다릅니다(따라서 각 stabilizer 생성자는 가중치 6을 가집니다). 이 코드의 장점은 toric 코드가 단 두 개의 Qubit만 인코딩할 수 있는 것에 비해 12개의 Qubit을 인코딩할 수 있다는 것입니다.