ГоловнаСтаттіQuantum Physics

Квантова корекція помилок

Захист квантової інформації від помилок

mysimulator teamОновлено — липень 2026≈ 6 хв читання▶ Відкрити симуляцію

🔬 Що таке квантова корекція помилок

Основна проблема

Квантові комп'ютери надзвичайно чутливі до помилок. Декогеренція, шум та інші фактори руйнують квантові стани, що робить обчислення неправильними. Без QEC практичні квантові комп'ютери неможливі.

Чутливість: Навіть невеликі взаємодії з середовищем руйнують квантові стани. Фізичні кубіти мають високий рівень помилок (~10⁻²-10⁻³).

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

Неможливість простого копіювання: Теорема про відсутність клонування забороняє копіювати квантові стани, тому класичні методи корекції помилок не працюють.

Рішення: QEC використовує надлишковість (багато фізичних кубітів для одного логічного) та синдромне вимірювання для детектування та виправлення помилок.

Логічні vs фізичні кубіти

Фізичні кубіти: Реальні квантові системи (наприклад, надпровідникові ланцюги), що мають високий рівень помилок та короткий час когерентності.

Логічні кубіти: Віртуальні кубіти, закодовані в багатьох фізичних кубітах. Мають значно нижчий рівень помилок завдяки QEC.

Overhead: Потрібно багато фізичних кубітів (десятки, сотні) для одного логічного кубіта. Це "ціна" QEC.

Мета: Створити логічні кубіти з помилками <10⁻⁶-10⁻⁹, навіть якщо фізичні кубіти мають помилки ~10⁻²-10⁻³.

Принцип синдромного вимірювання

Синдроми: Замість вимірювання логічного стану (що руйнує квантову інформацію), вимірюємо стабілізатори — оператори, що комутують з кодованим станом.

Не руйнує інформацію: Синдромне вимірювання не руйнує логічний стан, але розкриває інформацію про помилки.

Детектування: Ненульовий синдром вказує на наявність помилки. Нульовий синдром означає відсутність помилок.

Виправлення: На основі синдрому застосовуємо операцію виправлення, не знаючи логічного стану.

⚠️ Типи квантових помилок

Паулівські помилки

Квантові помилки можна описати через оператори Паулі:

X (бітова помилка): Перевертає біт: |0⟩ → |1⟩, |1⟩ → |0⟩. Аналогічно класичній бітовій помилці.

Z (фазова помилка): Змінює фазу: |0⟩ → |0⟩, |1⟩ → -|1⟩. Унікальна для квантових систем, немає класичного аналога.

Y (комбінована помилка): Y = iXZ, комбінація бітової та фазової помилки.

I (ідентичність): Відсутність помилки.

Неперервні помилки

Відмінність від класичних: Класичні помилки дискретні (0 або 1), квантові помилки неперервні (можуть бути будь-якою комбінацією X, Y, Z).

Декомпозиція: Будь-яку помилку можна розкласти на суперпозицію паулівських помилок. QEC працює з паулівськими помилками.

Дефазування: Неперервні фазові помилки можна розглядати як випадкові Z-помилки.

Джерела помилок

Декогеренція: Взаємодія з середовищем викликає T₁ та T₂ релаксацію, що призводить до X та Z помилок.

Контрольні помилки: Неідеальні вентилі викликають помилки в операціях.

Вимірювальні помилки: Неідеальні вимірювання можуть давати неправильні результати.

Crosstalk: Взаємодія між кубітами викликає небажані операції.

📐 Коди Шора

Історія та значення

Код Шора, запропонований Пітером Шором в 1995 році, був першим квантовим кодом корекції помилок, що захищав від бітових та фазових помилок.

Прорив: Показав, що QEC можлива, незважаючи на теорему про відсутність клонування.

Структура: Використовує 9 фізичних кубітів для захисту 1 логічного кубіта.

Двошарова структура: Перший шар захищає від бітових помилок (X), другий шар захищає від фазових помилок (Z).

Структура коду

Бітовий шар: Використовує класичний код повторення (3 кубіти для 1 біта) для захисту від X-помилок.

Фазовий шар: Застосовує той самий принцип до фазових помилок через заплутаність.

Стабілізатори: Набір операторів, що залишають кодований стан незмінним. Ненульові синдроми вказують на помилки.

Вимірювання: Вимірюємо стабілізатори для детектування помилок без руйнування логічного стану.

Приклад: Код Шора для |0⟩

Логічний |0⟩ кодується як:

|0L⟩ = (|000⟩ + |111⟩) ⊗ (|000⟩ + |111⟩) ⊗ (|000⟩ + |111⟩) / √8

Це забезпечує захист від одиночних X та Z помилок на будь-якому фізичному кубіті.

Якщо виникає помилка (наприклад, X на першому кубіті), синдромне вимірювання виявить це, і ми можемо виправити помилку, застосувавши X до першого кубіта.

жива демонстрація · пов'язана симуляція● LIVE

🌐 Поверхневі коди

Топологічні коди

Поверхневі коди — це топологічні QEC коди, що мають низький поріг помилок та відносно ефективну реалізацію.

Топологія: Помилки виявляються через топологічні властивості (замкнуті цикли на поверхні).

Поріг помилок: ~1% для поверхневих кодів, що є одним з найнижчих порогів серед QEC кодів.

Масштабування: Відстань коду (d) визначає кількість помилок, які можна виправити. Потрібно ~2d² фізичних кубітів для одного логічного кубіта.

