Коди повторення
Почнемо урок з розгляду кодів повторення. Коди повторення не захищають квантову інформацію від усіх типів помилок, які можуть виникати на кубітах, але вони є основою для 9-кубітного коду Шора, який ми розглянемо в наступному розділі, а також корисні для пояснення основ виправлення помилок.
Класичне кодування та декодування
Коди повторення є надзвичайно базовими прикладами кодів виправлення помилок. Ідея полягає в тому, що ми можемо захистити біти від помилок, просто повторивши кожен біт певну кількість разів.
Зокрема, спочатку розглянемо 3-бітовий код повторення суто в контексті класичної інформації. Цей код кодує один біт у три, повторюючи його тричі, тобто кодується як а — як
Якщо нічого не піде не так, ми очевидно можемо розрізнити два варіанти вихідного біта за їх кодуваннями. Суть у тому, що якщо трапилася помилка і один із трьох бітів перевернувся, тобто 0 змінилося на 1 або 1 — на 0, то ми все одно можемо визначити, яким був вихідний біт, з'ясувавши, яке з двох двійкових значень зустрічається двічі. Еквівалентно, можна декодувати, обчислюючи мажоритарне значення (тобто двійкове значення, яке зустрічається найчастіше).
Звичайно, якщо 2 або 3 біти кодування перевернуться, декодування не спрацює коректно і буде відновлен о неправильний біт, але якщо перевернеться не більше ніж 1 із 3 бітів, декодування буде правильним. Це типова властивість кодів виправлення помилок загалом: вони можуть дозволяти виправлення помилок, але лише за умови, що їх не надто багато.
Зменшення шуму для двійкового симетричного каналу
Як приклад ситуації, де застосування коду повторення може зменшити ймовірність помилки, припустимо, що наша мета — передати один біт гіпотетичному отримувачу, і ми можемо передавати біти через так званий двійковий симетричний канал, який незалежно перевертає кожен переданий біт з певною ймовірністю Тобто з ймовірністю отримувач отримує саме той біт, що був надісланий, але з ймовірністю біт перевертається і отримувач отримує протилежне значення.
Отже, якщо ми вирішимо не використовувати 3-бітовий код повторення і просто надішлемо потрібний біт каналом, отримувач отримає неправильний біт з імовірністю З іншого боку, якщо ми спочатку закодуємо потрібний біт за допомогою 3-бітового коду повторення, а потім надішлемо кожен із трьох бітів кодування каналом, кожен із них незалежно перевернеться з імовірністю Шанси перевертання біта тепер більші, бо є три біти замість одного, але якщо перевернеться не більше одного, отримувач декодує правильно. Помилка після декодування залишається лише тоді, коли два або більше бітів перевернулися під час передачі.
Імовірність того, що два біти перевернуться під час передачі, дорівнює — це для кожног о з трьох варіантів того, який біт не перевернувся — а ймовірність того, що всі три біти перевернуться, дорівнює Загальна ймовірність перевертання двох або трьох бітів:
Для значень менше половини це призводить до зменшення ймовірності того, що отримувач отримає неправильний біт. Шанс помилки все ще залишається, але код зменшує його ймовірність. (Для значень більше половини, навпаки, код фактично збільшує ймовірність того, що отримувач отримає неправильний біт.)
Кодування кубітів
3-бітовий код повторення є класичним кодом виправлення помилок, але ми можемо розглянути, що відбудеться, якщо спробувати використати його для захисту кубітів від помилок. Як ми побачимо, це не дуже вражаючий квантовий код виправлення помилок, бо насправді він робить деякі помилки більш імовірними. Проте він є першим кроком до коду Шора і стане нам у пригоді з педагогічної точки зору.
Щоб було зрозуміло: коли ми говоримо про використання 3-бітового коду повторення для кубітів, ми маємо на увазі кодування кубіта, де стани стандартного базису повторюються тричі, так що вектор стану одного кубіта кодується так:
Це кодування легко реалізується такою квантовою схемою, яка використовує два ініціалізованих робоч их кубіти та два вентилі CNOT.
Зауваж, зокрема, що це кодування не те саме, що потрійне повторення квантового стану, тобто кодування вигляду Таке кодування не може бути реалізоване для невідомого квантового стану через теорему про заборону клонування.
Помилки перевертання біта
Припустимо тепер, що після виконання кодування трапляється помилка. Зокрема, нехай вентиль тобто перевертання біта, відбувається на одному з кубітів. Наприклад, якщо середній кубіт зазнає перевертан ня біта, стан трьох кубітів перетворюється на такий:
Звісно, це не єдиний можливий тип помилки — і також варто поставити під сумнів припущення, що помилка має форму ідеальної унітарної операції. Ми повернемося до цих питань в останньому розділі уроку, а поки що можемо розглядати помилку такого виду як один можливий тип помилки (хоч і фундаментально важливий).
Зі математичного виразу для стану вище видно, що середній біт відрізняється від решти всередині кожного кету. Але припустимо, що ти маєш три кубіти і не знаєш їхній стан. Якщо ти підозрюєш, що могло відбутися перевертання біта, одним з варіантів перевірки була б стандартна базисна вимірювання, яке в даному випадку показало б або з ймовірностями та відповідно. У будь-якому разі ми б дійшли висновку, що середній біт перевернувся — але, на жаль, втратили б вихідний квантовий стан Це стан, який ми намагаємось захистити, тому вимірювання у стандартному базисі не є задовільним варіантом.
Натомість можна скористатися такою квантовою схемою, подаючи закодований стан на три верхніх кубіти. Ця схема неруйнівно вимірює парність станів стандартного базису двох верхніх кубітів і двох нижніх кубітів 3-кубітного кодування.
За умови, що перевернувся не більш ніж один біт, з результатів вимірювань можна легко визначити місце перевертання біта (або його відсутність). Зокрема, як ілюструють такі чотири схеми, результат вимірювання вказує на відсутність перевертання біта, тоді як три інші варіанти вказують, який кубіт зазнав перевертання.
Що надзвичайно важливо: стан трьох верхніх кубітів не колапсує ні в одному з випадків, що дозволяє виправити помилку перевертання біта — просто застосувавши ще одне перевертання за допомогою вентиля У таблиці нижче наведено стани, які ми отримуємо при не більш ніж одному перевертанні біта, результати вимірювань (які у контексті виправлення помилок називаються синдромом) та виправлення, необхідні для повернення до вихідного кодування.
| Стан | Синдром | Виправлення |
|---|---|---|
Ще раз нагадаємо: ми розглядаємо лише можливість того, що перевернувся не більш ніж один біт. При двох або трьох перевертаннях це не спрацює коректно, а також ми не розглядали інші можливі помилки, крім перевертань бітів.