Почему нельзя «просто посмотреть» и скопировать кубит

Два фундаментальных запрета: нельзя подсмотреть без возмущения и нельзя скопировать неизвестное состояние.

Теорема о неклонировании утверждает: не существует операции, которая копировала бы произвольное неизвестное квантовое состояние в другой кубит, не разрушая оригинал.

Почему нельзя подсмотреть

В классическом мире можно прочитать бит, не меняя его, и сделать сколько угодно копий. В квантовом — нет. Любое извлечение информации о состоянии — это измерение, а измерение коллапсирует суперпозицию. Нельзя «одним глазком» узнать амплитуды a и b: единственный доступ — статистика исходов, а каждый отдельный исход разрушает состояние. Чтобы оценить амплитуды, нужно много одинаково приготовленных копий — но приготовить их можно, только зная рецепт; скопировать готовый неизвестный кубит нельзя.

Теорема о неклонировании на пальцах

Идея доказательства проста и красива. Предположим, есть универсальный «копир» U, который для любого состояния делает из (psi, пустой) пару (psi, psi). Квантовые операции линейны. Если копир работает для |0> и для |1>, то на суперпозиции a·|0> + b·|1> линейность заставит его выдать a·|00> + b·|11> — а это запутанное состояние, а не две независимые копии a·|0>+b·|1>. Противоречие: одно и то же U не может одновременно правильно копировать базис и суперпозиции. Значит, универсального копира не существует.

Проверим численно, что «правильная копия» и «то, что выдаёт линейный копир» — разные векторы.

import math

a, b = math.sqrt(0.3), math.sqrt(0.7)

# Чего мы хотели бы: две независимые копии (psi тензор psi)
# (a|0>+b|1>) (x) (a|0>+b|1>) -> амплитуды при 00,01,10,11:
want = [a*a, a*b, b*a, b*b]

# Что даёт линейный копир, обученный на |0>->|00>, |1>->|11>:
got = [a, 0.0, 0.0, b]   # a|00> + b|11>

labels = ['00', '01', '10', '11']
for l, w, g in zip(labels, want, got):
    print(l, 'want=%.3f got=%.3f' % (w, g))

Вывод:

00 want=0.300 got=0.548
01 want=0.458 got=0.000
10 want=0.458 got=0.000
11 want=0.700 got=0.837

Амплитуды не совпадают — «копир» физически не может выдать настоящую копию суперпозиции.

Как работает под капотом

Неклонирование — не инженерное ограничение, а следствие линейности квантовой механики. У него огромные практические последствия: на нём держится квантовая криптография (подслушать канал, не оставив следов, нельзя) и оно объясняет, почему квантовую ошибку нельзя исправить наивным резервным копированием — приходится изобретать хитрую коррекцию ошибок (об этом будет отдельный раздел).

Частые ошибки

  • «Неклонирование значит, что нельзя передать кубит». Можно — телепортацией, но при этом оригинал разрушается, копии не остаётся.
  • «Можно скопировать, если состояние известно». Да — но это не клонирование неизвестного: вы просто заново готовите его по рецепту.
  • Путать запутанные a·|00>+b·|11> с двумя независимыми копиями.

Итог

  • Наблюдение неизбежно возмущает квантовое состояние.
  • Произвольное неизвестное состояние нельзя скопировать (неклонирование) из-за линейности.
  • Эти запреты — фундамент квантовой криптографии и причина сложной коррекции ошибок.
Проверьте себя
1. Что утверждает теорема о неклонировании?
AЛюбой кубит можно скопировать
BНельзя скопировать произвольное неизвестное квантовое состояние
CКубиты нельзя измерять
DКубиты нельзя передавать
2. Почему наивный копир выдаёт a|00>+b|11> вместо двух копий?
AИз-за шума
BИз-за линейности квантовых операций
CИз-за измерения
DИз-за нормировки
3. Какое практическое следствие у неклонирования?
AНевозможность вычислений
BОснова квантовой криптографии и причина сложной коррекции ошибок
CУскорение всех алгоритмов
DОтмена измерения