Перейти до основного вмісту

Дискретизація помилок

Дотепер ми розглядали помилки XX та ZZ у контексті 9-кубітного коду Шора, а в цьому розділі розглянемо довільні помилки. З'ясується, що для обробки таких помилок не потрібно робити нічого відмінного від уже описаного; здатність виправляти помилки X,X, ZZ або обидві одночасно автоматично означає здатність виправляти довільні помилки. Це явище іноді називають дискретизацією помилок.

Унітарні помилки на кубітах

Почнемо з поодиноких унітарних помилок на кубіті. Наприклад, така помилка може відповідати дуже малому повороту сфери Блоха, що може представляти похибку вентиля, який є недосконалим. Або це може бути будь-яка інша унітарна операція на кубіті — не обов'язково близька до тотожної.

Здавалося б, виправлення таких помилок є складним завданням. Адже є нескінченно багато можливих помилок такого виду, і навіть уявити неможливо, що можна точно визначити кожну помилку і потім її скасувати. Однак, якщо ми здатні виправити помилку перевертання біта, перевертання фази або обидві одразу, то нам вдасться виправити довільну поодиноку унітарну помилку на кубіті за допомогою процедур, описаних раніше в уроці.

Щоб зрозуміти чому, спочатку зауважимо, що довільну унітарну матрицю 2×22 \times 2, яка представляє помилку на окремому кубіті, можна виразити як лінійну комбінацію чотирьох матриць Паулі (включаючи матрицю тотожності).

U=αI+βX+γY+δZU = \alpha \mathbb{I} + \beta X + \gamma Y + \delta Z

Як ми побачимо, під час виконання схем виявлення помилок виміри, що дають нам синдромні біти, ефективно стохастично проектують стан кодування на стан, у якому відбулася помилка (або її відсутність), описана однією з чотирьох матриць Паулі. (З того, що UU є унітарною, випливає, що числа α,\alpha, β,\beta, γ\gamma та δ\delta мають задовольняти умову α2+β2+γ2+δ2=1,\vert\alpha\vert^2 + \vert\beta\vert^2 + \vert\gamma\vert^2 + \vert\delta\vert^2 = 1, і справді, значення α2,\vert\alpha\vert^2, β2,\vert\beta\vert^2, γ2\vert\gamma\vert^2 та δ2\vert\delta\vert^2 є ймовірностями, з якими закодований стан колапсує до стану з відповідною помилкою Паулі.)

Для більш детального пояснення зручно використовувати нижні індекси, щоб вказувати, на який кубіт діє та чи інша унітарна операція. Наприклад, використовуючи нумерацію кубітів Qiskit (Q8,Q7,,Q0)(\mathsf{Q}_8,\mathsf{Q}_7,\ldots,\mathsf{Q}_0) для 9 кубітів коду Шора, маємо такі вирази для різних унітарних операцій на поодиноких кубітах, де в кожному випадку унітарна матриця тензорно перемножена з матрицею тотожності на всіх інших кубітах.

X0=IIIIIIIIXZ4=IIIIZIIIIU7=IUIIIIIII\begin{aligned} X_0 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes X \\[1.5mm] Z_4 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \\[1.5mm] U_7 & = \mathbb{I} \otimes U \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \end{aligned}

Отже, для заданої унітарної операції UU на кубіті дію UU, застосованої до кубіта kk, можна задати такою формулою, яка є аналогічною до попередньої, з тією різницею, що кожна матриця представляє операцію на кубіті k.k.

Uk=αIk+βXk+γYk+δZkU_k = \alpha \mathbb{I}_k + \beta X_k + \gamma Y_k + \delta Z_k

Тепер нехай ψ\vert\psi\rangle — 9-кубітне кодування деякого стану кубіта. Якщо помилка UU відбулася на кубіті k,k, отримуємо стан Ukψ,U_k \vert\psi\rangle, який можна виразити як лінійну комбінацію операцій Паулі, що діють на ψ:\vert\psi\rangle:

Ukψ=αψ+βXkψ+γYkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + \gamma Y_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

На цьому етапі зробимо заміну Y=iXZ.Y = iXZ.

Ukψ=αψ+βXkψ+iγXkZkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + i \gamma X_kZ_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

Тепер розглянемо кроки виявлення та виправлення помилок, описані раніше. Можна думати про результати вимірювань трьох перевірок парності внутрішнього коду разом із перевіркою зовнішнього коду як про єдиний синдром із 8 бітів. Безпосередньо перед фактичними вимірюваннями у стандартному базисі, що породжують ці синдромні біти, стан має такий вигляд:

αI синдромψ+βXk синдромXkψ+iγXkZk синдромXkZkψ+δZk синдромZkψ\begin{gathered} \alpha\,\vert \mathbb{I} \text{ синдром}\rangle \otimes \vert\psi\rangle \\ + \beta\,\vert X_k \text{ синдром}\rangle \otimes X_k\vert\psi\rangle \\ + i \gamma\,\vert X_k Z_k \text{ синдром}\rangle \otimes X_k Z_k\vert\psi\rangle \\ + \delta\,\vert Z_k \text{ синдром}\rangle \otimes Z_k\vert\psi\rangle \end{gathered}

Уточнимо: на цьому етапі маємо дві системи. Система зліва — це 8 кубітів, які ми виміряємо для отримання синдрому, де I синдром,\vert \mathbb{I} \text{ синдром}\rangle, Xk синдром\vert X_k \text{ синдром}\rangle тощо позначають той 8-кубітний стан стандартного базису, який відповідає відповідній помилці (або її відсутності). Система справа — це 9 кубітів, які використовуються для кодування.

Зауважимо, що ці дві системи тепер (загалом) є скорельованими, і це є ключем до того, чому це спрацьовує. Вимірюючи синдром, стан 9 кубітів справа фактично колапсує до стану, в якому до одного з кубітів було застосовано помилку Паулі, узгоджену з виміряним синдромом. Більш того, сам синдром надає достатньо інформації для того, щоб скасувати помилку і відновити вихідне кодування ψ.\vert\psi\rangle.

Зокрема, якщо синдромні кубіти виміряно і виконано відповідні виправлення, отримуємо стан, який можна виразити у вигляді матриці густини:

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

де

ξ=α2I синдромI синдром+β2Xk синдромXk синдром+γ2XkZk синдромXkZk синдром+δ2Zk синдромZk синдром.\begin{aligned} \xi = & \vert\alpha\vert^2 \vert \mathbb{I} \text{ синдром}\rangle\langle \mathbb{I} \text{ синдром}\vert \\[1mm] & + \vert\beta\vert^2 \vert X_k \text{ синдром}\rangle\langle X_k \text{ синдром}\vert\\[1mm] & + \vert\gamma\vert^2 \vert X_k Z_k \text{ синдром}\rangle\langle X_k Z_k \text{ синдром}\vert\\[1mm] & + \vert\delta\vert^2 \vert Z_k \text{ синдром}\rangle\langle Z_k \text{ синдром}\vert. \end{aligned}

Найважливіше тут: це є добутковим станом. Вихідне, неушкоджене кодування є правим тензорним множником, а зліва маємо матрицю густини ξ,\xi, що описує випадковий синдром помилки. Більше немає жодної кореляції з системою справа, тобто тією, яка нам важлива, оскільки помилки було виправлено. На цьому етапі синдромні кубіти можна відкинути або скинути, щоб використовувати їх знову. Так випадковість — або ентропія, — породжена помилками, виводиться із системи.

Це і є дискретизація помилок для окремого випадку унітарних помилок. По суті, вимірюючи синдром, ми фактично проектуємо помилку на помилку, описану матрицею Паулі.

