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

Контроль поширення помилок

Відмовостійкі квантові обчислення схожі на перегони між помилками і виправленням помилок. Якщо помилок достатньо мало, виправлення помилок успішно їх усуне; але якщо помилок занадто багато, виправлення не впорається.

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

Відправна точка для технічного обговорення цього питання — усвідомлення того, що двокубітні вентилі (або більш загально — вентилі з кількома кубітами) можуть поширювати помилки, навіть коли вони функціонують ідеально. Наприклад, розглянемо вентиль контрольованого НЕ і припустимо, що безпосередньо перед його виконанням на контрольному кубіті виникає помилка XX. Як ми вже спостерігали в уроці «Виправлення квантових помилок», це еквівалентно помилці XX, що виникає на обох кубітах після виконання CNOT. Аналогічна ситуація виникає для помилки ZZ, що діє на цільовому кубіті, а не на контрольному, перед виконанням CNOT.

Схемні представлення поширення помилок вентилями CNOT

Це є поширенням помилок, бо невдале розташування помилки XX або ZZ перед вентилем CNOT фактично перетворює її на дві помилки після нього. Це трапляється навіть тоді, коли сам CNOT ідеальний, і не слід забувати, що конкретний CNOT може бути шумним і тому може створювати скорельовані помилки на двох кубітах.

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

Схемні представлення поширення помилок кількома вентилями CNOT

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

Трансверсальні реалізації вентилів

Найпростіший відомий спосіб зменшити поширення помилок у відмовостійких квантових схемах — реалізовувати вентилі трансверсально, тобто будувати для них гаджети певної простої форми. Зокрема, гаджети мають бути тензорним добутком операцій (або, іншими словами, квантовою схемою глибини один), де кожна операція може діяти лише на одну позицію кубіта в кожному кодовому блоці, якого вона торкається. Найлегше це пояснити на прикладах.

Приклади трансверсальних реалізацій вентилів

Розглянемо наступний рисунок, що показує трансверсальну реалізацію вентиля CNOT. (Ця конкретна реалізація, де CNOT виконуються по одному кубіту, працює лише для CSS-кодів — але вона дійсно працює для всіх CSS-кодів.)

Трансверсальна реалізація вентиля CNOT

На цьому рисунку є два кодові блоки, кожен зображений як такий, що складається з п'яти кубітів (хоча їх може бути більше, як уже було зазначено). Схема праворуч має глибину один, і кожен з вентилів CNOT діє на єдину позицію кубіта в кожному блоці: і контрольний, і цільовий кубіти першого CNOT — це верхній кубіт (тобто кубіт 0 за нумерацією Qiskit), другого CNOT — другий зверху (тобто кубіт 1), і так далі. Отже, це трансверсальний гаджет.

Як другий приклад — фактично клас прикладів — розглянемо будь-який вентиль Паулі. Вентилі Паулі завжди можна реалізувати трансверсально для будь-якого стабілізаторного коду, будуючи гаджети з операцій Паулі. Зокрема, кожну операцію Паулі на логічному кубіті, закодованому стабілізаторним кодом, можна реалізувати трансверсально, обравши відповідну операцію Паулі на фізичних кубітах, що використовуються для кодування. Це узгоджується з фактом, що побіжно згадувався в уроці «Стабілізаторний формалізм»: з точністю до глобальної фази операції Паулі, що комутують з кожним генератором стабілізатора стабілізаторного коду, діють як операції Паулі на кубіті або кубітах, закодованих цим кодом.

Як конкретний приклад, розглянемо 99-кубітний код Шора, для якого стандартні базисні стани можна закодувати таким чином.

0122(000+111)(000+111)(000+111)1122(000111)(000111)(000111)\begin{aligned} \vert 0\rangle & \:\mapsto\: \frac{1}{2\sqrt{2}} (\vert 000\rangle + \vert 111\rangle) \otimes (\vert 000\rangle + \vert 111\rangle) \otimes (\vert 000\rangle + \vert 111\rangle) \\[3mm] \vert 1\rangle & \:\mapsto\: \frac{1}{2\sqrt{2}} (\vert 000\rangle - \vert 111\rangle) \otimes (\vert 000\rangle - \vert 111\rangle) \otimes (\vert 000\rangle - \vert 111\rangle) \end{aligned}

