Теорема об отсутствии клонирования и состояния Белла

Идея квантовой телепортации, мягко говоря, захватывающая, но она реализована учеными в реальной жизни на большом расстоянии. В этом посте будет показано, как мы можем думать и развивать интуицию для квантовой телепортации, а также обсуждаться простая квантовая схема для достижения такого подвига. Многие из понятий, которые будут введены здесь, например. квантовые вентили, тензорное произведение, состояния Белла и запутанность — все это обсуждалось ранее в отдельных постах, так что не стесняйтесь проверять их, если вам нужно.

Давайте представим сюжетную линию, чтобы наш процесс обучения был более увлекательным. Это история любви двух любимых персонажей всего научного сообщества — Алисы и Боба, которые когда-то встречались, но больше не встречаются. Алисе хочется растопить лед и косвенно обратиться к Бобу. Она помнит, что они вместе когда-то создали состояние Белла (запутанное состояние). Мы увидим, как квантовая телепортация поможет Алисе отправить кубит Бобу. Давайте начнем -

1. Теорема об отсутствии клонирования:

Сначала мы сосредоточимся на том, почему Алисе нужно телепортировать полученный кубит, а не просто копировать и отправлять его Бобу. Ответ кроется в теореме о запрете клонирования. Мы уже узнали о вентиле CNOT и давайте рассмотрим классический вентиль CNOT (думаем об этом как вентиль XOR) и классический бит x для копирования (в каком-то неизвестном состоянии), который действует как управляющий бит. Если мы инициализируем бит «блокнота» нулем, у нас будет два выходных бита, и оба будут равны x (см. рис. 1). Таким образом, можно скопировать классический бит, используя классический вентиль CNOT. Проблема с классическим вентилем XOR заключается в том, что он необратим, т. е. по выходным данным мы не можем определить входные данные. С другой стороны, мы знаем, что квантовые вентили могут быть представлены унитарными матрицами и они обратимы. Давайте рассмотрим квантовый вентиль CNOT и произвольный кубит для копирования. Мы делаем те же шаги, что и для копирования классического бита; Бит «блокнота» инициализирован равным 0, а произвольный кубит действует как бит управления.

Если мы рассмотрим произвольный кубит вида |ψ⟩=α|0⟩ + β |1⟩, то наше входное состояние будет — |ψ⟩ ⊗ |0⟩ = α|00⟩ + β |10⟩. Копирование этого произвольного кубита должно привести к — |ψ⟩ ⊗ |ψ⟩ = α²|00⟩ + αβ |10⟩ + αβ |01⟩ + β²|11⟩. Поскольку мы применяем вентиль CNOT к входному состоянию |ψ⟩ ⊗ |0⟩, если только αβ = 0, схема не может скопировать произвольный кубит. На самом деле это часть Теоремы о запрете клонирования, которая утверждает, что невозможно создать идентичную копию произвольного кубита. Теперь мы можем понять, что Алиса может отправить кубит только через телепортацию; но как это сделать? Давайте создадим протокол телепортации.

2. Протокол телепортации:

2.1. Разделение запутанной пары:

Два наших наблюдателя, Алиса и Боб, которые встречались, но теперь расстались и живут далеко друг от друга. Пока они были вместе, они генерировали ЭПР-пару (состояние Белла), и каждый из них занимал по одному кубиту ЭПР-пары в качестве памяти при разделении. После всех этих лет Алиса наконец решила начать процесс исправления и послать сигнал Бобу. Проблема в том, что она решила доставить кубит |χ⟩, состояние которого она не знает. Сначала рассмотрим запутанную пару, которую они создали —

Первый член пары принадлежит Алисе, а другой — Бобу.

Алиса хочет отправить состояние |χ⟩=α|0⟩+β|1⟩ Бобу. На данный момент хорошо понимать, что даже если бы Алиса знала состояние |χ⟩, его точное описание потребовало бы бесконечного количества классической информации, как |χ⟩ принимает значение в непрерывном пространстве (из-за α и β).

2.2 Алиса применяет шлюз CNOT, за которым следует шлюз H:

Мы уже обсудили различные схемы с использованием CNOT и H-вентиля, так что вы можете оглянуться назад, но здесь мы обсуждаем результат того, что делает Алиса. Сначала давайте явно напишем состояние ввода —

Расширяя это (используя тензорное произведение), мы получаем -

Давайте применим вентиль CNOT к этому состоянию (уравнение 3) —

Перепишем уравнение (4) и рассчитаем применение вентиля H к этому состоянию —

На этом этапе важно отметить, что:CNOT, за которым следует H-вентиль, полностью противоположно тому, что мы делаем для создания пары Белла, т. е. сначала мы применяем вентиль Адамара для создания суперпозиции, а затем вентиль CNOT.

