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

IBM Quantum Composer

Що це таке?

IBM Quantum® Composer — це графічний інструмент квантового програмування, який дає змогу перетягувати операції для побудови квантових схем та запуску їх на квантовому залізі.

Що він вміє?

Візуалізація станів кубітів

Дивись, як зміни у твоїй схемі впливають на стан кубітів — у вигляді інтерактивної q-сфери або гістограм, що показують імовірності вимірювань чи симуляції вектора стану.

Запуск на квантовому залізі

Запускай свої схеми на реальному квантовому залізі, щоб зрозуміти ефекти апаратного шуму.

Автоматична генерація коду

Замість того щоб писати код вручну, автоматично генеруй код OpenQASM або Python, який поводиться так само, як схема, створена в Composer.

Огляд інтерфейсу

IBM Quantum Composer має настроюваний набір інструментів для побудови, візуалізації та запуску квантових схем на квантових процесорних пристроях (QPU). Використовуй меню «Більше параметрів» у кожному вікні, щоб отримати доступ до додаткових інструментів і дій.

Вікно IBM Quantum Composer.

  1. Каталог операцій — це будівельні блоки квантових схем. Перетягуй ці гейти та інші операції на графічний редактор схем. Різні типи гейтів згруповані за кольором. Наприклад, класичні гейти — темно-сині, фазові гейти — світло-сині, а не-унітарні операції — сірі.

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

  2. Редактор коду — використовуй меню View, щоб відкрити або закрити редактор коду, який дає змогу переглядати код OpenQASM або Qiskit для схеми. Код OpenQASM можна редагувати; код Qiskit доступний лише для читання.

  3. Графічний редактор схем — тут ти будуєш схему. Перетягуй гейти та інші операції на горизонтальні «дроти» кубітів, що утворюють твій квантовий регістр.

    Щоб видалити гейт з дроту, вибери гейт і натисни значок кошика.

    Щоб редагувати параметри та налаштування гейтів, які підтримують редагування, вибери гейт у графічному редакторі та натисни Edit.

  4. Панель інструментів — доступ до часто використовуваних інструментів: скасування та повтору дій, зміни вирівнювання гейтів і переходу до режиму інспекції. У режимі інспекції ти бачиш покроковий перегляд станів кубітів у міру розгортання обчислення схеми. Дізнайся більше в розділі Покрокова інспекція схеми.

  5. Фазові диски — фаза вектора стану кубіта у комплексній площині задається лінією, що простягається від центру діаграми до краю сірого диска (який обертається проти годинникової стрілки навколо центральної точки).

    Використовуй меню View, щоб показати або приховати фазові диски.

  6. Візуалізації — візуалізації характеризують твою схему під час побудови. Вони використовують одиночний симулятор вектора стану, який відрізняється від QPU, вказаного в налаштуваннях «Run circuit». Зауваж, що візуалізації ігнорують будь-які додані тобою операції вимірювання. Увійди та натисни Run circuit, щоб отримати результати з вказаного бекенду.

    Дізнайся більше в розділі Візуалізації.

Побудова, редагування та інспекція квантових схем

Завантажуй файли схем перед виходом із Composer

Якщо хочеш продовжити роботу зі схемою пізніше, обов'язково завантаж файл схеми та збережи його локально перед завершенням поточного сеансу Composer. Використовуй посилання «Save file» у верхньому правому куті або перейди до меню File і вибери «Save file». Коли будеш готовий знову працювати зі схемою, перейди до меню File і вибери «Upload .qasm file», потім знайди файл схеми на своєму локальному диску та натисни Open.