Код торуса

Структура: Кубіти розташовані на поверхні торуса (бублика).

Переваги: Періодичні граничні умови, симетрія, зручність реалізації.

Вимоги: Потрібно ~2d² фізичних кубітів для відстані d.

Застосування: Популярний для досліджень та експериментів.

Код площини

Структура: Кубіти на площині з граничними умовами.

Переваги: Простіша реалізація, менше кубітів ніж торус (для малих відстаней).

Вимоги: Потрібно ~(d+1)² фізичних кубітів для відстані d.

Застосування: Реалізований на реальних квантових пристроях (наприклад, Google Sycamore).

Стабілізаторні коди

Визначення: Клас QEC кодів, що використовують стабілізаторні оператори для опису кодового простору.

Стабілізатори: Набір паулівських операторів, що комутують з усіма кодованими станами.

Вимірювання: Вимірюємо стабілізатори для отримання синдромів помилок.

Приклади: Код Шора, поверхневі коди, коди CSS (Calderbank-Shor-Steane) є стабілізаторними.

⚙️ Операції QEC

Детектування помилок

Синдромне вимірювання: Вимірюємо стабілізатори для отримання синдромів (бітових рядків, що описують помилки).

Ансилла: Додаткові кубіти для вимірювання стабілізаторів. Не кодують інформацію, але потрібні для QEC.

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

Виправлення помилок

Декодування: На основі синдрому визначаємо, яка помилка сталася та де.

Застосування виправлення: Застосовуємо відповідну паулівську операцію (X, Y, або Z) для виправлення.

Алгоритми: Мінімальна вага декодування (MWD), максимальна ймовірність декодування тощо.

Логічні операції

Логічні вентилі: Операції на логічних кубітах, що зберігають структуру коду.

Трансверсальні вентилі: Вентилі, що застосовуються паралельно до фізичних кубітів, не руйнуючи код.

Не всі вентилі трансверсальні: Деякі вентилі (наприклад, T-вентиль) потребують спеціальних технік (магічні стани, distillation).

📊 Поріг помилок та масштабування

Поріг помилок

Визначення: Максимальний рівень фізичних помилок, при якому QEC може покращити якість (зменшити помилки логічних кубітів).

Поверхневі коди: Поріг ~1% (0.01) для помилок вимірювання та операцій.

Код Шора: Поріг ~10-15% для бітових помилок, але нижчий для фазових.

Нижче порога: Якщо фізичні помилки < порога, QEC зменшує помилки логічних кубітів.

Вище порога: Якщо помилки > порога, QEC не може покращити якість.

Overhead та масштабування

Overhead: Кількість фізичних кубітів, потрібних для одного логічного кубіта. Для поверхневих кодів: ~2d², де d — відстань коду.

Відстань: Визначає, скільки помилок можна виправити. Для виправлення t помилок потрібна відстань d = 2t + 1.

Масштабування: Для зменшення помилок логічних кубітів потрібно збільшувати відстань, що збільшує overhead.

Приклад: Для помилок логічного кубіта <10⁻⁶ може знадобитися відстань d=13, що означає ~338 фізичних кубітів на логічний.

Поточний стан

Досягнення: Деякі системи досягли порога помилок для поверхневих кодів (~1%).

Виклики: Потрібно багато фізичних кубітів, швидке детектування, надійні операції.

Майбутнє: Потрібні мільйони фізичних кубітів для корисних квантових алгоритмів з QEC.

📚 Гайд з прикладами

Приклад 1: Простий код повторення (бітові помилки)

Кодування: Логічний |0⟩ → |000⟩, логічний |1⟩ → |111⟩

Детектування: Вимірюємо парність (X₀X₁, X₁X₂). Якщо X₀X₁ = -1, є помилка між кубітами 0 та 1.

Виправлення: Якщо виявлено помилку на першому кубіті, застосовуємо X до нього.

Обмеження: Захищає тільки від X-помилок, не захищає від Z-помилок (фазових).

Приклад 2: Код Шора (бітові та фазові помилки)

Структура: 9 фізичних кубітів для 1 логічного.

Шар 1: Захист від X-помилок через код повторення (3 кубіти для 1 біта).

Шар 2: Захист від Z-помилок через заплутаність між шарами.

Стабілізатори: Вимірюємо X₀X₁, X₁X₂, Z₀Z₃, Z₃Z₆ тощо для детектування помилок.

Виправлення: На основі синдрому визначаємо та виправляємо помилку.

Приклад 3: Розрахунок overhead для поверхневого коду

Завдання: Скільки фізичних кубітів потрібно для логічного кубіта з відстанню d=5?

Розрахунок: Для поверхневого коду потрібно ~2d² фізичних кубітів.

Overhead = 2 × 5² = 2 × 25 = 50 фізичних кубітів на 1 логічний кубіт.

Здатність виправлення: Відстань d=5 означає здатність виправляти до 2 помилок (t = (d-1)/2 = 2).

Приклад 4: Поріг помилок

Сценарій: Поверхневий код з порогом 1% (0.01).

Випадок 1: Фізичні помилки = 0.5% (0.005) < порога. QEC зменшує помилки логічних кубітів.

Випадок 2: Фізичні помилки = 2% (0.02) > порога. QEC не може покращити якість.

Висновок: Потрібно зменшити фізичні помилки до <1% перед застосуванням QEC.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Double-Slit Experiment і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Double-Slit Experiment

Що ви знайшли?

Додати кроки відтворення (опційно)