Почему нельзя «просто посмотреть» и скопировать кубит
Два фундаментальных запрета: нельзя подсмотреть без возмущения и нельзя скопировать неизвестное состояние.
Теорема о неклонировании утверждает: не существует операции, которая копировала бы произвольное неизвестное квантовое состояние в другой кубит, не разрушая оригинал.
Почему нельзя подсмотреть
В классическом мире можно прочитать бит, не меняя его, и сделать сколько угодно копий. В квантовом — нет. Любое извлечение информации о состоянии — это измерение, а измерение коллапсирует суперпозицию. Нельзя «одним глазком» узнать амплитуды 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> с двумя независимыми копиями.
Итог
- Наблюдение неизбежно возмущает квантовое состояние.
- Произвольное неизвестное состояние нельзя скопировать (неклонирование) из-за линейности.
- Эти запреты — фундамент квантовой криптографии и причина сложной коррекции ошибок.