Перейти до основного вмісту

Природа квантових станів: приховані змінні проти нерівності Белла

Для цього модуля Qiskit in Classrooms студенти повинні мати налаштоване середовище Python з такими встановленими пакетами:

  • qiskit v2.1.0 або новіший
  • qiskit-ibm-runtime v0.40.1 або новіший
  • qiskit-aer v0.17.0 або новіший
  • qiskit.visualization
  • numpy
  • pylatexenc

Щоб налаштувати та встановити вказані пакети, перегляньте посібник Встановлення Qiskit. Щоб запускати завдання на справжніх квантових комп'ютерах, студентам потрібно буде зареєструватися в IBM Quantum®, дотримуючись кроків у посібнику Налаштування облікового запису IBM Cloud.

Цей модуль було протестовано, і він використав 12 секунд часу QPU. Це лише оцінка. Фактичне використання може відрізнятися.

# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'

Перегляньте огляд модуля від Dr. Katie McCormick нижче або натисни тут, щоб переглянути на YouTube.


Передумови

У багатьох обчисленнях у квантовій механіці ти починаєш із відомого стану системи, і цей стан зазвичай визначається через вимірювання. Сьогодні ми хочемо відповісти на запитання: «Що можна сказати про стан частинки до будь-якого вимірювання?» Очевидним наслідком є: «Як ми можемо знати, якщо нам не дозволено вимірювати?»

Це питання сягає корінням у ранні дні квантової механіки. Піонери галузі розділилися на фракції: Ейнштейн та багато інших стверджували, що частинка просто перебуває в якомусь невідомому стані до вимірювання. Інші — зокрема Макс Борн, а пізніше й Нільс Бор — висунули більш радикальне твердження: стан частинки до вимірювання є справді невизначеним природою, а не просто невідомим людям. Вимірювання тоді імовірнісно «колапсує» частинку у визначений стан. Ейнштейн, незадоволений таким поясненням, відомо зауважив: «Gott würfelt nicht», що приблизно перекладається як «Бог не грає в кості».

Протягом десятиліть після цієї суперечки багато хто вважав, що вона, можливо, ніколи не буде вирішена або що це питання точки зору. Але 1964 року Джон Белл, фізик із Північної Ірландії, написав статтю, в якій дослідив статистику певних експериментів, здатних остаточно відповісти на це питання. Він показав, що в конкретному тесті отримуєш один набір статистик, якщо квантові стани визначені (але невідомі), і інший набір статистик, якщо квантові стани невизначені природою.

Під час написання статті Белла експериментальні перевірки відповідної статистики були доступні лише дослідникам на самому передньому краї фізики. Але сьогодні IBM Quantum дала змогу студентам з усього світу використовувати справжні квантові пристрої — дистанційно через хмару та безкоштовно — щоб досліджувати природу квантових станів. Саме це ти будеш робити сьогодні.

Постановка уявного експерименту: заплутаність спінів

Існують процеси, в яких частинка без спіну розпадається на дві частинки, кожна з яких має спін. Оскільки спін є різновидом кутового моменту, закон збереження кутового моменту передбачає, що два продукти розпаду повинні мати строго протилежно орієнтовані спіни. Це дійсно спостерігається експериментально.

Приклад: нейтральний піон іноді розпадається на позитрон і електрон: π0e++e\pi^0\rightarrow e^+ + e^- Не переймайся, якщо не знаєш, що це за частинки, і не переймайся, якщо знаєш їх настільки добре, що розумієш: цей тип розпаду є відносно малоймовірним. Просто знай, що якщо одна з вихідних частинок має спін вгору, то інша повинна мати спін вниз, і навпаки. Звичайно, у напрямках «вгору» і «вниз» немає нічого особливого — те саме антипаралельне вирівнювання спостерігається при вимірюваннях вздовж того, що ми часто називаємо xx або yy. Цей розпад є переконливим контекстом для розгляду, оскільки ми можемо обійти питання про те, які вимірювання відбувалися в минулому: позитрон і електрон просто не існували до моменту розпаду.

Ми можемо дозволити π0\pi^0 мезонам розпадатися і спостерігати відхилення вихідних частинок під впливом неоднорідного магнітного поля. Неоднорідне поле, що використовується для відхилення спінів, часто називають пристроєм Штерна–Герлаха — на честь дослідників, які першими використали його, щоб (випадково) зібрати докази існування квантово-механічного спіну. Зауваж, що ця ситуація складніша за початковий експеримент, оскільки електрон і позитрон ще й заряджені (на відміну від атомів срібла в експерименті Штерна–Герлаха). Але ми знаємо, як заряджені частинки рухаються в магнітному полі, і можемо відняти цей ефект. Далі ми припустимо, що відхилення, що використовуються в наших обчисленнях, зумовлені спіном частинок, а не їхнім зарядом. Відповідно, для наших цілей не важливо, хто з спостерігачів отримає позитрон, а хто — електрон. Схема експерименту виглядає приблизно так:

Схема установки для EPR-експерименту. Джерело випускає одну частинку вліво і одну вправо. Кожна проходить через пристрій Штерна–Герлаха — неоднорідне магнітне поле та вимірювальний екран.

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

Якщо ми маємо джерело багатьох мезонів, ми можемо збирати статистику. Якщо спостерігач зліва і спостерігач справа (назвімо їх відповідно Лукасом і Ріанною) завжди вимірюють вздовж однієї осі, ця статистика не буде дуже цікавою: кожного разу, коли один вимірює «вгору», інший вимірює «вниз»; кожного разу, коли один вимірює «в сторінку», інший вимірює «зі сторінки» — і так далі. Однак якщо учасники можуть вільно вимірювати спін вздовж будь-якого напрямку, ми можемо виявити щось цікавіше.

Описаний вище експеримент, у якому частинки розлітаються зі спіновим кутовим моментом, який вимірюється двома спостерігачами, спочатку запропонували Ейнштейн, Подольський і Розен (EPR) у цій статті, і він іноді називається «EPR-експериментом».

Наші варіанти

Давай сформулюємо дві історичні точки зору чіткіше:

Варіант 1 (Ейнштейн): Два спіни (електрон і позитрон) є визначеними в тому сенсі, що результат будь-якого вимірювання вздовж будь-якої осі заздалегідь визначений природою, навіть якщо ми не знаємо цього результату. Можна уявити це так: спіни мають реальну, чітко визначену орієнтацію в просторі, яка нам невідома, але яка існує. Або це можна уявити як набір інструкцій, що визначають результати вимірювань вздовж xx, yy, zz або будь-якого проміжного напрямку. Вимірювання спіну позитрона (скажімо, вздовж z) примушує його орієнтуватися вздовж z або –z. Це не має причинно-наслідкового впливу на спін електрона, хоча ми знаємо, що спін електрона спочатку був протилежним спіну позитрона: якщо спін позитрона виявляється вздовж +z, то спін електрона вимірюється вздовж –z. Крім початкової умови — інструкцій, що зберігають кутовий момент (спіни антипаралельні) — між двома спінами немає жодного зв'язку. Цей варіант іноді називають «прихованими змінними»: проекції вздовж різних осей є визначеними, але прихованими від нас.

Варіант 2 (Борн): Обидва спіни перебувають у невизначених початкових станах… не просто невідомих, а фізично невизначених — без чіткої орієнтації чи інструкцій щодо результатів експериментів — аж до моменту вимірювання. Вимірювання спіну позитрона «колапсує» простір усіх можливостей до єдиного визначеного стану: або вздовж +z, або вздовж –z. Це вимірювання позитрона змушує спін електрона також «колапсувати» у чітко визначену проекцію вздовж z, строго протилежну до проекції позитрона. Цей ефект поширюється через простір між позитроном і електроном. Це називали «моторошною дією на відстані», хоча можна менш драматично назвати це «нелокальною фізикою».

Перевір своє розуміння

Прочитай запитання нижче, подумай над відповіддю, а потім натисни трикутник, щоб відкрити рішення.

Було б чудово розрізнити варіанти Ейнштейна і Борна експериментально. Які є експерименти, що дали б однакові результати незалежно від того, який варіант правильний? Чи можеш ти придумати експеримент, який дав би різні результати для двох варіантів? Примітка Було б дуже вражаюче, якби ти зміг придумати такий експеримент; людству знадобилися десятиліття, щоб його знайти.

Відповідь:

Якщо дотримуватися описаного досі експерименту (тобто нульового повного спіну з антипаралельними позитроном і електроном), то вимірювання обох спінів вздовж ±x\pm x, ±y\pm y або ±z\pm z завжди даватиме протилежні знаки завдяки збереженню кутового моменту — незалежно від того, який варіант правильний. Якщо виміряти спін однієї частинки (скажімо, електрона) вздовж одного напрямку (скажімо, +z+z), то спін іншої частинки, позитрона, виміряється вздовж z-z. Якщо натомість виміряти спін позитрона вздовж напрямку xx, результат +x+x або x-x буде однаково вірогідним. Це може бути пояснено тим, що так говорять приховані інструкції (Варіант 1 Ейнштейна), або тим, що після вимірювання спіну електрона оновлюється розподіл імовірностей спіну позитрона, а новий розподіл відповідає рівному розподілу між ±x\pm x (Варіант 2 Борна). Ці моменти детальніше пояснено нижче.

Відповідь лише трохи відрізнятиметься, якщо розглянути розпад частинки зі спіном 1, де два продукти розпаду (як позитрон і електрон) повинні мати паралельні спіни, а не антипаралельні. Якщо один виміряний вздовж +y+y, вимірювання іншої частинки вздовж осі yy також повинне дати +y+y, і так далі. Як і раніше, це могло б бути результатом будь-якого варіанту.

Решта цього уроку присвячена експерименту, який може розрізнити варіанти Ейнштейна і Борна, тому тут ми не вдаватимемось у деталі. Однак частина хитрості полягає у вимірюванні двох частинок вздовж різних напрямків (таких як xx і zz, або навіть якийсь напрямок між традиційними декартовими осями). Решта полягає в ретельному розгляді точної ймовірності отримання різних результатів, виходячи з передбачень квантової механіки та передбачень класичної інформації у вигляді прихованих змінних.

У будь-якому варіанті, якщо два спостерігачі — Лукас і Ріанна — вимірюють вздовж однієї осі, ми очікуємо, що вони отримають антипаралельні спіни, незалежно від того, який варіант правильний. Щоб зрозуміти чому, розглянь схеми нижче.

Три схеми. Перша показує два спінові вектори, орієнтовані в протилежних напрямках, що лежать на діагоналі між осями x і z. Далі, при вимірюванні вздовж z, один з друзів отримує спін вздовж від'ємного z, а інший — вздовж додатного z. Нарешті, показана ситуація для вимірювань вздовж осі x, при якій один вимірює спін вздовж від'ємного x, а інший — вздовж додатного x.

На рисунку вище показано варіант Ейнштейна. Напрямки спінів є протилежними та визначеними. При вимірюванні вздовж осі zz один буде вздовж +z+z, а інший — вздовж z-z. У нас немає підстав припускати, що позитрон буде вздовж +z+z, а електрон — вздовж z-z; рисунок лише показує, що спіни будуть виміряні у протилежних напрямках. Насправді, у варіанті Ейнштейна, даний спін не обов'язково має компоненту вздовж напрямку, що вимірюється. Найслабше твердження варіанту Ейнштейна полягає в тому, що існує деякий набір інструкцій, закодованих у спіні, які визначають результати вимірювань вздовж будь-якої осі. Нам не обов'язково уявляти ці інструкції у вигляді простого вектора (дивись схему нижче); до цього ми повернемось пізніше.

Три схеми. На першій більше не показані чіткі напрямки векторів, а натомість є список правил, що визначають результати вимірювань. Друга і третя схеми такі самі, як на попередньому рисунку, і показують вимірювання вздовж додатного/від'ємного z та вздовж додатного/від'ємного x.

На рисунку нижче показано варіант Борна, у якому напрямки спінів позитрона й електрона «розмиті» в розподілі ймовірностей і не мають певного напрямку. Не варто надто буквально сприймати форму розподілу. Кожен спін насправді може мати ненульову ймовірність вказувати в будь-якому напрямку, доки вони є протилежними один до одного; ми просто намалювали їх як частки кола, щоб можна було їх візуально розрізнити при обговоренні. Зауваж, що у варіанті Борна кутовий момент все одно повинен зберігатися. Тому якщо одна «хвиля ймовірності» «колапсує» так, що спін вказує вздовж +z+z, то інший вказуватиме вздовж z-z і відхилиться у протилежному напрямку. Варіанти виглядають ідентично.

Схема, що показує розмиту хмару можливих напрямків спінового вектора, після якої наведені ті самі результати вимірювань, що й на попередніх рисунках.

Але що відбувається, коли спостерігачі Л і Р можуть вимірювати вздовж будь-якої з трьох осей, кожна пара яких розведена на 120 градусів, як показано на рисунках 4 і 5? Кожен спостерігач може випадково вибрати, вздовж якої осі вимірювати спін (a, b або c). Обидва не зобов'язані вимірювати вздовж однієї осі. При вимірюванні кожен спостерігач може виявити або позитивну проекцію на обрану вісь, або від'ємну. Наприклад, Лукас і Ріанна можуть виміряти +a та –b або +b і +c. Зауваж: якщо вони випадково виберуть вимірювання вздовж однієї осі, вони ОБОВ'ЯЗКОВО отримають протилежні знаки проекцій: +a та –a, +b та –b, або +c та –c; вони не можуть обидва отримати, наприклад, +a. У наступному розділі ми розберемо, як обчислити ймовірність того, що Лукас і Ріанна отримають однаковий знак на виміряних осях (++ або ––) і протилежні знаки (+– або –+).

Схема, що показує два початкові спінові вектори, після яких наведені можливі вимірювання вздовж трьох прямих a, b і c, кожна з яких має додатний і від'ємний напрямок. Оскільки ці осі не є взаємно перпендикулярними, Лукас і Ріанна не виміряють спіни в протилежних напрямках, якщо тільки вони не оберуть вимірювання вздовж однієї й тієї ж осі.

Два рисунки вище ілюструють можливі інтерпретації прихованих змінних у цьому новому сценарії вимірювань з трьома осями. Тобто: або спіни вже визначені як вектори, або у системі якимось чином закодований набір фізичних інструкцій, що визначають результати всіх можливих вимірювань заздалегідь — навіть якщо вони недоступні для спостерігачів до моменту вимірювання. Альтернатива показана нижче. Існує деякий розподіл імовірностей результатів, і цей розподіл може розповісти нам дещо про ймовірності різних результатів вимірювань, але самі результати залишаються невизначеними природою аж до вимірювання.

Знову показано розмитий розподіл імовір�ностей, тепер з трьома новими осями a, b і c. Це супроводжується різними ймовірностями вимірювань вздовж різних напрямків.

Ми можемо запитати себе: «Як часто два учасники повинні знаходити однаковий знак проекції спіну?» Тобто ми навіть не фіксуємо, вздовж якої осі вони вирішили виміряти; ми просто записуємо, чи виявили вони однаковий знак чи різний. Не очевидно, чи дадуть варіанти Ейнштейна і Борна однаковий результат у цій складнішій схемі вимірювань. Але з рисунків 4 і 5 має бути зрозуміло, що можливаможлива різниця. У випадку, показаному для варіанту Ейнштейна, вимірювання проекції спіну e+e+ на вісь aa безумовно дасть +a+a, а проекція спіну ee- на вісь bb дасть b-b (ледве-ледве). Але у варіанті Борна можливості широко відкриті. Дійсно, кутовий момент усе ще зберігається. Але оскільки два магнітних поля не орієнтовані вздовж однієї осі, ми ставимо частинки в ситуацію, де вони повинні «колапсувати» на різних осях (через взаємодію з полем). У наступному розділі ми використаємо квантову механіку, щоб визначити, якими мають бути ймовірності — у разі варіанту Борна — того, що Лукас і Ріанна отримають однаковий знак на своїх виміряних осях (++ або ––), і ймовірності того, що вони отримають протилежні знаки (+– або –+).

Передбачення

Що передбачає варіант Ейнштейна (приховані змінні)?

Якщо варіант Ейнштейна правильний, то будь-яка пара e+e+ і ee- матиме набір векторних компонент своїх спінів. Наприклад, електрон може мати компоненти (+a^,b^,+c^)(+\hat{a},-\hat{b}, +\hat{c}), у такому разі позитрон повинен мати компоненти (a^,+b^,c^)(-\hat{a},+\hat{b}, -\hat{c}). Тут ми вказуємо лише знак проекції на кожну вісь, а не величину. Уявімо, що ми дозволяємо відбутися дуже великій кількості NN таких розпадів і збираємо вимірювання, щоб заповнити таблицю нижче.