2.3. Алиса измеряет кубиты, которыми владеет:

Алиса измеряет 2 своих кубита, получая один из 4 возможных классических результатов |00⟩,|01⟩,|10⟩,|11⟩. Итак, сначала давайте изменим выражение в уравнении. (6).

Если Алиса измеряет |00⟩, то состояние коллапсирует, и у Боба будет α|0⟩+β|1⟩ и так далее… В зависимости от измерения Алисы кубит Боба закончится в одном из 4-х состояний и, что Алиса измерила, эта информация должна быть передана Бобу.

2.4. Алиса сообщает свой результат Бобу:

Квантовая телепортация не обеспечивает связь быстрее скорости света, потому что для завершения телепортации Алиса должна передать результат своего измерения Бобу по классическому каналу связи — телефону, электронной почте, радиоволне или чему-то еще, — который регулируется пределом скорости света. . Давайте посмотрим, основываясь на наблюдениях Алисы, что нужно сделать Бобу, чтобы получить состояние, которое Алиса хотела отправить ему —

Мы также можем обобщить операцию преобразования, которую Боб должен выполнить над своим кубитом, чтобы восстановить кубит, телепортированный Алисой как: ZᵃXᵇ, где a,b могут принимать значения 0 и 1.

После успешной телепортации кубита мы можем надеяться, что Боб перезвонит Алисе, и они снова помирятся.. :) Но как мы можем построить этот протокол телепортации, используя квантовую схему? Смотрим ниже —

3. Построение схемы телепортации:

Чтобы построить схему телепортации, мы вспоминаем несколько важных моментов —

  • Задействованы 3 кубита, 2 из которых принадлежат Алисе, а один принадлежит Бобу.
  • Алиса получает результат измерения в классических битах 00, 01, 10, 11, т.е. нужны классические регистры, которые будут использоваться для хранения результата измерения.
  • Сначала нам нужно создать пару колоколов (H и CNOT).
  • Выполните то, что сделала Алиса (CNOT, затем H).
  • Измерьте и сообщите результат Бобу.
  • Выполните то, что сделал Боб, в зависимости от результата Алисы.

Мы уже подробно обсуждали создание пары ЭПР ранее, рекомендую вам проверить это подробнее. Давайте начнем -

import qiskit as q
import matplotlib.pyplot as plt
qr = q.QuantumRegister(3, name=”q”)
crz = q.ClassicalRegister(1, name=”crz”)
crx = q.ClassicalRegister(1, name=”crx”)
teleport_circuit = q.QuantumCircuit(qr, crz, crx)

Определим шаги пары ЭПР в функции

def epr_pair(qc, a, b):
‘’’
qc is the quantum circuit
a, b are two different qubits
‘’’
  qc.h(a)
  qc.cx(a, b)

Мы можем создать пару EPR, используя вышеупомянутую вспомогательную функцию.

epr_pair(teleport_circuit, qr[1], qr[2])
teleport_circuit.draw()

Схема теперь выглядит так, как показано ниже:

Важно отметить, что мы используем 1-й и 2-й кубит для создания пары EPR, которая используется Алисой и Бобом, и мы оставляем 0-й кубит, который будет использоваться позже как кубит Алисы, которую она хочет телепортировать.

Теперь мы предполагаем, что Алиса владеет 1-м кубитом, а Боб владеет 2-м кубитом после того, как они разделились. Мы сосредоточимся на преобразовании, которое Алиса применяет в процессе отправки нужного ей кубита. Этот бит будет действовать как бит управления, а бит члена EPR будет целевым битом —

def alice_steps(qc, psi, a):
  qc.cx(psi, a)
  qc.h(psi)

Как и раньше, мы можем применить эту вспомогательную функцию и включить эти шаги в схему телепортации —

teleport_circuit.barrier() 
alice_steps(teleport_circuit, qr[0], qr[1])
teleport_circuit.draw()

Барьер обеспечивает компиляцию схемы для отдельных частей схемы, так что любые оптимизации или перезаписи будут действовать только между барьерами, а без барьера они воздействуют на всю схему. На данный момент вы можете думать об этом как о генерации пары ЭПР как о процессе, отдельном от шагов Алисы.

Теперь Алиса измерит результат после этой операции и поместит результаты в два отдельных классических регистра.

def alice_measure(qc, a, b):
  qc.barrier()
  qc.measure(a, 0) 
  qc.measure(b, 1)

Алиса измеряет первый кубит и помещает его в первый классический регистр и так далее. Мы можем использовать эту вспомогательную функцию для расширения схемы телепортации —

alice_measure(teleport_circuit, 0, 1)
teleport_circuit.draw()

