주 콘텐츠로 건너뛰기

반복 코드 다시 보기

다음으로, 이번에는 Pauli 연산의 관점에서 3비트 반복 코드를 다시 살펴보겠습니다. 이는 stabilizer 코드의 첫 번째 예시가 됩니다.

반복 코드의 Pauli 관측값​

3비트 반복 코드를 Qubit에 적용할 때, 주어진 qubit 상태 벡터 α∣0⟩+β∣1⟩\alpha\vert 0\rangle + \beta\vert 1\rangle 은 다음과 같이 인코딩된다는 점을 떠올려 봅시다.

∣ψ⟩=α∣000⟩+β∣111⟩.\vert\psi\rangle = \alpha\vert 000\rangle + \beta\vert 111\rangle.

이러한 형태의 모든 상태 ∣ψ⟩\vert\psi\rangle 는 qubit 상태의 유효한 3-Qubit 인코딩입니다. 그러나 확신이 없는 어떤 상태가 있다면, 다음 두 등식을 확인함으로써 유효한 인코딩을 가지고 있는지 검증할 수 있습니다.

(Z⊗Z⊗I)∣ψ⟩=∣ψ⟩(I⊗Z⊗Z)∣ψ⟩=∣ψ⟩\begin{aligned} (Z \otimes Z \otimes \mathbb{I}) \vert\psi\rangle & = \vert\psi\rangle\\[1mm] (\mathbb{I} \otimes Z \otimes Z) \vert\psi\rangle & = \vert\psi\rangle \end{aligned}

첫 번째 등식은 ∣ψ⟩\vert\psi\rangle 의 가장 왼쪽 두 Qubit에 ZZ 연산을 적용해도 아무런 영향이 없다는 것을 의미하며, 즉 ∣ψ⟩\vert\psi\rangle 이 고윳값 11 을 갖는 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} 의 고유벡터라는 뜻입니다. 두 번째 등식도 유사하지만, ZZ 연산이 가장 오른쪽 두 Qubit에 적용된다는 점이 다릅니다. ∣ψ⟩\vert\psi\rangle 을 표준 기저 상태들의 선형 결합으로 생각해 보면, 첫 번째 등식은 가장 왼쪽 두 비트가 짝수 패리티를 갖는(또는 동등하게 서로 같은) 표준 기저 상태에 대해서만 0이 아닌 계수를 가질 수 있음을 의미하고, 두 번째 등식은 가장 오른쪽 두 비트가 짝수 패리티를 갖는 표준 기저 상태에 대해서만 0이 아닌 계수를 가질 수 있음을 의미합니다.

마찬가지로, 두 Pauli 연산 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} 과 I⊗Z⊗Z\mathbb{I}\otimes Z\otimes Z 을 관측가능량으로 보고 이전 절 끝에서 제시된 Circuit을 사용하여 둘 다 측정한다면, ∣ψ⟩\vert\psi\rangle 이 두 관측가능량 모두에 대해 고윳값 11 을 갖는 고유벡터이기 때문에 +1+1 고윳값에 대응하는 측정 결과를 반드시 얻게 됩니다. 그러나 두 관측가능량을 독립적으로 측정하기 위한 (결합된) Circuit의 단순화된 버전은 여기에 표시된 바와 같이 3비트 반복 코드의 패리티 검사 Circuit과 다름없습니다.

3비트 반복 코드의 패리티 검사 Circuit

따라서 위의 두 등식은 패리티 검사 Circuit이 0000 을 출력한다는 것을 함의하며, 이는 오류가 검출되지 않았음을 나타내는 신드롬입니다.

3-Qubit Pauli 연산 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} 과 I⊗Z⊗Z\mathbb{I}\otimes Z\otimes Z 은 이 코드에 대한 stabilizer 생성원이라 하며, 해당 코드의 stabilizer는 stabilizer 생성원들로 생성되는 집합입니다.

⟨Z⊗Z⊗I,I⊗Z⊗Z⟩={I⊗I⊗I,Z⊗Z⊗I,Z⊗I⊗Z,I⊗Z⊗Z}\langle Z\otimes Z\otimes \mathbb{I}, \mathbb{I}\otimes Z\otimes Z\rangle = \{ \mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z\otimes Z\otimes\mathbb{I}, Z\otimes\mathbb{I}\otimes Z, \mathbb{I}\otimes Z\otimes Z \}