ПопуляціяЧастинка 1Частинка 2
N1N_1(+a^,+b^,+c^)(+\hat{a},+\hat{b},+\hat{c})(a^,b^,c^)(-\hat{a},-\hat{b},-\hat{c})
N2N_2(+a^,+b^,c^)(+\hat{a},+\hat{b},-\hat{c})(a^,b^,+c^)(-\hat{a},-\hat{b},+\hat{c})
N3N_3(+a^,b^,+c^)(+\hat{a},-\hat{b},+\hat{c})(a^,+b^,c^)(-\hat{a},+\hat{b},-\hat{c})
N4N_4(+a^,b^,c^)(+\hat{a},-\hat{b},-\hat{c})(a^,+b^,+c^)(-\hat{a},+\hat{b},+\hat{c})
N5N_5(a^,+b^,+c^)(-\hat{a},+\hat{b},+\hat{c})(+a^,b^,c^)(+\hat{a},-\hat{b},-\hat{c})
N6N_6(a^,+b^,c^)(-\hat{a},+\hat{b},-\hat{c})(+a^,b^,+c^)(+\hat{a},-\hat{b},+\hat{c})
N7N_7(a^,b^,+c^)(-\hat{a},-\hat{b},+\hat{c})(+a^,+b^,c^)(+\hat{a},+\hat{b},-\hat{c})
N8N_8(a^,b^,c^)(-\hat{a},-\hat{b},-\hat{c})(+a^,+b^,+c^)(+\hat{a},+\hat{b},+\hat{c})

Для кожного рядка таблиці вище є 9 можливих варіантів вибору осей для Лукаса і Ріанни: aaaa, abab, acac, baba, bbbb, bcbc, caca, cbcb і cccc. Читаючи з цієї таблиці, ймовірність того, що два спостерігачі виміряють однаковий знак для рядків 1 і 8, дорівнює нулю. Для рядків 2–7 є 4 способи отримати однаковий знак; покажемо це лише для рядка 2:

Однакові знаки: acac, bcbc, caca, cbcb Протилежні знаки: aaaa, abab, baba, bbbb, cccc

Отже, якщо варіант Ейнштейна є правильною інтерпретацією квантових станів, загальна ймовірність — усереднена по всіх можливих популяціях — того, що Лукас і Ріанна отримають однаковий знак проекції спіну на випадково обрані осі, становитиме: Psame=1iNi49(N2+N3+N4+N5+N6+N7)49 P_\text{same}=\frac{1}{\sum_i{N_i}} \frac{4}{9} (N_2+N_3+N_4+N_5+N_6+N_7)\leq \frac{4}{9} Рівність досягається лише тоді, коли N1=N8=0N_1=N_8=0.

Перевір своє розуміння

Прочитай запитання нижче, подумай над відповідями, а потім натисни трикутники, щоб відкрити рішення.

Для рядка 2 таблиці вище ми перелічили всі можливі способи, якими Лукас і Ріанна можуть отримати однаковий знак своїх вимірювань, і всі способи отримати різні знаки. Повтори це для третього рядка.

Відповідь:

Однакові знаки: abab, baba, bcbc, cbcb

Протилежні знаки: aaaa, acac, bbbb, caca, cccc

Таблиця вище посилається на «популяції», тобто ми не знаємо, скільки яких типів інструкцій виробляє природа, якщо трактування прихованих змінних є правильним. Покажи, що незалежно від розподілу N1N_1 по N8N_8 ймовірність отримання однакового знаку при вимірюваннях завжди менша або дорівнює 4/9.

Відповідь:

Почнімо з припущення про постійну загальну кількість спроб вимірювань, так що iNi=Ntot\sum_i{N_i} = N_{tot} є постійним. Зауваж, що в особливому випадку, коли N1=N8=0N_1=N_8=0, вираз спрощується до

Psame=1N2+N3+N4+N5+N6+N7×49×(N2+N3+N4+N5+N6+N7)=1Ntot×49×Ntot=49P_{same}=\frac{1}{N_2+N_3+N_4+N_5+N_6+N_7} \times \frac{4}{9} \times (N_2+N_3+N_4+N_5+N_6+N_7) = \frac{1}{N_{tot}} \times \frac{4}{9} \times N_{tot}= \frac{4}{9}

Тепер припустимо, що N10N_1 \neq 0 або N80N_8 \neq 0. Тоді

Psame=1N1+N2+N3+N4+N5+N6+N7+N8×49×(N2+N3+N4+N5+N6+N7)=49P_{same}=\frac{1}{N'_1+N'_2+N'_3+N'_4+N'_5+N'_6+N'_7+N'_8} \times \frac{4}{9} \times (N'_2+N'_3+N'_4+N'_5+N'_6+N'_7) = \frac{4}{9}

Сума всіх спроб, NtotN_tot, залишається такою самою, як і раніше. Але оскільки N1N'_1 або N8N'_8 збільшилось з 0, сума N2N'_2 по N7N'_7 повинна бути меншою, ніж раніше. Зокрема, сума N2N'_2 по N7N'_7 менша за NtotN_{tot}. Таким чином

Psame=1Ntot×49×(N2+N3+N4+N5+N6+N7)<49P_{same}=\frac{1}{N_{tot}} \times \frac{4}{9} \times (N'_2+N'_3+N'_4+N'_5+N'_6+N'_7) < \frac{4}{9}

Об'єднавши всі можливі випадки, маємо Psame49P_{same} \leq \frac{4}{9}.

Узагальнення

У наведеному вище аналізі ми розглядали вимірювання вздовж конкретних осей. Звичайно, можна проводити вимірювання вздовж будь-якої осі. Назвімо два спінові вектори двох частинок a\vec{a} і b\vec{b}. Нехай λ\lambda — це деяка прихована змінна, так що стан двочастинкової системи відповідає певному визначеному значенню λ\lambda. Нехай ρ(λ)\rho(\lambda) — густина ймовірності за λ\lambda. Нарешті, оберемо символи A(a,λ)A(\vec{a},\lambda) і B(b,λ)B(\vec{b},\lambda) для заздалегідь визначеного результату вимірювання, виконаного на кожній з частинок (A або B), за умови заданих спінових векторів і прихованої змінної. Критично важливо зауважити, що AA не залежить від b\vec{b}, а BB не залежить від a\vec{a}. Тепер можна поставити будь-яку кількість запитань, пов'язаних із кореляціями між вимірюваннями A і B. Зокрема, можна запитати про математичне сподівання:

E(a,b)dλρ(λ)A(a,λ)B(b,λ)E(\vec{a},\vec{b})\equiv\int{d\lambda \rho(\lambda)A(\vec{a},\lambda)B(\vec{b},\lambda)}

За деяких стандартних припущень щодо цих значень — таких як A(a,λ)1A(\vec{a},\lambda)\leq 1, B(b,λ)1B(\vec{b},\lambda)\leq 1 та нормування ρ(λ)\rho(\lambda) — можна показати, що кореляції між двома частинками підпорядковуються співвідношенню

E(a,b)E(a,d)+E(c,d)+E(c,b)2,|E(\vec{a},\vec{b})-E(\vec{a},\vec{d})|+|E(\vec{c},\vec{d})+E(\vec{c},\vec{b})|\leq 2,

де a\vec{a} і b\vec{b} — спінові стани твоєї системи, а c\vec{c} і d\vec{d} — еталонні спінові стани (будь-які інші можливі спінові стани системи). Це одна з цілого класу нерівностей, тепер відомих як «нерівності Белла». Тут ми не будемо використовувати цю загальну форму. Натомість зосередимося на одному конкретному експериментальному налаштуванні, щоб можна було відобразити його на квантову схему.

Що передбачає варіант Борна (недетерміністична квантова механіка)?

Лукас вибере деяку вісь і виявить, що спін однієї частинки спрямований або у позитивному, або у від'ємному напрямку. Що б він не отримав, орієнтуємо наші осі так, щоб напрямок zz відповідав цьому результату. Тоді ми можемо записати початковий стан після розпаду мезона і до будь-якого вимірювання як

ψ=12(+LRL+R)|\psi \rangle =\frac{1}{\sqrt{2}}(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R)

Ріанна вимірюватиме спін своєї частинки вздовж якогось іншого напрямку під кутом θ\theta відносно напрямку Лукаса. Оператор спіну вздовж довільного напрямку n^\hat{n} визначається як