Вентиль XX на логічному кубіті, закодованому цим кодом, можна реалізувати трансверсально за допомогою 99-кубітної операції Паулі

ZIIZIIZIIZ \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I}

а вентиль ZZ на логічному кубіті можна реалізувати трансверсально за допомогою 99-кубітної операції Паулі

XXXIIIIII.X \otimes X \otimes X \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}.

Обидві ці операції Паулі мають вагу 33, що є мінімальною необхідною вагою. (99-кубітний код Шора має відстань 33, тому будь-яка нетривіальна операція Паулі ваги 22 або менше виявляється як помилка.)

І як третій приклад: 77-кубітний код Стіна (і всі кольорові коди) допускають трансверсальну реалізацію всіх вентилів Кліффорда. Ми вже побачили, як CNOT реалізуються трансверсально для будь-якого CSS-коду, тому залишається розглянути вентилі HH та SS. Вентиль Адамара, застосований до всіх 77 кубітів коду Стіна, еквівалентний HH, застосованому до логічного кубіта, що він кодує, а вентиль SS^{\dagger} (на відміну від SS), застосований до всіх 77 кубітів, еквівалентний логічному вентилю SS.

Поширення помилок для трансверсальних гаджетів

Тепер, знаючи, що таке трансверсальні реалізації вентилів, обговоримо їхній зв'язок із поширенням помилок.

Для трансверсальної реалізації однокубітного вентиля наш гаджет є просто тензорним добутком однокубітних вентилів, що діє на кодовий блок фізичних кубітів обраного коду виправлення помилок. Хоча будь-який з цих вентилів може збоїти і спричинити помилку, поширення помилок не відбудеться, бо не задіяні вентилі з кількома кубітами. Одразу після застосування гаджета виконується виправлення помилок; і якщо кількість помилок, спричинених гаджетом (або під час його виконання), достатньо мала, помилки буде виправлено. Тож якщо рівень помилок від несправних вентилів достатньо малий, виправлення помилок має хороші шанси на успіх.

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

Наприклад, у трансверсальній реалізації CNOT для CSS-коду, описаній вище, помилка XX може виникнути на верхньому кубіті верхнього кодового блоку безпосередньо перед виконанням гаджета, і перший CNOT всередині гаджета поширить цю помилку на верхній кубіт нижнього блоку. Однак дві помилки, що утворились, тепер знаходяться в різних кодових блоках. Тому, якщо наш код може виправити помилку XX, кроки виправлення помилок після гаджета виправлять дві помилки XX незалежно — бо в кожному кодовому блоці виникла лише одна помилка. Натомість, якщо б поширення помилок відбувалося всередині одного кодового блоку, це могло б перетворити помилку малої ваги на помилку великої ваги, яку код не може обробити.

Неуніверсальність трансверсальних вентилів

Для двох різних стабілізаторних кодів може виявитися, що конкретний вентиль можна реалізувати трансверсально одним кодом, але не іншим. Наприклад, хоча реалізувати вентиль TT трансверсально з 77-кубітним кодом Стіна неможливо, існують інші коди, для яких це можливо.

На жаль, для будь-якого нетривіального коду виправлення квантових помилок ніколи неможливо реалізувати універсальний набір вентилів трансверсально. Цей факт відомий як теорема Істіна-Кнілла.

Теорема

Теорема Істіна-Кнілла: Для будь-якого коду виправлення квантових помилок з відстанню щонайменше 2, набір логічних вентилів, що можна реалізувати трансверсально, породжує множину операцій, яка (з точністю до глобальної фази) є дискретною і тому не є універсальною.

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

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

Магічні стани

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

Реалізація вентилів за допомогою магічних станів

Почнемо з розгляду вентилів SS та TT, матричний опис яких такий.