stabilizer는 이 코드에 관련된 근본적으로 중요한 수학적 대상이며, 그것이 담당하는 역할은 이번 레슨이 진행되면서 논의될 것입니다. 지금으로서는 생성원과 그에 대응하는 패리티 검사에 대해 다른 선택을 할 수도 있었음을 주목합시다. 구체적으로는 우리가 선택한 두 생성원 중 어느 하나 대신 Z⊗I⊗ZZ\otimes\mathbb{I}\otimes Z 를 취하는 것인데, 그 결과로 stabilizer와 코드 자체는 변하지 않습니다.

오류 검출​

다음으로, 3비트 반복 코드의 비트 플립 검출을 고려해 보겠습니다. 관련된 Pauli 연산들, 즉 stabilizer 생성원과 오류 자체 사이의 상호 작용과 관계에 초점을 맞춥니다.

3비트 반복 코드를 사용하여 Qubit을 인코딩했고, 가장 왼쪽 Qubit에 비트 플립 오류가 발생했다고 가정합시다. 이로 인해 상태 ∣ψ⟩\vert\psi\rangle 은 XX 연산(또는 XX 오류)의 작용에 따라 변환됩니다.

∣ψ⟩↦(X⊗I⊗I)∣ψ⟩\vert\psi\rangle \mapsto (X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle

이 오류는 이전 레슨에서 논의된 바와 같이 3비트 반복 코드의 패리티 검사를 수행함으로써 검출될 수 있으며, 이는 stabilizer 생성원 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} 과 I⊗Z⊗Z\mathbb{I}\otimes Z\otimes Z 을 관측가능량으로 하여 비파괴적으로 측정하는 것과 동등합니다.

첫 번째 stabilizer 생성원부터 시작해 봅시다. 상태 ∣ψ⟩\vert\psi\rangle 은 가장 왼쪽 Qubit에서 XX 오류의 영향을 받았고, 우리의 목표는 이 stabilizer 생성원을 관측값으로 측정할 때 이 오류가 어떻게 영향을 미치는지 이해하는 것입니다. XX 와 ZZ 는 반교환이지만 모든 행렬은 단위행렬과 교환하므로, Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} 은 X⊗I⊗IX\otimes\mathbb{I}\otimes\mathbb{I} 과 반교환합니다. 한편, ∣ψ⟩\vert\psi\rangle 은 Qubit의 유효한 인코딩이므로 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} 은 ∣ψ⟩\vert\psi\rangle 에 대해 자명하게 작용합니다.