S^n^=2[cos(θ)sin(θ)eiϕsin(θ)eiϕcos(θ)]\hat{S}_{\hat{n}}=\frac{\hbar}{2}\begin{bmatrix} \cos(\theta) & \sin(\theta) e^{-i\phi} \\ \sin(\theta) e^{i\phi} & -\cos(\theta) \end{bmatrix}

Власними станами цього оператора є

+n^=cos(θ/2)0+sin(θ/2)eiϕ1n^=sin(θ/2)0cos(θ/2)eiϕ1|+\rangle_{\hat{n}}=\cos(\theta/2)|0\rangle+\sin(\theta/2)e^{i\phi}|1\rangle \\ |-\rangle_{\hat{n}}=\sin(\theta/2)|0\rangle-\cos(\theta/2)e^{i\phi}|1\rangle

Перевір своє розуміння

Прочитай запитання нижче, подумай над відповідями, а потім натисни трикутники, щоб відкрити рішення.

Перевір, що +n^|+\rangle_{\hat{n}} є власним станом оператора S^n^\hat{S}_{\hat{n}} вище, і знайди власне значення.

Відповідь:

S^n^+n^=2[cos(θ)sin(θ)eiϕsin(θ)eiϕcos(θ)][cos(θ/2)sin(θ/2)eiϕ]\hat{S}_{\hat{n}}|+\rangle_{\hat{n}}=\frac{\hbar}{2}\begin{bmatrix} \cos(\theta) & \sin(\theta) e^{-i\phi} \\ \sin(\theta) e^{i\phi} & -\cos(\theta) \end{bmatrix} \begin{bmatrix} \cos(\theta/2) \\ \sin(\theta/2)e^{i\phi}\end{bmatrix}=2[cos(θ)cos(θ/2)+sin(θ)sin(θ/2)eiϕeiϕcos(θ/2)sin(θ)eiϕcos(θ)sin(θ/2)eiϕ]=\frac{\hbar}{2}\begin{bmatrix} \cos(\theta)\cos(\theta/2) + \sin(\theta)\sin(\theta/2)e^{i\phi} e^{-i\phi} \\ \cos(\theta/2)\sin(\theta) e^{i\phi} -\cos(\theta)\sin(\theta/2)e^{i\phi} \end{bmatrix}

Використовуючи cos(θ)=cos2(θ/2)sin2(θ/2)\cos(\theta)=\cos^2(\theta/2)-\sin^2(\theta/2) і sin(θ)=2cos(θ/2)sin(θ/2)\sin(\theta)=2\cos(\theta/2)\sin(\theta/2), маємо

=2[(cos(θ)+2sin2(θ/2))cos(θ/2)(2cos2(θ/2)cos2(θ/2)+sin2(θ/2))sin(θ/2)eiϕ]=\frac{\hbar}{2}\begin{bmatrix} \left(\cos(\theta) + 2\sin^2(\theta/2)\right) \cos(\theta/2) \\ \left(2\cos^2(\theta/2) -\cos^2(\theta/2)+\sin^2(\theta/2)\right)\sin(\theta/2)e^{i\phi} \end{bmatrix}=2[(cos2(θ/2)sin2(θ/2)+2sin2(θ/2))cos(θ/2)(2cos2(θ/2)cos2(θ/2)+sin2(θ/2))sin(θ/2)eiϕ]=\frac{\hbar}{2}\begin{bmatrix} \left(\cos^2(\theta/2)-\sin^2(\theta/2) + 2\sin^2(\theta/2)\right) \cos(\theta/2) \\ \left(2\cos^2(\theta/2) -\cos^2(\theta/2)+\sin^2(\theta/2)\right)\sin(\theta/2)e^{i\phi} \end{bmatrix}=2[cos(θ/2)sin(θ/2)eiϕ]=\frac{\hbar}{2}\begin{bmatrix} \cos(\theta/2) \\ \sin(\theta/2)e^{i\phi} \end{bmatrix}

Це доводить, що +n^|+\rangle_{\hat{n}} є власним станом, а відповідне власне значення дорівнює 2\frac{\hbar}{2}.

Ймовірність того, що Лукас виміряє спін у позитивному напрямку вздовж обраної ним осі +|+\rangle іі що Ріанна також виміряє позитивний спін вздовж свого обраного напрямку +n^|+\rangle_{\hat{n}}, дорівнює

P++=(L+R,n^+)ψ2P_{++}=\left|\left(_L\langle+|_{R,\hat{n}}\langle+|\right)|\psi\rangle\right|^2 P++=(L+R(cos(θ/2)++sin(θ/2)eiϕ))12(+LRL+R)2P_{++}=\left| \left(_L\langle+|_R\left(\cos(\theta/2)\langle+|+\sin(\theta/2)e^{-i\phi}\langle-|\right)\right) \frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right) \right|^2 P++=12(L+R(cos(θ/2)++sin(θ/2)eiϕ))(+LR)2P_{++}=\frac{1}{2}\left| \left(_L\langle+|_R\left(\cos(\theta/2)\langle+|+\sin(\theta/2)e^{-i\phi}\langle-|\right)\right) \left(|+\rangle_L|-\rangle_R\right) \right|^2 P++=12(sin(θ/2)eiϕpR)R2P_{++}=\frac{1}{2}\left| \left(\sin(\theta/2)e^{-i\phi}\vphantom{p}_R\langle-|\right) |-\rangle_R \right|^2 P++=12sin2(θ/2)P_{++}=\frac{1}{2}\sin^2(\theta/2)

Перевір своє розуміння

Прочитай запитання нижче, подумай над відповідями, а потім натисни трикутники, щоб відкрити рішення.

Зроби те саме для PP_{--}. Переконайся, що воно також дорівнює 12sin2(θ).\frac{1}{2}\sin^2(\theta).

Відповідь:

P=(LR,n^+)ψ2P_{--}=\left|\left(_L\langle-|_{R,\hat{-n}}\langle+|\right)|\psi\rangle\right|^2P=(LR(sin(θ/2)+cos(θ/2)eiϕ))12(+LRL+R)2P_{--}=\left| \left(_L\langle-|_R\left(\sin(\theta/2)\langle+|-\cos(\theta/2)e^{-i\phi}\langle-|\right)\right) \frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right) \right|^2P=12(LR(sin(θ/2)+cos(θ/2)eiϕ))(L+R)2P_{--}=\frac{1}{2}\left| \left(_L\langle-|_R\left(\sin(\theta/2)\langle+|-\cos(\theta/2)e^{-i\phi}\langle-|\right)\right) \left(-|-\rangle_L|+\rangle_R\right) \right|^2P=12(sin(θ/2)pR+)+R2P_{--}=\frac{1}{2}\left| \left(\sin(\theta/2) \vphantom{p}_R\langle+|\right) |+\rangle_R \right|^2P=12sin2(θ/2)P_{--}=\frac{1}{2}\sin^2(\theta/2)

Додавши ці результати, знаходимо, що ймовірність того, що знаки двох виміряних осей однакові, дорівнює Psame=sin2(θ/2)P_{\text{same}}=\sin^2(\theta/2).

Перевір своє розуміння

Прочитай запитання нижче, подумай над відповіддю, а потім натисни трикутник, щоб відкрити рішення.

Що можна зробити, щоб перевірити математику цього результату? Зрозуміло, що ми не просимо тебе ще перевірити відповідність природі — просто переконайся, що в усіх обчисленнях нічого не пішло не так.

Відповідь:

(1) Зроби те саме обчислення для Pdiff=cos2(θ/2)P_{\text{diff}}=\cos^2(\theta/2), щоб перевірити збереження ймовірності.

(2) Перевір відомий випадок. Підстав θ=0\theta = 0. Тоді PsameP_{\text{same}} відповідає ситуації, коли обидва спостерігачі вимірюють свій спін вздовж однієї осі, що порушувало б збереження кутового моменту. Тож ця ймовірність повинна дорівнювати нулю, і справді, підстановка θ=0\theta = 0 дає sin2(0/2)=0\sin^2(0/2) = 0.

(3) Перевір інший відомий випадок. Спробуй θ=π\theta = \pi. Що ти повинен отримати? Будь обережний з тією 12\frac{1}{2}.