S=(100i)=(100eiπ/2)andT=(1001+i2)=(100eiπ/4)S = \begin{pmatrix} 1 & 0\\ 0 & i \end{pmatrix} = \begin{pmatrix} 1 & 0\\ 0 & e^{i\pi/2} \end{pmatrix} \qquad\text{and}\qquad T = \begin{pmatrix} 1 & 0\\ 0 & \frac{1+i}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} 1 & 0\\ 0 & e^{i\pi/4} \end{pmatrix}

За визначенням, SS — це операція Кліффорда, тоді як TT — ні; реалізувати вентиль TT за допомогою схеми з вентилів Кліффорда (HH, SS і CNOT) неможливо.

Однак можна реалізувати вентиль TT (з точністю до глобальної фази) за допомогою схеми з вентилів Кліффорда, якщо додатково мати копію стану

T+=120+eiπ/421,T\vert {+} \rangle = \frac{1}{\sqrt{2}} \vert 0 \rangle + \frac{e^{i\pi/4}}{\sqrt{2}} \vert 1\rangle,

і дозволити стандартні базисні вимірювання та класично керовані вентилі. Зокрема, наступна схема показує один зі способів це зробити. Явище, що демонструється тут, — це дещо спрощений приклад квантової телепортації вентиля.

Схема, що зображує ін'єкцію магічного стану

Щоб перевірити правильність роботи схеми, спочатку обчислимо дію вентиля CNOT на вхід.

T+ψCNOT120Tψ+1+i21TψT \vert {+} \rangle \otimes \vert\psi\rangle \stackrel{\text{CNOT}}{\longmapsto} \frac{1}{\sqrt{2}} \vert 0\rangle \otimes T \vert \psi\rangle + \frac{1+i}{2} \vert 1\rangle \otimes T^{\dagger} \vert \psi\rangle

Тому вимірювання дає результати 00 та 11 з однаковою ймовірністю. Якщо результат 00, вентиль SS не виконується і вихідний стан дорівнює TψT\vert\psi\rangle; якщо результат 11, вентиль SS виконується і вихідний стан дорівнює STψ=Tψ.ST^{\dagger}\vert\psi\rangle = T\vert \psi\rangle.

Стан T+T\vert {+}\rangle у цьому контексті називається магічним станом, хоча він не є унікальним у цьому сенсі: інші стани також називаються магічними станами, коли їх можна використовувати аналогічним чином (для, можливо, інших вентилів і схем). Наприклад, заміна стану T+T\vert{+}\rangle на S+S\vert{+}\rangle і вентиля SS у схемі вище на вентиль ZZ реалізує вентиль SS — що може бути корисним для відмовостійких квантових обчислень з кодом, для якого вентилі SS не можна реалізувати трансверсально.

Відмовостійкі гаджети з магічних станів

Може бути незрозуміло, чому використання магічних станів для реалізації вентилів корисне для відмовостійкості. Наприклад, для описаної вище реалізації вентиля TT здається, що нам все одно потрібно застосувати TT до стану +\vert{+}\rangle, щоб отримати магічний стан, який ми потім використовуємо для реалізації TT. То в чому перевага цього підходу для відмовостійкості?

Ось три ключові тези, що дають відповідь на це питання.

  1. Створення магічних станів не вимагає застосування вентиля, який ми намагаємось реалізувати, до конкретного стану. Наприклад, застосування вентиля TT до стану +\vert {+} \rangle — не єдиний спосіб отримати стан T+T\vert{+}\rangle.

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

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

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

Схема, що зображує ін'єкцію магічного стану в закодований кубіт

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

Цей конкретний рисунок, таким чином, показує, що ми вже маємо відмовостійкі гаджети для вентилів CNOT та SS. Для кольорового коду ці гаджети можуть бути трансверсальними; для поверхневого коду (або будь-якого іншого CSS-коду) CNOT можна виконати трансверсально, тоді як гаджет для SS може сам бути реалізований за допомогою магічних станів, як раніше було показано. (На рисунку також зазначається, що є відмовостійкий гаджет для виконання стандартного базисного вимірювання, що ми досі ігнорували. Для деяких спеціально підібраних кодів це справді може бути викликом, але для CSS-коду це питання вимірювання кожного фізичного кубіта з подальшою класичною постобробкою.)