1. Відкрити IBM Quantum Composer

  1. (Необов'язково) Якщо ти ще не увійшов до IBM Quantum, натисни Sign in у верхньому правому куті. Потім можеш або увійти, або Create an IBM Cloud account.
примітка

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

  1. Відкрий IBM Quantum Composer, натиснувши посилання на сторінці Learning. Робочий простір показує безіменну порожню схему. Ти можеш або створити нову схему, або завантажити файл .qasm, щоб продовжити роботу зі схемою, яку вже створив.

  2. Назви свою схему, натиснувши на слова Untitled circuit і ввівши назву. Натисни галочку, щоб зберегти назву.

  3. (Необов'язково) Налаштуй свій робочий простір:

    • Використовуй меню View, щоб змінити тему за замовчуванням на монохромну. Також можеш вибрати, які панелі включити у свій робочий простір, а потім використовувати меню у правому куті будь-якої панелі для доступу до параметрів подальшого налаштування. Параметри показу або приховання фазових дисків, вибір вирівнювання кубітів у схемі та скидання робочого простору до стандартних налаштувань також знаходяться в меню View.
    • Перемикайся між темною і світлою темами робочого простору в нижньому правому куті футера.

Щоб побудувати схему, ти можеш або перетягувати операції, або вводити код OpenQASM у редактор коду.

2. Побудова схеми за допомогою перетягування

Каталог операцій

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

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

Клацни правою кнопкою миші на значку операції та вибери Info, щоб переглянути визначення операції разом із її посиланням на QASM.

Щоб скасувати або повторити дію, використовуй вигнуті стрілки на панелі інструментів.

Вирівнювання

Вибери вільне вирівнювання (Freeform), щоб розміщати операції будь-де у схемі. Для більш компактного вигляду схеми вибери ліве вирівнювання (Left). Щоб побачити порядок виконання операцій, вибери вирівнювання за шарами (Layers), яке застосує ліве вирівнювання та додасть роздільники стовпців, що вказують на порядок виконання — зліва направо та зверху вниз.

Після розміщення операцій у схемі ти можеш продовжувати перетягувати їх на нові позиції.

Копіювання та вставка

Натисни на операцію та використовуй значки в контекстному меню, щоб скопіювати та вставити її.

Вибір кількох операцій

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

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

Наприклад, на наступному зображенні вибрані гейт Адамара на q1 та гейт CX. Гейт Адамара на q0 не вибраний.

Набір вибраних операцій.

Вибери Copy з контекстного меню, щоб скопіювати групу.

Щоб вставити групу операцій, клацни правою кнопкою миші у схемі та вибери Paste.

Побудова користувацької операції за допомогою функції групування

Щоб згрупувати кілька операцій разом і зберегти їх як користувацьку операцію, спочатку вибери операції, як описано вище, а потім вибери Group із контекстного меню. Тебе попросять назвати користувацьку операцію або прийняти назву за замовчуванням. Натисни OK, і користувацька операція буде представлена єдиним блоком як у схемі, так і в каталозі операцій.

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

Ти також можеш побудувати користувацьку операцію безпосередньо в редакторі коду OpenQASM; дивись Створення користувацької операції в OpenQASM для отримання додаткової інформації.

Розгрупування користувацької або попередньо визначеної операції

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

Розгортання визначення операції

Щоб переглянути операції, що складають користувацьку або попередньо визначену операцію, не розгруповуючи їх, натисни Expand definition у контекстному меню, щоб побачити визначальні гейти. Натисни значок знову, щоб згорнути визначення.

Перейменування або видалення користувацької операції

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

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

Додавання або видалення регістрів

Щоб додати або видалити квантові чи класичні регістри, натисни Edit → Manage registers. Ти можеш збільшити або зменшити кількість кубітів чи бітів у схемі та перейменувати регістри. Натисни Ok, щоб застосувати зміни. Також можна просто натиснути на назву регістру (наприклад, q[0]) і скористатися параметрами у контекстному меню, щоб швидко додати або видалити регістри чи кубіти.

Додавання умовного оператора

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

Додавання модифікатора контролю

Модифікатор контролю дає гейт, початкова операція якого тепер залежить від стану контрольного кубіта. Для отримання детальнішої інформації клацни правою кнопкою миші на символі модифікатора контролю в каталозі операцій, потім натисни Info.

Перетягни модифікатор контролю на гейт, щоб додати до нього контроль. На контрольному кубіті з'являється точка, а лінія з'єднує його з цільовим кубітом. Щоб змінити, який кубіт є контрольним або цільовим, натисни на гейт і вибери значок редагування операції (або двічі клацни на гейті), щоб відкрити панель редагування операції, та вкажи свої параметри. На панелі редагування операції ти також можеш видалити контроль з кубіта, натиснувши x поруч із назвою кубіта.

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

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

Дізнайся більше про візуалізацію фазових дисків тут.

Експорт зображення схеми

Щоб експортувати зображення своєї схеми, вибери File → Export circuit image. Відкриється вікно параметрів експорту, де можеш вибрати тему (світла, темна, біле на чорному або чорне на білому), формат (.svg або .png) та чи застосовувати перенос рядків. Після вибору параметрів натисни Export.

3. Побудова схеми за допомогою коду OpenQASM

примітка

IBM Quantum Composer наразі підтримує OpenQASM 2.0.

ОператорОписПриклад
OPENQASM 2.0;Позначає файл у форматі OpenQASM (див. [a])OPENQASM 2.0;
qreg name[size];Оголосити іменований регістр кубітівqreg q[5];
creg name[size];Оголосити іменований регістр бітівcreg c[5];
include "filename";Відкрити та розібрати інший вихідний файлinclude "qelib1.inc";
gate name(params) qargsОголосити унітарний гейт(див. текст статті)
opaque name(params) qargs;Оголосити непрозорий гейт(див. текст статті)
// comment textЗакоментувати рядок тексту// oops!
U(theta,phi,lambda) qubit|qreg;Застосувати вбудований гейт(и) для одного кубіта (див. [b])U(pi/2,2*pi/3,0) q[0];
CX qubit|qreg,qubit|qreg;Застосувати вбудований гейт(и) CNOTCX q[0],q[1];
measure qubit|qreg -> bit|creg;Виконати вимірювання в базисі ZZmeasure q -> c;
reset qubit|qreg;Підготувати кубіт(и) у стані 0\vert 0\ranglereset q[0];
gatename(params) qargs;Застосувати визначений користувачем унітарний гейтcrz(pi/2) q[1],q[0];
if(creg==int) qop;Умовно застосувати квантову операціюif(c==5) CX q[0],q[1];
barrier qargs;Запобігти перетворенням через цей рядок джерелаbarrier q[0],q[1];

[a] Це має з'являтися як перший рядок файлу, що не є коментарем.

[b] Параметри theta, phi та lambda задаються параметричними виразами; для отримання додаткової інформації дивись сторінку 5 статті та Додаток A.

Створення користувацької операції в OpenQASM

Ти можеш визначати нові унітарні операції в редакторі коду (дивись малюнок нижче для прикладу). Операції застосовуються за допомогою оператора name(params) qargs; так само, як і вбудовані операції. Дужки необов'язкові, якщо параметрів немає.

Щоб визначити користувацьку операцію, введи її в редакторі коду OpenQASM у такому форматі: gatename(params) qargs;. Якщо натиснеш +Add у списку операцій, тебе попросять ввести назву для своєї користувацької операції, яку потім можна побудувати в редакторі коду.

Після визначення користувацької операції перетягни її на графічний редактор і використай значок редагування для точного налаштування параметрів.

Приклад користувацької операції
Гейти, що включаються в користувацьку операцію:Гейти в користувацькій операції
Код для нової операції:Нова налаштована операція
Нова операція в графічному редакторі:Нова операція

4. Покрокова інспекція схеми

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

  • У меню View вибери панелі для візуалізацій, які хочеш використовувати.

  • Натисни перемикач Inspect на панелі інструментів. Зауваж, що після увімкнення режиму Inspect ти не можеш додавати жодних операцій, поки він не буде вимкнений.

  • Якщо ти будував схему з увімкненим вільним вирівнюванням (Freeform), зауваж, що режим Inspect автоматично вмикає ліве вирівнювання (Left).

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

Елементи керування для переходу вперед і назад, а також до початку або кінця схеми.

  • Щоб інспектувати лише деякі операції, натисни на операції, які хочеш інспектувати, і над кожною з'явиться кольорове накладення, що вказує на їх включення під час виконання в режимі Inspect. Щоб скасувати вибір операції, натисни на неї знову, і накладення зникне.

  • Щоб дізнатися більше про інтерпретацію візуалізацій, дивись розділ Візуалізації.

  • Щоб вийти з режиму Inspect і повернутися до редагування схеми, натисни перемикач Inspect на панелі інструментів.

Випадковість у симуляторі

Симулятор створює випадковість, генеруючи результати на основі зерна (seed). Зерно — це початкове значення, що вводиться в алгоритм генерації псевдовипадкових чисел. Ти можеш побачити номер зерна, вибравши «Visualizations seed» у меню Edit. Також можна встановити зерно самостійно, змінивши значення у полі.

Запуск схем і перегляд результатів

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

Вибір налаштувань завдання

Натисни Run circuit у верхньому правому куті. У вікні, що відкриється, вибери доступний QPU. Також можна вибрати екземпляр, пов'язаний із планом (наприклад, Open, Flex або Premium Plans). Вибраний екземпляр впливає на те, які QPU доступні тобі. Натисни посилання «View details» у таблиці QPU, щоб дізнатися більше про кожен QPU.

Далі можна встановити кількість пострілів (виконань) своєї схеми, які виконає бекенд.

За бажанням у цій панелі можна назвати завдання та додати теги. Це не змінить назву схеми. Попередньо встановлений тег «Composer» полегшує фільтрацію таблиці Workloads за завданнями Composer. Цей тег можна видалити.

Вікно з параметрами завдання.

примітка

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

Натисни «Run on (назва QPU)»

Ти можеш переглядати хід виконання завдання, натиснувши кнопку «View jobs» у верхньому правому куті, яка відкриє сторінку Workloads на IBM Quantum Platform.

Перегляд результатів

Після завершення завдання дані оновлюються в таблиці Workloads на IBM Quantum Platform.

На сторінці результатів Jobs відображаються деталі запуску, діаграми оригінальної та транспільованої схеми, гістограма результатів, а також вкладки OpenQASM і Qiskit для перегляду обох схем в OpenQASM або Qiskit.

Ти можеш завантажити схеми та гістограму, натиснувши меню у верхньому правому куті кожної діаграми, а потім вибравши формат для завантаження (PNG, PDF або SVG; крім того, гістограму можна експортувати як файл CSV). Схеми OpenQASM можна відкрити безпосередньо в Composer.

Візуалізації

Живі візуалізації в IBM Quantum Composer показують різні погляди на те, як квантові схеми впливають на стан набору кубітів. Кожен тип живої візуалізації докладно пояснено нижче.

Випадковість у симуляторі

Живі візуалізації надходять від одноразового симулятора вектора стану, що відрізняється від QPU, вказаного в налаштуваннях запуску, який може мати кілька запусків. Симулятор створює випадковість, генеруючи результати на основі зерна. Зерно — це початкове значення, що вводиться в алгоритм, який генерує псевдовипадкові числа. Ти можеш побачити номер зерна, вибравши "Visualizations seed" у меню «Редагування». Також ти можеш встановити зерно самостійно, змінивши значення у відповідному полі.

Перегляд візуалізацій

Живі візуалізації відображаються у вікнах у нижній частині робочого простору Composer (за винятком фазового диска, який з'являється в кінці дроту кожного кубіта). Ти можеш вибрати будь-яку комбінацію візуалізацій: вектора стану, ймовірностей і q-сфери — для відображення в нижній частині робочого простору. Вибери або скасуй вибір візуалізацій у меню View.

Завантаження візуалізацій

Завантаж одну з візуалізацій у нижній частині робочого простору Composer, натиснувши меню «Більше параметрів» у вікні візуалізації. Ти можеш завантажити візуалізації у форматі SVG, PNG або CSV із базовими даними. Також можна завантажити зображення візуалізацій гістограм ймовірностей вимірювань і вектора стану у форматі PDF.

Фазовий диск

Стан одного кубіта можна представити як

ψ=1p0+ejφp1,\begin{split}\vert\psi\rangle = \sqrt{1-p}\vert0\rangle + e^{j\varphi} \sqrt{p} \vert1\rangle,\end{split}

де pp — ймовірність того, що кубіт перебуває у стані 1|1\rangle, а φ\varphi — квантова фаза. pp тісно аналогічний класичному імовірнісному біту. При p=0p=0 кубіт перебуває у стані 0|0\rangle, при p=1p=1 — у стані 1|1\rangle, а при p=1/2p=1/2 кубіт є сумішшю 50/50. Ми називаємо це суперпозицією, оскільки, на відміну від класичних бітів, ця суміш може мати квантову фазу. Фазовий диск візуалізує цей стан.

Фазовий диск у кінці кожного кубіта в IBM Quantum Composer показує локальний стан кожного кубіта наприкінці обчислення. Компоненти фазового диска описано нижче.

Ймовірність того, що кубіт перебуває у стані 1|1\rangle

Ймовірність того, що кубіт перебуває у стані 1|1\rangle, представлена синім заповненням диска.

probability the qubit is in the 1 state

Квантова фаза

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

phase of the local qubit state

Приклад: фазові диски для двох різних кубітів

phase disk examples

Два приклади візуалізації фазового диска. Перший приклад — це стан 1|1\rangle, а другий показує стан (01)/2(|0\rangle-|1\rangle)/\sqrt{2} з ненульовою відносною фазою.

Зв'язок зі сферою Блоха

Фазовий диск, що містить усю інформацію сфери Блоха, є двовимірним представленням кубіта. Для перетворення до представлення сфери Блоха: x=2p(1p)Re[ejφ]x=2\sqrt{p(1-p)}\mathrm{Re}[e^{j\varphi} ], y=2p(1p)Im[ejφ]y=2\sqrt{p(1-p)}\mathrm{Im}[e^{j\varphi} ] та z=12pz=1-2p.

N-кубітні стани: максимум 15 кубітів

N-кубітний квантовий стан має вигляд

ψ=1p0...0+k=12N1ejφkpkk,\begin{split}\vert\psi\rangle = \sqrt{1-p}\vert0...0\rangle + \sum_{k=1}^{2^N-1}e^{j\varphi_k} \sqrt{p_k} \vert k\rangle,\end{split}

де pkp_k — ймовірність того, що кубіти перебувають у стані k|k\rangle з квантовою фазою φk\varphi_k відносно стану 0...0|0...0\rangle. p=k0pkp=\sum_{k\neq0}p_k — ймовірність того, що кубіти не перебувають у основному стані 0...0|0...0\rangle. Тут легко побачити, що для N-кубітного квантового стану існує 2N12^N-1 ймовірностей і 2N12^N-1 фаз. Фазовий диск не може представити цей стан, оскільки N-кубітні фазові диски містили б лише NN ймовірностей і NN фаз; це пов'язано з тим, що більшість станів є заплутаними й не розкладаються на незалежні одно-кубітні квантові стани. Щоб вказати, що повна інформація не міститься в цій візуалізації, ми вводимо редуковану чистоту як компонент фазового диска.

Редукована чистота стану кубіта

Радіус чорного кільця представляє редуковану чистоту стану кубіта, яка для кубіта jj у N-кубітному стані ψ|\psi\rangle визначається як Tr[Trij[ψψ]2]\mathrm{Tr}\left[\mathrm{Tr}_{i\neq j}[\left|\psi\rangle\langle\psi\right|\right]^{2}]. Редукована чистота для одного кубіта знаходиться в діапазоні [0.5,1][0.5, 1]; значення одиниці означає, що кубіт не заплутаний з жодною іншою частиною. Навпаки, редукована чистота 0.50.5 вказує на те, що кубіт перебуває у повністю змішаному стані й має певний рівень заплутаності з рештою N1N-1 кубітів, а можливо, і з навколишнім середовищем.

purity of the qubit state

Перегляд ймовірностей

Обмеження: 8 кубітів

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

Розглянь таку квантову схему та її перегляд ймовірностей:

a quantum circuit

measurement probabilities view

Схема переводить два кубіти у стан ψ=(00+01+1011)/2.|\psi\rangle = (|00\rangle + |01\rangle+ |10\rangle-|11\rangle) / 2. Стани обчислювального базису — це 00,10,01,|00\rangle, |10\rangle, |01\rangle, та 11.|11\rangle. Ймовірності для кожного з обчислювальних станів дорівнюють 1/4.

Перегляд Q-сфери

Обмеження: 5 кубітів

Q-сфера представляє стан системи одного або кількох кубітів, пов'язуючи кожен стан обчислювального базису з точкою на поверхні сфери. У кожній точці видимий вузол. Радіус кожного вузла пропорційний ймовірності (pkp_k) його базового стану, тоді як колір вузла вказує на квантову фазу (φk\varphi_k).

Вузли розміщені на q-сфері так, що базовий стан з усіма нулями (наприклад, 000)|000\rangle) знаходиться на її північному полюсі, а базовий стан з усіма одиницями (наприклад, 111|111\rangle) — на південному полюсі. Базові стани з однаковою кількістю нулів (або одиниць) лежать на спільній широті q-сфери (наприклад, 001,010,100|001\rangle, |010\rangle, |100\rangle). Починаючи з північного полюса q-сфери і просуваючись на південь, кожна наступна широта має базові стани з більшою кількістю одиниць; широта базового стану визначається його відстанню Геммінга від нульового стану. Q-сфера містить повну інформацію про квантовий стан у компактному представленні.

Розглянь таку квантову схему та її q-сферу, що представляє стан, який схема створює:

a quantum circuit

q-sphere view

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

У чому різниця між сферою Блоха і q-сферою?

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

Перегляд вектора стану

Обмеження: 6 кубітів

Прийнято називати pkeiφk\sqrt{p_k}e^{i\varphi_k} квантовою амплітудою. Цей перегляд візуалізує квантові амплітуди у вигляді стовпчастої діаграми. Горизонтальна вісь позначає стани обчислювального базису. Вертикальна вісь вимірює величину амплітуд (pk\sqrt{p_k}), пов'язаних з кожним станом обчислювального базису. Колір кожного стовпця представляє квантову фазу (φk{\varphi_k}).

Розглянь таку квантову схему та її перегляд вектора стану:

a quantum circuit

statevector view

Схема переводить два кубіти у стан ψ=(00+01+1011)/2|\psi\rangle = (|00\rangle + |01\rangle+ |10\rangle-|11\rangle) / 2. Стани обчислювального базису — це 00|00\rangle, 10|10\rangle, 01|01\rangle та 11|11\rangle. Величини амплітуд дорівнюють 1/21/2, а квантові фази відносно основного стану: 00 для 01|01\rangle та 10|10\rangle, і π\pi для 11|11\rangle.

Глосарій операцій Composer

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

Кожен запис нижче надає деталі та посилання на OpenQASM для кожної операції. Дивись тему Побудова схеми за допомогою коду OpenQASM для отримання додаткової інформації.

Зображення q-сфери в кожному записі Gate нижче показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}|i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate. Дивись тему q-сфера для отримання додаткової інформації про цю візуалізацію.

Ти можеш визначити власну операцію для використання в IBM Quantum Composer. Для отримання інструкцій дивись тему Створення власної операції в OpenQASM.

Кольори Gate

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

Натисни на квантову операцію нижче, щоб переглянути її визначення.

Класичні Gate

Gate NOT

Gate NOT, також відомий як Gate Паулі X, перемикає стан 0\left|0\right\rangle на 1\left|1\right\rangle і навпаки. Gate NOT еквівалентний RX для кута π\pi або 'HZH'.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
x_gatex q[0];image19Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate CNOT

Контрольований Gate NOT, також відомий як Gate controlled-x (CX), діє на пару кубітів, де один виступає «керуючим», а інший — «цільовим». Він виконує NOT на цільовому кубіті щоразу, коли керуючий перебуває у стані 1\left|1\right\rangle. Якщо керуючий кубіт перебуває у суперпозиції, цей Gate створює заплутаність.

Усі унітарні схеми можна розкласти на однокубітні Gate та Gate CNOT. Оскільки двокубітний Gate CNOT коштує набагато більше часу для виконання на реальному обладнанні, ніж однокубітні Gate, вартість схеми іноді вимірюється кількістю Gate CNOT.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
CX-Gatecx q[0], q[1];image19Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate Тоффолі

Gate Тоффолі, також відомий як Gate з подвійним керуванням NOT (CCX), має два керуючих кубіти та один цільовий. Він застосовує NOT до цільового кубіта лише тоді, коли обидва керуючих перебувають у стані 1\left|1\right\rangle.

Gate Тоффолі разом з Gate Адамара утворюють універсальний набір Gate для квантових обчислень.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
ccx-gateccx q[0], q[1], q[2];ccx_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate SWAP

Gate SWAP обмінює стани двох кубітів.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
SWAP gateswap q[0], q[1];swap_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate тотожності

Gate тотожності (іноді його називають Id або I Gate) — це фактично відсутність Gate. Він гарантує, що до кубіта нічого не застосовується протягом однієї одиниці часу Gate.

Посилання ComposerПосилання Qasm
Identity gateid q[0];

Фазові Gate

Gate T

Gate T еквівалентний RZ для кута π/4\pi/4. Відмовостійкі квантові комп'ютери компілюватимуть усі квантові програми лише до Gate T та його оберненого, а також Gate Кліффорда.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
t_gatet q[0];image29Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate S

Gate S застосовує фазу ii до стану 1\left|1\right\rangle. Він еквівалентний RZ для кута π/2\pi/2. Зауваж, що S=P(π/2\pi/2).

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
s_gates q[0];image25Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate Z

Gate Паулі Z діє як тотожність на стан 0\left|0\right\rangle і множить знак стану 1\left|1\right\rangle на -1. Тому він перемикає стани +\left|+\right\rangle і \left|-\right\rangle. У базисі +/- він виконує ту саму роль, що й Gate NOT у базисі 0\left|0\right\rangle/1\left|1\right\rangle.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
z_gatez q[0];image23Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate TT^{\dagger}

Також відомий як Gate Tdg або T-спряжений.

Обернений до Gate T.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
T-dagger gatetdg q[0];image31Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate SS^{\dagger}

Також відомий як Gate Sdg або S-спряжений.

Обернений до Gate S.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
S-dagger gatesdg q[0];image27Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Фазовий Gate

Фазовий Gate (раніше відомий як Gate U1) застосовує фазу eiθe^{i\theta} до стану 1\left|1\right\rangle. При певних значеннях θ\theta він еквівалентний іншим Gate. Наприклад, P(π\pi)=Z, P(π\pi/22)=S та P(π/4\pi/4)=T. З точністю до глобальної фази eiθ/2e^{i\theta/2} він еквівалентний RZ(θ\theta).

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
p_gatep(theta) q[0];p_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

В IBM Quantum Composer значення theta за замовчуванням дорівнює π/2\pi/2.

Gate RZ

Gate RZ реалізує exp(iθ2Z)exp(-i\frac{\theta}{2}Z). На сфері Блоха цей Gate відповідає обертанню стану кубіта навколо осі z на заданий кут.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
rz_gaterz(angle) q[0];image17Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

В IBM Quantum Composer значення angle за замовчуванням дорівнює π/2\pi/2. Саме цей кут використовується у візуалізації q-сфери.

Неунітарні оператори та модифікатори

Операція скидання

Операція скидання повертає кубіт до стану 0\left|0\right\rangle незалежно від його стану до застосування операції. Це незворотна операція.

Посилання ComposerПосилання OpenQASM
0-operareset q[0];

Вимірювання

Вимірювання у стандартному базисі, також відомому як z-базис або обчислювальний базис. У поєднанні з Gate може бути використано для реалізації будь-якого типу вимірювання. Це незворотна операція.

Посилання ComposerПосилання OpenQASM
Measurement in the standard or z basismeasure q[0];

Модифікатор керування

Модифікатор керування створює Gate, початкова операція якого тепер залежить від стану керуючого кубіта. Коли керуючий перебуває у стані 1|1\rangle, цільовий кубіт (або кубіти) зазнає вказаної унітарної еволюції. Навпаки, якщо керуючий перебуває у стані 0|0\rangle, жодна операція не виконується. Якщо керуючий перебуває у стані суперпозиції, результуюча операція визначається з лінійності.

Перетягни модифікатор керування на Gate, щоб додати до нього керування. Точки з'являться вище та нижче Gate на дротах кубітів, які можуть бути цілями керування; натисни на одну або кілька точок, щоб призначити ціль одному або кільком кубітам. Ти також можеш призначити керування, клацнувши Gate правою кнопкою миші.

Щоб видалити керування, клацни Gate правою кнопкою миші і вибери опцію видалення керування.

Посилання ComposerПосилання OpenQASM
Control modifierc

Операція бар'єру

Щоб зробити твою квантову програму більш ефективною, компілятор намагатиметься комбінувати Gate. Бар'єр — це інструкція компілятору запобігти таким комбінаціям. Крім того, він корисний для візуалізацій.

Посилання ComposerПосилання OpenQASM
barrierbarrier q;

Gate Адамара

Gate H

Gate H, або Gate Адамара, обертає стани 0\left|0\right\rangle і 1\left|1\right\rangle до +\left|+\right\rangle і \left|-\right\rangle відповідно. Він корисний для створення суперпозицій. Якщо на класичному комп'ютері є універсальний набір Gate і ти додаєш Gate Адамара, він стає універсальним набором Gate для квантового комп'ютера.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
h-gateh q[0];image1Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Квантові Gate

Gate X\sqrt{X}

Також відомий як Gate квадратного кореня NOT.

Цей Gate реалізує квадратний корінь з X, X\sqrt{X}. Застосування цього Gate двічі поспіль дає стандартний Gate Паулі-X (Gate NOT). Як і Gate Адамара, X\sqrt{X} створює стан рівної суперпозиції, якщо кубіт перебуває у стані 0|0\rangle, але з іншою відносною фазою. На деякому обладнанні це нативний Gate, що може бути реалізований імпульсом π/2\pi/2 або X90.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
sx_gatesx q[0];sx_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate X\sqrt{X}^{\dagger}

Також відомий як Gate SXdg або квадратний корінь NOT-спряжений.

Це обернений до Gate X\sqrt{X}. Застосування його двічі поспіль дає Gate Паулі-X (Gate NOT), оскільки Gate NOT є оберненим до самого себе. Як і Gate X\sqrt{X}, цей Gate може бути використаний для створення стану рівної суперпозиції, і він також нативно реалізується на деякому обладнанні за допомогою імпульсу X90.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
sxdg_gatesxdg q[0];sxdg_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate Y

Gate Паулі Y еквівалентний Ry для кута π\pi. Він еквівалентний застосуванню X і Z з точністю до глобального фазового множника.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
y_gatey q[0];image21Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate RX

Gate RX реалізує exp(iθ2X)exp(-i\frac{\theta}{2}X). На сфері Блоха цей Gate відповідає обертанню стану кубіта навколо осі x на заданий кут.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
rx_gaterx(angle) q[0];image13Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

В IBM Quantum Composer значення angle за замовчуванням дорівнює π/2\pi/2. Саме цей кут використовується у візуалізації q-сфери.

Gate RY

Gate RY реалізує exp(iθ2Y)exp(-i\frac{\theta}{2}Y). На сфері Блоха цей Gate відповідає обертанню стану кубіта навколо осі y на заданий кут і не вводить комплексних амплітуд.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
ry_gatery(angle) q[0];image15Представлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

В IBM Quantum Composer значення angle за замовчуванням дорівнює π/2\pi/2. Саме цей кут використовується у візуалізації q-сфери нижче.

Gate RXX

Gate RXX реалізує exp(iθ/2XX)\exp(-i \theta/2 X \otimes X). Gate Мьолмера–Серенсена, нативний Gate на системах іонних пасток, може бути виражений як сума Gate RXX.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
rxx-gaterxx(angle) q[0], q[1];rxx_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

В IBM Quantum Composer значення angle за замовчуванням дорівнює π/2\pi/2.

Gate RZZ

Gate RZZ вимагає одного параметра: кута, вираженого в радіанах. Цей Gate є симетричним; перестановка двох кубітів, на які він діє, нічого не змінює.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
rzz_gaterzz(angle) q[0], q[1];rzz_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

В IBM Quantum Composer значення angle за замовчуванням дорівнює π/2\pi/2.

Gate U

(Раніше відомий як Gate U3) Три параметри дозволяють побудувати будь-який однокубітний Gate. Має тривалість одну одиницю часу Gate.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
u_gateu(theta, phi, lam) q[0];u3_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

В IBM Quantum Composer значення angle за замовчуванням дорівнює π/2\pi/2.

Gate RCCX

Спрощений Gate Тоффолі, також відомий як Gate Марголуса.

Спрощений Gate Тоффолі реалізує Gate Тоффолі з точністю до відносних фаз. Ця реалізація вимагає трьох Gate CX, що є мінімально можливою кількістю, як показано в https://arxiv.org/abs/quant-ph/0312225. Зауваж, що спрощений Тоффолі не еквівалентний Тоффолі, але може бути використаний у місцях, де Gate Тоффолі потім знову скасовується.

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
rccx-gaterccx a, b, c;rccx_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.

Gate RC3X

Спрощений Gate Тоффолі з трьома елементами керування.

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

Посилання ComposerПосилання OpenQASMQ-сфераПримітка щодо представлень q-сфери
rc3x-gaterc3x a, b, c, d;rc3x_qsphПредставлення q-сфери показує стан після того, як Gate діє на початковий стан рівної суперпозиції 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, де nn — кількість кубітів, необхідних для підтримки Gate.