Ми конкретно розглядали випадок, де осі розходяться на 120deg120\deg одна відносно одної. Пам'ятай: якщо Лукас отримав певний напрямок (±a\pm a, ±b\pm b або ±c\pm c), ми називаємо його zz. Тоді Ріанна випадково вибирає вимірювання вздовж ±a\pm a, ±b\pm b або ±c\pm c. Якщо її вибір збігається з вибором Лукаса (з точністю до знаку), то вони обидва вимірюють вздовж zz, і ймовірність того, що Ріанна також виміряє +z+z, дорівнює нулю. Це повинно відбуватися 1/3 часу, оскільки вибір осі Ріанною незалежний від вибору Лукаса. При будь-якому іншому виборі Ріанна вимірюватиме вздовж осі, яка відхилена від zz або на 120deg=2π/3120\deg = 2\pi/3 радіани (1/3 часу), або на 240deg=4π/3240\deg = 4\pi/3 радіани (1/3 часу). І звісно, вздовж кожної з цих осей спін може бути виміряний у позитивному або від'ємному напрямку. Це дає нам загальну ймовірність того, що Лукас і Ріанна отримають однаковий знак:

Psame=13(0+sin2(π/3)+sin2(2π/3))=13(0+34+34)=12P_{\text{same}} = \frac{1}{3}\left( 0 + \sin^2(\pi/3) + \sin^2(2\pi/3) \right) = \frac{1}{3}\left( 0 + \frac{3}{4} + \frac{3}{4} \right) = \frac{1}{2}

Ось це так!

Ми щойно показали, що

(Psame)max, Einstein<(Psame)max, Born.(P_\text{same})_\text{max, Einstein}<(P_\text{same})_\text{max, Born}.

Зробімо крок назад.

Варіанти Ейнштейна і Борна здавалися такими, що завжди давали б однакові результати, адже вони відрізнялися лише описом того, що відбувається до вимірювання. І все ж, припускаючи існування інструкцій, що заздалегідь визначають знак проекції спіну вздовж певних осей, ми отримали обмеження на ймовірність однакових знаків вимірювань (Psame)Einstein49(P_{\text{same}})_\text{Einstein}\leq\frac{4}{9}. Потім, припускаючи розподіли ймовірностей відповідно до квантової механіки, ми отримали інше значення (Psame)Born=12(P_{\text{same}})_\text{Born}=\frac{1}{2}. Передбачення квантової механіки є вищим за те, що допускає трактування прихованих змінних. Отже, ми дійсно можемо провести експеримент і з'ясувати, чи є квантово-механічні стани визначеними природою до вимірювання, чи вони справді перебувають у ймовірнісній суперпозиції можливих станів.

Цей експеримент проводився багато разів із використанням різних фізичних систем, часто фотонів. Існує багато тонкощів, таких як упередженість при вимірюванні, синхронність (одночасність) вимірювань та інші. Протягом десятиліть занепокоєння щодо цих тонкощів поступово розсіювалися. Тести досі проводяться в міру того, як ми дізнаємося більше про реальність, але тепер є широкий консенсус щодо того, що відповідь, яку ти отримаєш тут, використовуючи квантові комп'ютери IBM®, є правильною.

Тестуємо на справжніх квантових комп'ютерах!

Відповідно до нашого вищенаведеного підходу, визначимо напрямок вимірювання Лукаса як +z+z. Це було зручно навіть у алгебраїчному підході, але особливо зручно для квантових обчислень, оскільки зазвичай вимірюється проекція кубіту вздовж zz. Ми хочемо побудувати квантову схему, яка дасть нам ті самі умови ймовірностей, що й вищенаведені для P++P_{++}. Ми вільні орієнтувати нашу площину так, щоб ϕ=0\phi=0, і отримуємо

P++=(L+R(cos(θ/2)++sin(θ/2)))12(+LRL+R)2P_{++}=\left| \left(_L\langle+|_R\left(\cos(\theta/2)\langle+|+\sin(\theta/2)\langle-|\right)\right) \frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right) \right|^2

Нам потрібно знати кілька речей про квантові комп'ютери IBM, щоб скерувати наше обговорення. По-перше, кубіти спочатку ініціалізуються у стан 0=+z|0\rangle = |+\rangle_z. Як уже згадувалося, при виконанні вимірювань вони виконуються вздовж осі zz. Отже, мета полягає в тому, щоб визначити, які оператори можна вставити між базисними станами вимірювань 00\langle 0|\langle 0| і початковими станами кубітів 00|0\rangle |0\rangle, щоб отримати наведений вище складний вираз. Для цього нам потрібно переглянути деякі базові вентилі у квантових обчисленнях.

Вентиль XX: Еквівалент операції NOT. Однокубітний вентиль.

X0=1,X1=0X|0\rangle = |1\rangle,\\X|1\rangle=|0\rangle X=[0110]X=\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}

У Qiskit створення Circuit з вентилем XX виглядає так:

from qiskit import QuantumCircuit

qc = QuantumCircuit(1)
qc.x(0)
qc.draw("mpl")

Output of the previous code cell

Вентиль Адамара HH: Створює стан суперпозиції. Однокубітний вентиль.

H0=12(0+1),H|0\rangle = \frac{1}{2}\left(|0\rangle+|1\rangle\right), H1=12(01)H|1\rangle = \frac{1}{2}\left(|0\rangle-|1\rangle\right) H=12[1111]H=\frac{1}{2}\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}

Circuit з вентилем Адамара створюється так:

qc = QuantumCircuit(1)
qc.h(0)
qc.draw("mpl")

Output of the previous code cell

CNOT — контрольований NOT Gate: Цей вентиль використовує два кубіти: керуючий і цільовий. Він перевіряє стан керуючого кубіту, але не змінює його. Якщо керуючий кубіт перебуває у стані 1|1\rangle, вентиль змінює стан цільового кубіту; якщо стан керуючого кубіту 0|0\rangle, жодних змін не відбувається. У наведеному нижче записі вважаємо, що перший кубіт є керуючим, а другий — цільовим.

CNOT00=00,CNOT01=01CNOT10=11CNOT11=10CNOT|00\rangle = |00\rangle, \\ CNOT|01\rangle = |01\rangle \\ CNOT|10\rangle = |11\rangle \\ CNOT|11\rangle = |10\rangle

Вентиль CNOT у схемі виглядає трохи інакше, оскільки вимагає два кубіти. Ось як він реалізується:

qc = QuantumCircuit(2)
qc.cx(0, 1)
qc.draw("mpl")

Output of the previous code cell

Зауваж, що перший кубіт у qc.cx(0,1) є керуючим, а другий — цільовим. На схемі цільовий позначений символом «+» або хрестиком.

Вентиль обертання Ry(θ)R_y(\theta) навколо осі Y: Обертає стан навколо осі y. Це однокубітний вентиль.

Ry(θ)0=cos(θ/2)0+sin(θ/2)1,Ry(θ)0=sin(θ/2)0+cos(θ/2)1R_y(\theta)|0\rangle = \cos(\theta/2)|0\rangle+\sin(\theta/2)|1\rangle,\\R_y(\theta)|0\rangle = -\sin(\theta/2)|0\rangle+\cos(\theta/2)|1\rangle Ry(θ)=[cos(θ/2)sin(θ/2)sin(θ/2)cos(θ/2)]R_y(\theta)=\begin{bmatrix} \cos(\theta/2) & -\sin(\theta/2) \\ \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}

Нарешті, вентилі обертання реалізуються шляхом вказівки типу вентилю, величини обертання та кубіту, на якому розміщується вентиль — саме в такому порядку:

import numpy as np

pi = np.pi

qc = QuantumCircuit(2)
qc.ry(pi / 2, 0)
qc.draw("mpl")

Output of the previous code cell

Назва вентилю ry вказує на вісь, навколо якої відбувається обертання. Перший аргумент π/2\pi/2 відповідає куту обертання, а другий аргумент вказує кубіт, на якому розміщується вентиль.

Перевір своє розуміння

Прочитай запитання нижче, подумай над відповіддю, а потім натисни трикутник, щоб побачити розв'язок.

Використовуючи синтаксис, представлений або повторений вище, побудуй будь-який квантовий Circuit із чотирма різними типами квантових Gate.

Відповідь:

Звісно, варіантів нескінченно багато. Ось один із прикладів:

qc=QuantumCircuit(2)
qc.ry(pi/2,0)
qc.cx(1,0)
qc.x(1)
qc.h(0)
qc.cx(0,1)
qc.draw("mpl")

Від фізичного експерименту до квантових Circuit

