Квантовые ошибки и декогеренция
Главное инженерное препятствие: кубиты теряют квантовость от любого взаимодействия со средой.
Декогеренция — потеря квантовых свойств (суперпозиции и запутанности) из-за неконтролируемого взаимодействия кубита с окружением.
Почему кубиты такие хрупкие
Кубит хранит информацию в тонких амплитудах и фазах. Любое случайное взаимодействие со средой — тепловой фонон, блуждающее магнитное поле, фотон — фактически «измеряет» кубит и разрушает его состояние. Время, за которое кубит сохраняет когерентность, измеряется микросекундами — миллисекундами. За это окно надо успеть выполнить все гейты и измерения. Отсюда два врага: декогеренция (состояние «расплывается») и ошибки гейтов (каждая операция неидеальна, точность ~99.9%, но при тысячах гейтов ошибки накапливаются).
Два типа квантовых ошибок
В отличие от классики, где бит может только «перевернуться» (0 в 1), у кубита ошибки богаче:
- Bit-flip — переворот, как гейт X (|0> становится |1>).
- Phase-flip — переворот фазы, как гейт Z (меняет относительную фазу). У классического бита аналога нет.
Любую квантовую ошибку можно разложить на комбинацию этих двух — это упрощает задачу коррекции.
Коррекция без копирования
Классическая коррекция тривиальна: храним три копии бита и голосуем. Но кубит копировать нельзя (неклонирование!) и нельзя измерять (коллапс!). Хитрость квантовой коррекции: один логический кубит кодируют в запутанное состояние нескольких физических, и измеряют не сами кубиты, а специальные «синдромы» — совместные чётности, которые говорят, какая ошибка случилась, не раскрывая само состояние. Покажем классическую аналогию голосования (квантовая сложнее, но идея избыточности та же).
def majority_vote(bits):
return 1 if sum(bits) > len(bits) / 2 else 0
# Логический бит = 0, закодирован тремя физическими. Один испортился шумом.
noisy = [0, 1, 0] # средний кубит перевернулся
recovered = majority_vote(noisy)
print('приняли:', noisy, '-> восстановили:', recovered)
noisy2 = [1, 1, 0] # логическая 1, один перевернулся
print('приняли:', noisy2, '-> восстановили:', majority_vote(noisy2))Вывод:
приняли: [0, 1, 0] -> восстановили: 0 приняли: [1, 1, 0] -> восстановили: 1
Как работает под капотом (NISQ)
Полноценная коррекция ошибок прожорлива: по оценкам, на один надёжный логический кубит нужны сотни — тысячи физических. Сегодняшние машины этого не тянут, поэтому нынешнюю эпоху называют NISQ (Noisy Intermediate-Scale Quantum) — «шумные кубиты среднего масштаба без полной коррекции». В NISQ-эре алгоритмы должны быть короткими, чтобы успеть отработать до декогеренции, и шумоустойчивыми. Переход к «отказоустойчивым» квантовым компьютерам с миллионами физических кубитов — главная инженерная цель десятилетия.
Частые ошибки
- «Коррекция = три копии и голосование». Для кубитов копирование запрещено; коррекция тоньше.
- Игнорировать phase-flip — у классики его нет, но для кубитов он так же опасен, как bit-flip.
- Считать число кубитов в пресс-релизе «полезными» кубитами. Это физические; логических после коррекции в сотни раз меньше.
Итог
- Декогеренция и ошибки гейтов делают кубиты хрупкими; окно работы — микросекунды.
- Квантовые ошибки бывают bit-flip и phase-flip; коррекция использует избыточность и измерение синдромов.
- Сейчас идёт NISQ-эра: шумные машины без полной коррекции.