Здесь 0-й кубит — это тот, который она хочет отправить, а 1-й кубит — это одна из пар EPR, как мы обсуждали ранее.

После измерения Алиса сообщает результат Бобу, и Боб применяет преобразование в зависимости от результатов, как показано ниже:

def bob_transform(qc, bob_bit, crz, crx):
  qc.x(bob_bit).c_if(crx, 1)
  qc.z(bob_bit).c_if(crz, 1)

Таким образом, Боб применит вентиль x и/или z на основе результата в классическом регистре (c_if). Давайте включим это в схему телепортации —

teleport_circuit.barrier()
bob_transform(teleport_circuit, qr[2], crz, crx)
teleport_circuit.draw()

Использование Qiskit для имитации схемы телепортации:

Чтобы смоделировать схему, сначала рассмотрим случайный кубит, который Алиса хочет отправить. Давайте инициализируем кубит Алисы (q_0) с помощью Qiskit, как показано ниже:

from qiskit.quantum_info import random_statevector
psi = random_statevector(2, seed=10)
print (‘check the qubit Alice wants to teleport: ‘, psi, type(psi.data))
>>> check the qubit Alice wants to teleport: Statevector([0.07893689–0.14696924j, 0.58314028+0.79505749j],
 dims=(2,)) <class ‘numpy.ndarray’>

Мы можем визуализировать этот случайный вектор в сфере Блоха, как показано ниже:

q.visualization.plot_bloch_multivector(psi)

Поскольку случайное состояние имеет вид α|0⟩ + β|1⟩, мы также можем проверить, что сумма комплексных амплитуд этого случайного состояния равна 1 (α² + β² = 1).

Поскольку в qiskit начальным состоянием кубита является |0⟩, мы инициализируем его состоянием |χ⟩, как показано ниже:

from qiskit.extensions import Initialize
init_qubit = Initialize(psi.data)
init_qubit.label = “init”

Используя это начальное состояние, давайте построим схему телепортации, как мы описали выше, объединив все шаги —

qc_new_teleport = q.QuantumCircuit(qr, crz, crx)
qc_new_teleport.append(init_qubit, [qr[0]]) 
# append the initial state in the 0th bit
qc_new_teleport.barrier()
epr_pair(qc_new_teleport, qr[1], qr[2])
qc_new_teleport.barrier()
alice_steps(qc_new_teleport, qr[0], qr[1])
alice_measure(qc_new_teleport, qr[0], qr[1])
bob_transform(qc_new_teleport, qr[2], crz, crx)
qc_new_teleport.draw()

Мы также можем добавить некоторые настройки в визуализацию схемы телепортации —

style = {‘backgroundcolor’: ‘lavender’, ‘dpi’:200, ‘subfontsize’:10}
qc_new_teleport.draw(output=’mpl’,scale=0.8, style=style)

Поскольку мы планируем проверить телепортацию, давайте сначала подумаем, чего именно мы ожидаем. Случайно инициализированный кубит (q_0), который был у Алисы, должен быть телепортирован к Бобу (q_2). Если мы запустим симуляцию тестового вектора, мы ожидаем получить начальный вектор состояния в |q_2⟩, а состояния |q_0⟩, |q_1⟩ схлопнутся либо в |0⟩, |1⟩ (это потому, что мы выполняем измерение на них). Давай проверим -

Я буду использовать симулятор Qiskit Aer с бэкендом qasm_simulator, который отвечает за локальный запуск квантовой схемы и возврат результатов.

statevec_sim = q.Aer.get_backend(‘statevector_simulator’)
qobj = q.assemble(qc_new_teleport)
out_vector = statevec_sim.run(qobj).result().get_statevector()
q.visualization.plot_bloch_multivector(out_vector)

Мы можем проверить этот шаг и всегда гарантированно получим вектор состояния |q_2⟩ в случайном состоянии, которое хотела отправить Алиса. Другие кубиты будут либо 0/1, так как они будут коллапсировать в этих состояниях в результате измерений.

Наконец-то мы подошли к концу этой удивительной истории любви, где Алиса смогла успешно телепортировать кубит к Бобу, и поскольку, как только они поделились парой ЭПР, Алиса смогла телепортировать случайный кубит к Бобу.

В квантовом компьютере трудно подтвердить/проверить телепортацию, потому что, если мы измерим телепортированный кубит, он рухнет либо до 0/1, поэтому мы используем немного другую технику, и я оставлю это обсуждение в своем блокноте.

Надеюсь, у вас есть важные концепции, и оставайтесь сильными, ура!

Использованная литература:

[1] Протокол телепортации Qiskit

[2] «Квантовые вычисления и квантовая информация»: М. Нильсен и И. Чуанг; Страницы — 25–28. 2010.

[3] Моя тетрадь.