З дій цих Gate видно, що, наприклад, кети у виразах для P++P_{++}:

12(+LRL+R)\frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right)

швидше за все потребують Gate Адамара для отримання суперпозиції та Gate CNOT для створення заплутаності.

Тепер ми використаємо Gate H, X і CNOT, щоб перетворити 0L0R|0\rangle_L|0\rangle_R на 12(+LRL+R)\frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right):

12(0L1R1L0R)\frac{1}{\sqrt{2}}\left(|0\rangle_L|1\rangle_R-|1\rangle_L|0\rangle_R\right) 12CNOTLR(0L1R1L1R)\frac{1}{\sqrt{2}}CNOT_{LR}\left(|0\rangle_L|1\rangle_R-|1\rangle_L|1\rangle_R\right)

Тут CNOTLRCNOT_{LR} означає Gate CNOT, де L є контрольним Qubit, а R — цільовим. Тепер можна винести за дужки частину стану, пов'язану з R:

CNOTLR12(0L1L)1R\text{CNOT}_{LR}\frac{1}{\sqrt{2}}\left(|0\rangle_L-|1\rangle_L\right)|1\rangle_R CNOTLRHL1L1R\text{CNOT}_{LR} H_L|1\rangle_L|1\rangle_R CNOTLRHLXLXR0L0R\text{CNOT}_{LR} H_L X_L X_R|0\rangle_L|0\rangle_R

Тепер ми записали кет повністю у вигляді квантових Gate, що діють на початковий стан Qubit за замовчуванням.

Тепер можна скористатися Ry(θ)R_y(\theta), що діє на pL0R1\vphantom{p}_L\langle 0|_R\langle 1|, щоб отримати бру у виразі для P++P_{++}.

pL0R(cos(θ/2)0+sin(θ/2)1)\vphantom{p}_L\langle0|_R\left(\cos(\theta/2)\langle0|+\sin(\theta/2)\langle1|\right) pL0R(0cos(θ/2)+1sin(θ/2))\vphantom{p}_L\langle0|_R\left(|0\rangle \cos(\theta/2)+|1\rangle \sin(\theta/2)\right)^{\dagger} pL0(Ry,R(θ)0R)\vphantom{p}_L\langle0|\left(R_{y,R}(\theta)|0\rangle_R\right)^{\dagger} pL0R0Ry,R(θ)\vphantom{p}_L\langle0|_R\langle0|R_{y,R}(-\theta)

Об'єднуючи ці результати, можна записати ймовірність P++P_{++} як

p++=pL0R0Ry,R(θ)CNOTLRHLXLXR0L0R2p_{++}=\left|\vphantom{p}_L\langle0|_R\langle0|R_{y,R}(-\theta)\text{CNOT}_{LR} H_L X_L X_R|0\rangle_L|0\rangle_R\right|^2

Це дає нам чіткі інструкції щодо побудови нашого квантового Circuit. Ми застосуємо Gate X, H, CNOT та RyR_y до Qubit, що представляють квантові стани частинок, які вимірюють Лукас і Ріанна, та виконаємо вимірювання, щоб отримати ймовірність.

IBM Quantum рекомендує підходити до задач квантових обчислень за допомогою підходу, який ми називаємо Qiskit patterns. Він складається з таких кроків.

  • Крок 1: Відобрази свою задачу на квантовий Circuit
  • Крок 2: Оптимізуй свій Circuit для запуску на реальному квантовому залізі
  • Крок 3: Виконай задачу на квантових комп'ютерах IBM за допомогою Runtime Primitives
  • Крок 4: Постобробка результатів

По суті, вся робота, яку ми виконали вище, відповідає кроку 1. Давай побудуємо отриманий Circuit за допомогою Qiskit!

Крок 1: Відображення результатів на квантовий Circuit

# We'll begin by importing qiskit and a visualization module so that we can plot a histogram of our results.

from qiskit.visualization import plot_histogram

Пам'ятай, що 1/3 часу вісь вибору Ріанни буде відхилена на 2π/32\pi/3 радіан від осі Лукаса, 1/3 часу — на 4π/34 \pi/3 радіан, а ще 1/3 часу вони обиратимуть однакову вісь. Отже, нам справді потрібно побудувати 3 квантові Circuit для цих 3 випадків і додати результати. Перший ми поясним детально, а два останніх просто назвемо.

# We start by declaring our first quantum circuit, and giving it two qubits (the first "2") and two classical bits for storing outputs (the second "2")
# Define registers
from qiskit import ClassicalRegister, QuantumRegister

qr = QuantumRegister(2, "q")
cr = ClassicalRegister(2, "c")
qc1 = QuantumCircuit(qr, cr)

# We know from our analysis above that we need an X gate acting on each of the qubits (L and R)
qc1.x([0, 1])
# We need a Hadamard gate acting on Lucas's qubit, which we're calling the 0th qubit.
qc1.h(0)
# The controlled-NOT gate uses the 0th qubit (Lucas's) as the control and the 1st qubit (Rihanna's) as the target.
qc1.cx(0, 1)
# The rotation gate acts on the 1st qubit (Rihanna's) and has an argument of -2 pi/3
qc1.ry(-2 * pi / 3, 1)
# Finally, we want to measure all the qubits in the circuit to obtain measurement probabilities, and store the results in the classical bits.
qc1.measure([0, 1], [0, 1])
# Now we can draw the first of the three circuits that will check Bell's inequality for us.
qc1.draw(output="mpl")

Output of the previous code cell

Код нижче швидко будує всі три Circuit більш компактним способом. Зверни увагу, що єдина відмінність між трьома Circuit — це величина обертання двох Qubit навколо осі yy.

qcs = [QuantumCircuit(2, 2), QuantumCircuit(2, 2), QuantumCircuit(2, 2)]
for i in range(0, len(qcs)):
qcs[i].x([0, 1])
qcs[i].h(0)
qcs[i].cx(0, 1)

qcs[0].ry(-2 * pi / 3, 1)
qcs[1].ry(-4 * pi / 3, 1)
qcs[2].ry(-2 * pi / 3, 1)
qcs[2].ry(-4 * pi / 3, 1)

for i in range(0, len(qcs)):
qcs[i].barrier()
qcs[i].measure([0, 1], [0, 1])

counts_list = [None] * len(qcs)
qcs[0].draw(output="mpl")

Output of the previous code cell

Тепер ми використаємо примітив Qiskit під назвою StatevectorSampler. Sampler — це примітив, призначений для вибірки всіх можливих станів системи та повернення ймовірностей (або в деяких випадках квазіймовірностей) отримання кожного стану. Можна вказати кількість «shots» і подивитися на «counts» для кожного стану.

from qiskit.primitives import StatevectorSampler

sampler = StatevectorSampler()

# Start a job that will return shots for all 100 parameter value sets.
for i in range(0, len(qcs)):
pub = qcs[i]
job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
result = job.result()
data_pub = result[0].data
counts = data_pub.c.get_counts()
counts_list[i] = counts
# plot_histogram(counts)

Якщо подивитися на counts із кожного Circuit, побачимо, що два з них були практично однаковими, а третій — зовсім іншим.

plot_histogram(counts_list)

Output of the previous code cell

Складімо список можливих результатів і підсумуємо всі counts кожного стану з кожного з трьох Circuit, щоб отримати загальні ймовірності.

outcomes = ("00", "01", "10", "11")

# Here we convert "None"s into 0's so that we can sum.

for i in range(0, len(qcs)):
for j in range(0, len(outcomes)):
if counts_list[i].get(outcomes[j]) is None:
counts_list[i].update({outcomes[j]: 0})

# Here we create a dictionary that holds all the outcomes and sums over their appearances in each of the circuits.

total_counts = {}
for i in range(0, len(outcomes)):
total_counts[outcomes[i]] = sum(
counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
)

Тепер можна вивести загальні counts для кожного результату та побудувати гістограму.

print(total_counts)
plot_histogram(total_counts)
{'00': 7493, '01': 7432, '10': 7605, '11': 7470}

Output of the previous code cell

Перевір своє розуміння

Прочитай запитання нижче, подумай над відповіддю, а потім натисни трикутник, щоб побачити розв'язок.

Чи відповідає наведений вище малюнок результатам, передбаченим прихованими змінними та детермінізмом? Або він відповідає імовірнісній (і нелокальній) квантовій механіці?

Відповідь:

Він відповідає імовірнісній і нелокальній квантовій механіці. Підхід на основі прихованих змінних передбачав, що ймовірність отримання однакового знаку менша або рівна 4/9. Квантова механіка передбачала ймовірність 50%. Гістограма вище описує ймовірність результатів 00 або 11, що дорівнює 49,97%. Це дуже близько до передбачення імовірнісної квантової механіки, але, що найголовніше, перевищує допустимий діапазон у підході з прихованими змінними.

Чи доводить це щось про природу?

Відповідь:

Ні! Ми використовували симулятор! Це комп'ютер, запрограмований поводитися відповідно до законів імовірнісної квантової механіки. Якщо ми пропонуємо правило, а потім програмуємо комп'ютер слідувати цьому правилу, його здатність виконувати це правило не є доказом того, що правило правильне! Єдиний спосіб довести це — скористатися справжнім квантовим комп'ютером!

Крок 2: Оптимізуй свій квантовий Circuit для запуску на реальному залізі

Хоча спочатку ми використовували симулятор для налагодження коду, насправді ми хочемо запустити його на реальному залізі. Зрештою, симулятор лише вдає із себе квантову механіку, спираючись на наведені вище рівняння. Якби симулятор сказав нам, що ці рівняння правильні, це мало б що доводило б. Ми хочемо, щоб справжній квантовий комп'ютер показав нам, що відбувається! Тому ми оберемо квантовий комп'ютер, який хочемо використати. Іноді може бути важливо вибрати конкретний пристрій із потрібними властивостями, але найчастіше ми просто хочемо скористатися тим, що найменш завантажений.

Нижче є код для першого збереження своїх облікових даних. Обов'язково видали цю інформацію з ноутбука після збереження у своєму середовищі, щоб твої облікові дані випадково не потрапили до сторонніх при публікації ноутбука. Дивись Set up your IBM Cloud account та Initialize the service in an untrusted environment для отримання додаткової інформації.

from qiskit_ibm_runtime import QiskitRuntimeService

# Syntax for first saving your token. Delete these lines after saving your credentials.
# QiskitRuntimeService.save_account(channel='ibm_quantum_platform', instance = '<YOUR_IBM_INSTANCE_CRN>', token='<YOUR-API_KEY>', overwrite=True, set_as_default=True)
# service = QiskitRuntimeService(channel='ibm_quantum_platform')

# Load saved credentials
service = QiskitRuntimeService()

backend = service.least_busy(
operational=True, min_num_qubits=qcs[0].num_qubits, simulator=False
)
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager

target = backend.target
pm = generate_preset_pass_manager(target=target, optimization_level=3)

qcs_isa = qcs

for i in range(0, len(qcs)):
qcs_isa[i] = pm.run(qcs[i])
qcs_isa[i].draw(output="mpl", idle_wires=False, style="iqp")
qcs_isa[2].draw(output="mpl", idle_wires=False, style="iqp")

Output of the previous code cell

Крок 3: Виконай задачу на квантових комп'ютерах IBM за допомогою Runtime primitives

Тепер, коли ми оптимізували наші Circuit для запуску на реальному квантовому залізі та налагодили код за допомогою симуляторів, ми готові зібрати статистику на справжньому квантовому комп'ютері і вирішити суперечку між Ейнштейном і Борном.

from qiskit_ibm_runtime import SamplerV2 as Sampler
# from qiskit_ibm_runtime import Session
# sampler.options.default_shots = 1000

# Start a job that will return shots for all 100 parameter value sets.
# The best practice is to use a session as shown below. This is available to Premium Plan, Flex Plan, and On-Prem (IBM Quantum Platform API) Plan users.
# result_list = [None] * len(qcs)
# real_counts_list = [None] * len(qcs)
# with Session(backend=backend) as session:
# sampler = Sampler(mode=session)

# for i in range(0, len(qcs)):
# # Define the primitive unified bloc (pub)
# pub = qcs[i]
# job = sampler.run([pub], shots=10000)
# # Extract the result for the 0th pub (this example only has one pub).
# result_list[i] = job.result()
# data_pub = result_list[i][0].data
# counts = data_pub.c.get_counts()
# real_counts_list[i] = counts
# # plot_histogram(counts)

# Open users can still carry out this experiment, but without reserving a session of use, meaning repeated queuing is possible.
from qiskit_ibm_runtime import Batch

batch = Batch(backend=backend)
sampler = Sampler(mode=batch)

result_list = [None] * len(qcs)
real_counts_list = [None] * len(qcs)

for i in range(0, len(qcs)):
# Define the primitive unified bloc (pub)
pub = qcs[i]
job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
result_list[i] = job.result()
data_pub = result_list[i][0].data
counts = data_pub.c.get_counts()
real_counts_list[i] = counts

# Close the batch because no context manager was used.
batch.close()
outcomes = ("00", "01", "10", "11")

# Here we convert "None"s into 0's so that we can sum.

for i in range(0, len(qcs)):
for j in range(0, len(outcomes)):
if real_counts_list[i].get(outcomes[j]) is None:
real_counts_list[i].update({outcomes[j]: 0})

# Here we create a dictionary that holds all the outcomes and sums over their appearances in each of the circuits.

real_total_counts = {}
for i in range(0, len(outcomes)):
real_total_counts[outcomes[i]] = sum(
real_counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
)

print(real_total_counts)
plot_histogram(real_total_counts)
{'00': 7542, '01': 7503, '10': 7304, '11': 7651}

Output of the previous code cell

# This syntax allows you to run the job on a simulator, in case you have exhausted your allotted time on real IBM quantum computers.
# But we strongly advise running this on real quantum computers, since this is meant to be a check of the behavior of real quantum systems.

# This uses a local simulator
# from qiskit_aer import AerSimulator

# This generates a simulator that mimics the real quantum system
# backend_sim = AerSimulator.from_backend(backend)

# Import an estimator, this time from qiskit (we import from Runtime for real hardware)
# from qiskit.primitives import BackendSamplerV2
# sampler = BackendSamplerV2(backend = backend_sim)

# result_list = [None] * len(qcs)
# counts_list = [None] * len(qcs)
# for i in range(0, len(qcs)):
# Define the primitive unified bloc (pub)
# pub = qcs[i]
# job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
# result_list[i] = job.result()
# data_pub = result_list[i][0].data
# counts = data_pub.c.get_counts()
# counts_list[i] = counts

# data_pubs = (result_list[0][0].data,result_list[1][0].data,result_list[2][0].data)
# outcomes = ("00", "01", "10", "11")

# Here we convert "None"s into 0's so that we can sum.

# for i in range(0, len(qcs)):
# for j in range(0, len(outcomes)):
# if counts_list[i].get(outcomes[j]) is None:
# counts_list[i].update({outcomes[j]: 0})

# Here we create a dictionary that holds all the outcomes and sums over their appearances in each of the circuits.

# total_counts = {}
# for i in range(0, len(outcomes)):
# total_counts[outcomes[i]] = sum(
# counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
# )

# print(total_counts)
# plot_histogram(total_counts)
counts_list
[None, None, None]

Крок 4: Постобробка та аналіз

Давай зробимо крок назад і підіб'ємо підсумок: використовуючи підхід прихованих змінних і три зміщені осі, ми отримали обмеження на ймовірність того, що вимірювання дадуть однаковий знак: Psame,hv=4/9P_{same,hv} =4/9. Потім ми взяли розподіли ймовірностей відповідно до квантової механіки й отримали інше значення цієї ймовірності: Psame,gm=1/2P_{same,gm} = 1/2. Передбачення квантової механіки вище за те, що допускає підхід прихованих змінних. Отже, експериментально можна встановити, чи визначені квантово-механічні стани природою до вимірювання, чи вони справді перебувають у ймовірнісній суперпозиції можливих станів.

Ми побудували квантові Circuit так, щоб існувало чотири можливих результати, що відповідають вимірюванню Лукасом і Ріанною того чи іншого знаку проекції спіну: 00, 01, 10 і 11. У випадках 00 і 11 Лукас і Ріанна вимірюють однаковий знак, а у випадках 01 і 10 — протилежні знаки. Ми бачимо, що з дуже хорошим наближенням шанс того, що Лукас і Ріанна отримають однаковий знак, складає близько 50%, що однозначно більше за 4/94/9. Це означає, що жоден набір прихованих змінних не може пояснити такий розподіл ймовірностей, а отже, підхід прихованих змінних несумісний з експериментом.