(Z⊗Z⊗I)(X⊗I⊗I)∣ψ⟩=−(X⊗I⊗I)(Z⊗Z⊗I)∣ψ⟩=−(X⊗I⊗I)∣ψ⟩\begin{aligned} (Z \otimes Z \otimes \mathbb{I})(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle & = -(X \otimes \mathbb{I} \otimes \mathbb{I})(Z \otimes Z \otimes \mathbb{I})\vert\psi\rangle \\ & = -(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle \end{aligned}

따라서 (X⊗I⊗I)∣ψ⟩(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle 은 고윳값 −1-1 을 갖는 Z⊗Z⊗IZ \otimes Z \otimes \mathbb{I} 의 고유벡터입니다. 관측가능량 Z⊗Z⊗IZ \otimes Z \otimes \mathbb{I} 에 연관된 측정을 상태 (X⊗I⊗I)∣ψ⟩(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle 에 대해 수행하면, 결과는 반드시 고윳값 −1-1 에 대응하는 것이 됩니다.

두 번째 stabilizer 생성원에도 비슷한 논리를 적용할 수 있지만, 이번에는 오류가 stabilizer 생성원과 반교환하는 것이 아니라 교환하므로, 이 측정의 결과는 고윳값 +1+1 에 대응하는 것이 됩니다.

(I⊗Z⊗Z)(X⊗I⊗I)∣ψ⟩=(X⊗I⊗I)(I⊗Z⊗Z)∣ψ⟩=(X⊗I⊗I)∣ψ⟩\begin{aligned} (\mathbb{I} \otimes Z \otimes Z)(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle & = (X \otimes \mathbb{I} \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z)\vert\psi\rangle\\ & = (X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle \end{aligned}

이 등식들을 고려했을 때 알 수 있는 사실은, 원래의 상태 ∣ψ⟩\vert\psi\rangle 에 상관없이 손상된 상태는 두 stabilizer 생성원 모두의 고유벡터이며, 고윳값이 +1+1 인지 −1-1 인지는 오류가 각 stabilizer 생성원과 교환하는지 반교환하는지에 의해 결정된다는 것입니다. Pauli 연산으로 표현되는 오류의 경우, 임의의 두 Pauli 연산은 교환하거나 반교환하므로 항상 둘 중 하나가 됩니다. 한편, stabilizer 생성원이 이 상태에 대해 자명하게 작용한다는 사실 외에는 실제 상태 ∣ψ⟩\vert\psi\rangle 은 중요한 역할을 하지 않습니다.

이러한 이유로, 우리는 일반적으로 다루고 있는 특정한 인코딩된 상태에 대해 신경 쓸 필요가 없습니다. 중요한 것은 오직 오류가 각 stabilizer 생성원과 교환하는지 반교환하는지 여부입니다. 특히, 이 코드에 대한 이 특정 오류와 관련하여 다음이 해당하는 등식입니다.

(Z⊗Z⊗I)(X⊗I⊗I)=−(X⊗I⊗I)(Z⊗Z⊗I)(I⊗Z⊗Z)(X⊗I⊗I)=(X⊗I⊗I)(I⊗Z⊗Z)\begin{aligned} (Z \otimes Z \otimes \mathbb{I})(X \otimes \mathbb{I} \otimes \mathbb{I}) & = -(X \otimes \mathbb{I} \otimes \mathbb{I})(Z \otimes Z \otimes \mathbb{I})\\[1mm] (\mathbb{I} \otimes Z \otimes Z)(X \otimes \mathbb{I} \otimes \mathbb{I}) & = (X \otimes \mathbb{I} \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z) \end{aligned}

다음은 각 stabilizer 생성원에 해당하는 행과 각 오류에 해당하는 열을 가진 표입니다. 표의 항목은 오류와 stabilizer 생성원이 교환하는지 반교환하는지에 따라 +1+1 또는 −1-1 중 하나입니다. 이 표에는 단일 비트 플립에 해당하는 오류와 오류가 전혀 없는 경우(단위행렬을 자기 자신과 세 번 텐서곱한 것으로 표현됨)에 해당하는 열만 포함되어 있습니다. 다른 오류에 대한 열을 더 추가할 수도 있지만, 지금은 이러한 오류에만 집중할 것입니다.

I⊗I⊗IX⊗I⊗II⊗X⊗II⊗I⊗XZ⊗Z⊗I+1−1−1+1I⊗Z⊗Z+1+1−1−1\begin{array}{c|cccc} & \mathbb{I}\otimes\mathbb{I} \otimes\mathbb{I} & X \otimes \mathbb{I} \otimes \mathbb{I} & \mathbb{I}\otimes X\otimes\mathbb{I} & \mathbb{I} \otimes\mathbb{I} \otimes X \\ \hline Z\otimes Z\otimes\mathbb{I} & +1 & -1 & -1 & +1 \\ \mathbb{I}\otimes Z\otimes Z & +1 & +1 & -1 & -1 \end{array}

따라서 표의 각 오류에 대해 해당 열은 그 오류가 주어진 인코딩을 각 stabilizer 생성원의 +1+1 또는 −1-1 고유벡터로 어떻게 변환하는지를 드러냅니다. 마찬가지로, 열들은 패리티 검사로부터 얻게 될 신드롬을 나타내며, 이는 stabilizer 생성원을 관측가능량으로 하는 비파괴적 측정과 동등합니다. 물론, 표의 항목은 00 과 11 이 아닌 +1+1 과 −1-1 입니다. 그리고 흔히 신드롬을 +1+1 과 −1-1 항목으로 이루어진 열이 아니라 이진 문자열로 생각하지만, stabilizer 생성원의 고윳값과 직접 연결하기 위해 +1+1 과 −1-1 항목으로 이루어진 이 벡터를 신드롬으로 생각해도 똑같이 잘 맞습니다. 일반적으로 신드롬은 발생한 오류에 대해 무언가를 알려주며, 표에 나열된 네 가지 가능한 오류 중 하나가 발생했다는 것을 알고 있다면, 신드롬은 그것이 어느 것이었는지를 나타냅니다.

신드롬​

3비트 반복 코드의 인코딩은 3-Qubit 상태이므로, 8차원 복소 벡터 공간의 단위 벡터입니다. 네 가지 가능한 신드롬은 이 8차원 공간을 효과적으로 네 개의 2차원 부분 공간으로 분할하며, 각 부분 공간에 있는 양자 상태 벡터들은 항상 동일한 신드롬을 만들어냅니다. 다음 도식은 8차원 공간이 두 stabilizer 생성원에 의해 구체적으로 어떻게 나뉘는지를 보여줍니다.

3비트 반복 코드의 부분 공간 분할

각 stabilizer 생성원은 공간을 같은 차원의 두 부분 공간, 즉 해당 관측가능량의 +1+1 고유벡터들의 공간과 −1-1 고유벡터들의 공간으로 분할합니다. 예를 들어, Z⊗Z⊗IZ\otimes Z\otimes\mathbb{I} 의 +1+1 고유벡터들은 가장 왼쪽 두 비트가 짝수 패리티를 갖는 표준 기저 상태의 선형 결합이고, −1-1 고유벡터들은 가장 왼쪽 두 비트가 홀수 패리티를 갖는 표준 기저 상태의 선형 결합입니다. 다른 stabilizer 생성원의 상황도 유사하지만, 이 경우에는 가장 왼쪽 두 비트가 아닌 가장 오른쪽 두 비트가 대상입니다.

네 가지 가능한 신드롬에 해당하는 네 개의 2차원 부분 공간은 이 코드가 매우 간단한 코드라는 사실 덕분에 이 경우에 쉽게 기술됩니다. 특히, 신드롬 (+1,+1)(+1,+1) 에 해당하는 부분 공간은 ∣000⟩\vert 000\rangle 과 ∣111⟩\vert 111\rangle 로 생성되는 공간이며, 이는 유효한 인코딩의 공간(또는 코드 공간으로도 알려져 있음)이고, 일반적으로 각 공간은 해당 칸에 표시된 표준 기저로 생성됩니다.

신드롬은 또한 모든 3-Qubit Pauli 연산을, 해당 연산(오류로서)이 어떤 신드롬을 야기할지에 따라 네 개의 동일한 크기 집합으로 분할합니다. 예를 들어, 두 stabilizer 생성원 모두와 교환하는 모든 Pauli 연산은 신드롬 (+1,+1)(+1,+1) 을 초래하며, 64개의 가능한 3-Qubit Pauli 연산 중 정확히 16개가 이 범주에 속하고(I⊗I⊗Z,\mathbb{I}\otimes \mathbb{I}\otimes Z, Z⊗Z⊗Z,Z\otimes Z\otimes Z, X⊗X⊗XX\otimes X\otimes X 를 포함합니다), 나머지 3개의 신드롬에 대해서도 마찬가지입니다.

이러한 두 가지 성질, 즉 신드롬이 인코딩이 존재하는 상태 공간과 해당 공간 위의 모든 Pauli 연산을 동일한 크기의 집합으로 분할한다는 것은 stabilizer 코드에 대해 일반적으로 성립하며, 이는 다음 절에서 정확히 정의할 것입니다.

지금은 주로 여담이지만, 두 stabilizer 생성원 모두와 교환하는 Pauli 연산, 또는 동등하게 신드롬 (+1,+1)(+1,+1) 을 초래하는 Pauli 연산이면서 자기 자신은 stabilizer의 원소에 비례하지 않는 것들은 이 코드에 대해 인코딩된 qubit(즉, 논리 qubit)에 대한 단일-Qubit Pauli 연산처럼 작동한다는 점을 언급할 가치가 있습니다. 예를 들어, X⊗X⊗XX\otimes X \otimes X 는 두 stabilizer 생성원 모두와 교환하지만 그 자체는 stabilizer의 어떤 원소에도 비례하지 않으며, 실제로 이 연산이 인코딩에 미치는 영향은 인코딩되고 있는 논리 Qubit에 대한 XX Gate와 동등합니다.

(X⊗X⊗X)(α∣000⟩+β∣111⟩)=α∣111⟩+β∣000⟩(X\otimes X \otimes X)(\alpha \vert 000\rangle + \beta \vert 111\rangle) = \alpha \vert 111\rangle + \beta \vert 000\rangle

다시 말하지만, 이것은 모든 stabilizer 코드로 일반화되는 현상입니다.