На перший погляд може здатися занадто гарним те, що ми можемо виправляти довільні унітарні помилки в такий спосіб, навіть помилки, які є мікроскопічними і самі по собі майже непомітними. Але важливо усвідомлювати: це унітарна помилка на одному кубіті, і через конструкцію коду поодинока операція на кубіті не може змінити стан логічного кубіта, який був закодований. Все, що вона може зробити, — це перевести стан за межі підпростору дійсних кодувань, але тоді виявлення помилок колапсує стан, а виправлення повертають його до початкового.

Довільні помилки на кубітах

Нарешті, розглянемо довільні помилки, які не обов'язково є унітарними. Точніше, розглянемо помилку, описану довільним каналом кубіта Φ.\Phi. Наприклад, це може бути канал дефазування або деполяризації, канал скидання або якийсь незвичний канал, про який ми ще не думали.

Першим кроком є розгляд довільного представлення Крауса для Φ.\Phi.

Φ(σ)=jAjσAj\Phi(\sigma) = \sum_j A_j \sigma A_j^{\dagger}

Це канал кубіта, тому кожне AjA_j є матрицею 2×2,2\times 2, яку можна виразити як лінійну комбінацію матриць Паулі.

Aj=αjI+βjX+γjY+δjZA_j = \alpha_j \mathbb{I} + \beta_j X + \gamma_j Y + \delta_j Z

Це дозволяє виразити дію помилки Φ\Phi на вибраний кубіт kk через матриці Паулі таким чином.

Φk(ψψ)=j(αjIk+βjXk+γjYk+δjZk)ψψ(αjIk+βjXk+γjYk+δjZk)\Phi_k \bigl( \vert\psi\rangle\langle\psi\vert\bigr) = \sum_j (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k) \vert\psi\rangle\langle\psi\vert (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k)^{\dagger}

Коротко кажучи, ми просто розклали всі матриці Крауса у вигляді лінійних комбінацій матриць Паулі.

Якщо тепер обчислити та виміряти синдром помилки і виправити виявлені помилки, ми отримаємо стан, подібний до того, який мали у випадку унітарної помилки:

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

де цього разу

ξ=j(αj2I синдромI синдром+βj2Xk синдромXk синдром+γj2XkZk синдромXkZk синдром+δj2Zk синдромZk синдром).\begin{aligned} \xi = & \sum_j \Bigl(\vert\alpha_j\vert^2 \vert \mathbb{I} \text{ синдром}\rangle\langle \mathbb{I} \text{ синдром}\vert \\[-3mm] & \qquad + \vert\beta_j\vert^2 \vert X_k \text{ синдром}\rangle\langle X_k \text{ синдром}\vert\\[2mm] & \qquad + \vert\gamma_j\vert^2 \vert X_k Z_k \text{ синдром}\rangle\langle X_k Z_k \text{ синдром}\vert\\[2mm] & \qquad + \vert\delta_j\vert^2 \vert Z_k \text{ синдром}\rangle\langle Z_k \text{ синдром}\vert \Bigr). \end{aligned}

Деталі тут дещо складніші та не наводяться повністю. Концептуально ідея є тією самою, що й у унітарному випадку.

Узагальнення

Дискретизація помилок узагальнюється на інші коди квантового виправлення помилок, включаючи ті, що можуть виявляти та виправляти помилки на кількох кубітах. У таких випадках помилки на кількох кубітах можна виразити як тензорні добутки матриць Паулі, і відповідно різні синдроми задають виправлення у вигляді операцій Паулі, які можуть виконуватися на кількох кубітах, а не лише на одному.

Знову ж таки, вимірюючи синдром, помилки фактично проектуються або колапсують на дискретну множину можливостей, представлену тензорними добутками матриць Паулі, і, виправляючи ці помилки Паулі, ми можемо відновити вихідний закодований стан. При цьому будь-яка випадковість, що виникає в процесі, переноситься до синдромних кубітів, які відкидаються або скидаються, тим самим виводячи породжену в цьому процесі випадковість із системи, що зберігає кодування.