Існують різні інтерпретації результатів квантово-механічних експериментів, і в експериментальних установках є багато тонкощів, які час від часу переглядаються. Але досі принципи квантової механіки та ймовірнісна інтерпретація квантових станів точно описували отримані результати. Здається, Макс Борн мав рацію.

Давай ще хвилинку поміркуємо про значення цього. Дві частинки виникають унаслідок події розпаду й рухаються в різних напрямках, можливо, тривалий час. Їхні спіни не перебувають у жодному чітко визначеному стані, і вони не несуть із собою жодних «інструкцій» прихованих змінних, що визначали б результати майбутніх вимірювань. Але вимірювання однієї частинки (скажімо, вздовж +z+z) неодмінно визначає результат експерименту над спіном іншої частинки вздовж напряму zz (він має бути z-z). Це означає, що щось у фізиці однієї частинки визначається тим, що робиться з іншою частинкою, яка, можливо, знаходиться далеко. Саме це змушує людей говорити про те, що реальність є «нелокальною».

Дві частинки, подібні до тих, які ми описували, якимось чином «пов'язані» в тому сенсі, що вимірювання однієї можуть впливати на іншу. Такі частинки ми називаємо «заплутаними». Заплутаність — це більше, ніж просто кореляції. Наприклад, можна побудувати класичну машину, яка викидає магніт в один бік північним полюсом угору, а магніт в інший бік — північним полюсом вниз. Такі магніти можуть бути ідеально антикорельованими. Але вимірювання одного ніяк не вплине на інший. У квантово-механічній заплутаності частинка A може перебувати в невизначеному стані (або суміші багатьох станів), і ми можемо зафіксувати її у визначеному стані через вимірювання зовсім іншої частинки (скажімо, B). Нічого подібного не існує в класичному світі.

Це часто відкриває цілий новий світ питань і можливостей. Деякі ідеї, що виникають при цьому, цілком реальні — наприклад, використання заплутаності для обчислень, як у квантових комп'ютерах! Інші виглядають привабливо, але в підсумку не спрацьовують — наприклад, спроби використати заплутаність для передачі інформації швидше за світло. Ми закликаємо тебе ставити всі питання, що виникають, і читати про те, як інші дослідники вивчали ці явища. Там цілий світ квантової механіки для дослідження, а ось лише кілька ресурсів, які варто перевірити:

Курси IBM Quantum:

Цікаві статті з квантової механіки:

Навчальні ресурси з квантової механіки:

Освітні дослідження з квантової механіки:

Запитання

Викладачі можуть замовити версії цих зошитів із ключами відповідей і рекомендаціями щодо розміщення в типових навчальних програмах, заповнивши це коротке опитування про те, як використовуються зошити.

Ключові концепції:

  • Існувала історична суперечка про те, чи були квантові стани лише невідомими або ж невизначеними природою до вимірювання, чи квантова механіка є детерміністичною або ймовірнісною.
  • Приховані змінні, а отже, і локальний реалізм, несумісні зі спостереженнями квантової механіки. Тобто кореляції, що спостерігаються в квантовій механіці, не можна пояснити чітко визначеними змінними, які просто невідомі нам.
  • Квантова механіка є ймовірнісною.
  • Заплутаність реальна та спостережувана.
  • Заплутаність — це не просто кореляції.
  • Ми можемо відображати реальні сценарії на квантові комп'ютери.
  • Приховані змінні — це величини, задані природою, але невідомі людям; у цьому контексті вони не існують.

Запитання «Правда/Хибно»:

  1. П/Х Альберт Ейнштейн стверджував, що квантова механіка як теорія є неповною, оскільки описує лише ймовірності результатів, але не базовий механізм, що їх визначає.
  2. П/Х «Приховані змінні» — це ідея про те, що дві квантово-механічні частинки можуть бути заплутаними.
  3. П/Х Будь-які дві корельовані системи є квантово-механічно заплутаними.
  4. П/Х Квантово-механічна заплутаність важлива для правильного проведення математичних розрахунків, але її не можна побачити в експерименті.
  5. П/Х У більшості випадків квантова механіка не може сказати точного результату експерименту, лише ймовірності того, що будуть виміряні певні результати.
  6. П/Х У квантовій механіці за певних умов стан частинки A може бути змінений станом частинки B, навіть якщо частинки A і B не контактують і не обмінюються жодними частинками.
  7. П/Х Ми можемо відображати реальні експерименти на квантові Circuit.

Запитання з вибором відповіді:

  1. Припустимо, частинка зі спіном 0 розпадається на дві частинки A і B зі спіном 1/2. Вимірювання частинки A показує, що її спін має проекцію вздовж +z+z. Тепер частинка B

    • a. точно має проекцію спіну вздовж z-z
    • b. точно має проекцію спіну вздовж x-x
    • c. точно має проекцію спіну вздовж y-y
    • d. точно має від'ємну проекцію спіну вздовж будь-якої виміряної осі.
  2. Частинка зі спіном 0 розпадається на дві частинки A і B зі спіном 1/2. Якщо виміряно, що частинка A має проекцію вздовж +z+z, які з наступних проекцій є можливими для вимірювання частинки B? Відмітте всі правильні варіанти.

    • a. +x+x
    • b. x-x
    • c. +y+y
    • d. y-y
    • e. +z+z
    • f. z-z
  3. Припустимо, частинка зі спіном 0 розпадається на дві частинки A і B зі спіном 1/2. Що найкраще описує стан частинки A до будь-якого вимірювання?

    • a. Спін частинки A направлений вздовж +z+z.
    • b. Спін частинки A направлений вздовж z-z.
    • c. Спін частинки A направлений вздовж +x+x.
    • d. Спін частинки A визначений вздовж деяких напрямів, але не всіх.
    • e. Орієнтація спіну частинки A не визначена природою до будь-яких вимірювань.
  4. Що з наведеного є/є правдою стосовно Gate Адамара? Відмітте всі правильні варіанти.

    • a. H0=12(0+1)H|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)
    • b. H0=12(01)H|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)
    • c. H12(01)=0H \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)=|0\rangle
    • d. H12(0+1)=0H \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)=|0\rangle
  5. Що з наведеного є/є правдою стосовно Gate X? Відмітте всі правильні варіанти.

    • a. X0=1X|0\rangle = |1\rangle
    • b. X0=12(01)X|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)
    • c. X0=0X|0\rangle = -|0\rangle
    • d. X1=0X|1\rangle = |0\rangle
    • e. X12(01)=X12(10)X\frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)=X\frac{1}{\sqrt{2}}(|1\rangle-|0\rangle)
  6. Який із наведених є двокубітним Gate?

    • a. X
    • b. Ry(θ)R_y(\theta)
    • c. H
    • d. CNOT
  7. Припустимо, Qubit перебуває в стані 0|0\rangle. Яка ймовірність того, що результат вимірювання буде стан 1|1\rangle?

    • a. Рівно 100% на симуляторі без шумів, близько 100% на реальному квантовому комп'ютері
    • b. Близько 100% на симуляторі без шумів, рівно 100% на реальному квантовому комп'ютері
    • c. Рівно 0% на симуляторі без шумів, близько 0% на реальному квантовому комп'ютері
    • d. Близько 0% на симуляторі без шумів, рівно 0% на реальному квантовому комп'ютері

Запитання для обговорення:

  1. Друзі A, B і C обговорюють результати цієї лабораторної роботи, пов'язані з нерівністю Белла. Зокрема, вони розглядають зображення, що показує: квантово-механічна ймовірність вимірювання однакового знаку вздовж осей більша за ту, яку допускає підхід прихованих змінних: (Psame)max,QM>(Psame)max,HV(P_\text{same})_\text{max,QM}>(P_\text{same})_\text{max,HV}. Друг A каже: «Це означає, що ми не знали станів спіну до вимірювання.» Друг B каже: «Ні, це більше, ніж те. Це означає, що спіни взагалі не вказують у певному напрямку до вимірювання. Хоча стан спіну якимось чином може бути визначений або збережений.» Друг C каже: «Ні, це ще більше, ніж те. Це означає, що майбутній стан спіну навіть не був визначений природою до вимірювання.» З ким ти погоджуєшся і чому?

  2. Поясни, як квантово-механічні явища, такі як заплутаність, вказують на те, що реальність є нелокальною.

  3. Які додаткові експерименти ти хотів(-ла) б провести, щоб переконатися в отриманих тут результатах?