Skip to content

Квантова телепортація: Перенос інформації на квантовому рівні

Опубліковано: at 15:22

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

Вступ

Квантова телепортація - це дивовижне явище квантової механіки, яке дозволяє передавати квантовий стан однієї частинки на іншу без фізичного переміщення частинки через простір. Це досягається за допомогою заплутаних частинок та класичного каналу зв’язку. У цій статті ми розглянемо основи квантової телепортації та продемонструємо її реалізацію за допомогою Qiskit, платформи для квантового програмування від IBM.

Основи квантової телепортації

Квантова телепортація базується на трьох основних етапах:

  1. Підготовка заплутаної пари: Дві частинки, зазвичай кубіти, створюються у заплутаному стані.
  2. Спільне вимірювання: Вихідний кубіт і один з кубітів заплутаної пари піддаються спільному вимірюванню.
  3. Передача та реконструкція: Результати вимірювання передаються класичним каналом, після чого інший кубіт заплутаної пари приводиться у стан вихідного кубіта за допомогою відповідних квантових операцій.

Реалізація квантової телепортації на Qiskit

Розглянемо приклад коду на Qiskit, який демонструє процес квантової телепортації.

from qiskit import QuantumCircuit
from qiskit.visualization import plot_histogram
from qiskit.result import marginal_distribution

from qiskit_aer import AerSimulator

sim = AerSimulator()

qc = QuantumCircuit(3, 3)

# Квантовий стан, який потрібно телепортувати (наприклад, |1> стан)
qc.x(0)
qc.barrier()

# Створення заплутаної пари між кубітами 1 і 2
qc.h(1)
qc.cx(1, 2)

# Спільне вимірювання між вихідним кубітом (кубіт 0) та кубітом заплутаної пари (кубіт 1)
qc.cx(0, 1)
qc.h(0)
qc.barrier()

qc.measure([0, 1], [0, 1])
qc.barrier()


# Виконання відповідних квантових операцій на кубіті 2 на основі результатів вимірювання
qc.cx(1, 2)
qc.cz(0, 2)


# Вимірювання кубіта 2 для перевірки телепортації
qc.measure(2, 2)

qc.draw(output='mpl', filename='teleportation.png')

statistics = sim.run(qc).result().get_counts()

filtered_statistics = marginal_distribution(statistics, [2])


plot_histogram(statistics, title='Teleportation', bar_labels=False, color='midnightblue', figsize=(8, 6), filename='result.png')
plot_histogram(filtered_statistics, title='Teleportation', bar_labels=False, color='midnightblue', figsize=(8, 6), filename='filtered_result.png')

Пояснення коду

  1. Підготовка вихідного стану: Кубіт 0 готується у стані |+> за допомогою гейта Адамара (qc.h(0)).
  2. Створення заплутаної пари: Кубіти 1 і 2 готуються у заплутаному стані за допомогою гейтів Адамара та CNOT (qc.h(1) та qc.cx(1, 2)).
  3. Спільне вимірювання: Кубіти 0 і 1 піддаються спільному вимірюванню за допомогою гейтів CNOT та Адамара, після чого виконується вимірювання (qc.cx(0, 1), qc.h(0) та qc.measure([0, 1], [0, 1])).
  4. Передача та реконструкція: На основі результатів вимірювання на кубіті 2 виконуються гейти CNOT та CZ (qc.cx(1, 2) та qc.cz(0, 2)).
  5. Перевірка телепортації: Кубіт 2 вимірюється для перевірки телепортації (qc.measure(2, 2)).
  6. За допомогою квантового симулятора Aer виконується симуляція квантового обчислення, після чого виводяться результати вимірювань у вигляді гістограми, схема заплутаності кубітів також виводиться у файл.

Результати

Схема звʼязків між кубітами:

Схема заплутаності

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

Результати телепортації

Як бачимо, квантовий стан 1 був успішно телепортований на кубіт 2(цифри на гісторамі потрібно читати навпаки, перше число - кубіт 2, а останнє число кубіт 0), що підтверджує коректність реалізації квантової телепортації.

Також можна вивести результати вимірювань кубіта 2 після фільтрації:

Результати телепортації після фільтрації

Висновок

Квантова телепортація є одним з ключових явищ квантової механіки, яке має великий потенціал для розвитку квантових технологій. За допомогою Qiskit можна легко моделювати та експериментувати з цим феноменом, що робить його доступним для дослідників та ентузіастів квантових обчислень.