Реалізація тому є відмовостійкою, якщо ми маємо кодування магічного стану T+.T\vert{+}\rangle. Але ми досі не розглянули питання, як отримати кодування цього стану. Один зі способів отримати закодовані магічні стани (або, точніше, поліпшити їх) — це процес, відомий як дистиляція магічних станів. Наступна діаграма ілюструє, як цей процес виглядає на найвищому рівні.

Схема, що представляє дистиляцію закодованих магічних станів

Кажучи словами: набір зашумлених закодованих магічних станів подається на вхід спеціальної схеми, відомої як дистилятор. Всі вихідні блоки, крім одного, вимірюються — тобто логічні кубіти вимірюються у стандартному базисі. Якщо будь-який з результатів вимірювання дорівнює 11, процес зазнав невдачі і має бути перезапущений. Якщо ж кожен результат вимірювання дорівнює 00, стан верхнього кодового блоку виявиться менш зашумленим закодованим магічним станом. Цей стан потім можна разом із чотирма іншими подати на вхід іншого дистилятора або використати для реалізації вентиля TT, якщо він вважається достатньо близьким до справжнього закодованого магічного стану. Звичайно, процес повинен десь почати, і один з варіантів — підготувати їх нефальтотолерантно.

Існують різні відомі способи побудови самого дистилятора, але вони тут не розглядатимуться. На логічному рівні типовий підхід — що, примітно і дещо несподівано, — це запустити кодувальну схему для стабілізаторного коду у зворотному напрямку! Це може бути інший стабілізаторний код, ніж той, що використовується для виправлення помилок. Наприклад, можна використовувати поверхневий або кольоровий код для виправлення помилок, але запустити кодер для 55-кубітного коду у зворотному напрямку для дистиляції магічних станів. Кодувальні схеми для стабілізаторних кодів вимагають лише вентилів Кліффорда, що спрощує відмовостійку реалізацію дистилятора. На практиці специфіка залежить від використовуваних кодів.

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

Відмовостійке виправлення помилок

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

Розглянемо, наприклад, тип схеми, описаний в уроці «Стабілізаторний формалізм» для недеструктивного вимірювання генераторів стабілізатора за допомогою оцінки фази. Ці схеми явно не є відмовостійкими, бо вони можуть спричинити поширення помилок всередині кодового блоку, на якому вони працюють. Це може здаватися досить проблематичним, але існує кілька відомих способів виконати виправлення помилок відмовостійко, не допускаючи поширення помилок всередині кодових блоків, що виправляються.

Один метод відомий як виправлення помилок Шора, бо його першим відкрив Пітер Шор. Ідея полягає у виконанні вимірювань синдромів за допомогою так званого котячого стануnn-кубітного стану вигляду

120n+121n,\frac{1}{\sqrt{2}} \vert 0^n \rangle + \frac{1}{\sqrt{2}} \vert 1^n \rangle,

де 0n0^n та 1n1^n означають рядки з нулів і одиниць довжини nn. Наприклад, це стан ϕ+\vert\phi^+\rangle при n=2n=2 і стан GHZ при n=3n=3, але загалом виправлення помилок Шора вимагає такого стану, де nn дорівнює вазі генератора стабілізатора, що вимірюється.

Як приклад, схема, показана тут, вимірює генератор стабілізатора вигляду P2P1P0.P_2\otimes P_1 \otimes P_0.

Схема виявлення помилок Шора

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

Альтернативний метод відомий як виправлення помилок Стіна. Цей метод працює по-іншому і підходить лише для CSS-кодів. Ідея полягає в тому, що ми насправді не виконуємо вимірювання синдромів на закодованих квантових станах у схемі, яку намагаємося запустити, а натомість навмисно поширюємо помилки на допоміжну систему, а потім вимірюємо цю систему і класично виявляємо помилки. Наступні схеми ілюструють, як це можна зробити для виявлення помилок XX та ZZ відповідно.

Схема виявлення помилок Стіна

Пов'язаний метод, відомий як виправлення помилок Кнілла, розширює цей метод на довільні стабілізаторні коди за допомогою телепортації.