Створення та запуск твоєї першої квантової програми
Вступ
У наступному відео Олівія Лейнс проведе тебе крізь матеріал цього уроку. Або ж ти можеш відкрити відео на YouTube для цього уроку в окремому вікні.
Ласкаво просимо до Use a quantum computer today! Мета цього курсу — допомогти тобі запустити код на справжньому квантовому комп'ютері в найкоротші терміни, без жодних попередніх знань. Почнімо.
Цей перший урок — лагідний, практичний вступ до квантових обчислень, що підходить як допитливим початківцям, так і зайнятим керівникам. Ти дізнаєшся про квантові схеми та напишеш невелику квантову програму, яка створює заплутаніст ь (entanglement), і запустиш її на справжньому квантовому комп'ютері IBM®. Також є можливість запустити ту саму програму на симуляторі, якщо ти вирішиш пропустити запуск на справжньому квантовому комп'ютері.
Ти можеш запустити цей ноутбук від початку до кінця в новому середовищі Google Colab або локально.
Налаштування
Щоб запустити цей ноутбук у Google Colab, тобі потрібен обліковий запис Google, аби відкривати ноутбуки та виконувати клітинки в браузері.
Щоб запустити на справжньому квантовому комп'ютері IBM, тобі також знадобиться (безкоштовний) обліковий запис IBM Quantum® Platform. Ти можеш відкрити інстанцію за допомогою Open Plan, щоб отримати 10 хвилин часу квантового процесорного блоку (QPU) за ковзне вікно 28 днів — насправді це чимало! Якщо у тебе виникнуть проблеми з обліковим записом, зверни увагу на сторінку підтримки.
Також можна запустити цей ноутбук локально після встановлення Qiskit, дотримуючись інструкцій на IBM Quantum Platform.
Встановлення та імпорти
У Colab ми встановлюємо залежності всередині ноутбука, щоб усі використовували однакові інструменти. У наступній клітинці встановлюється Qiskit із модулем візуалізації та двома доповненнями: Aer (швидкі симулятори) і клієнт IBM Runtime (для запусків на квантовому комп'ютері).
Далі йде низка імпортів. Клас QuantumCircuit — це місце, де ми визначаємо наші квантові біти, або кубіти, та операції над ними. Це наш перший квантовий термін: кубіт — базовий будівельний блок квантових обчислень, так само як біт є будівельним блоком класичних обчислень. По мірі створення схеми ми дізнаємось більше про особливі властивості кубітів. plot_histogram буде використовуватися для візуалізації результатів нашої квантов ої схеми. AerSimulator дозволяє симулювати квантову схему на класичному комп'ютері. Але симулятори не можуть запускати квантові схеми в тому ж масштабі, що й справжні квантові комп'ютери — саме тому нам потрібні справжні квантові комп'ютери. Це може бути корисно для тестування, налагодження або навчальних цілей, або якщо твої 10 безкоштовних хвилин часу QPU вичерпані. preset_passmanagers допомагають оптимізувати схеми для ефективного запуску на апаратному забезпеченні, що стає дуже важливим по мірі ускладнення наших схем. Sampler і QiskitRuntimeService необхідні для фактичного запуску схеми на квантовому комп'ютері. Більше про це пізніше.
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit
!pip install 'qiskit[visualization]' qiskit-ibm-runtime qiskit-aer
# Core Qiskit imports
from qiskit import QuantumCircuit
from qiskit.visualization import plot_histogram
from qiskit_aer import AerSimulator
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
# IBM Runtime specific imports
from qiskit_ibm_runtime import SamplerV2 as Sampler, QiskitRuntimeService
Далі ми виконаємо швидку перевірку середовища. Ми підтверджуємо версії та перевіряємо імпорти.
Якщо тут щось не спрацьовує, зазвичай це проблема з встановленням залежностей; усунення цього зараз запобігає заплутаним помилкам пізніше.
import sys
import qiskit
import qiskit_aer
import qiskit_ibm_runtime
print("Python:", sys.version.split()[0])
print("qiskit:", qiskit.__version__)
print("qiskit-aer:", qiskit_aer.__version__)
print("qiskit-ibm-runtime:", qiskit_ibm_runtime.__version__)
Python: 3.12.2
qiskit: 2.2.3
qiskit-aer: 0.17.2
qiskit-ibm-runtime: 0.41.1
Невелике відхилення: використай Composer
Перш ніж писати код, корисно побачити схеми візуально. IBM Quantum Composer дозволяє будувати схеми, перетягуючи вентилі на дроти. Це чудовий спосіб зрозуміти, що робить схема, не відволікаючись на синтаксис.
Ві дкрий Composer тут.
Після завантаження запусти покроковий посібник із меню: Help | Build your first circuit. Проходь його у власному темпі. По мірі просування зверни увагу на те, як кожен вентиль змінює очікуване вимірювання.
Посібник проводить через побудову схеми "Hello World". Вона візуалізується у вигляді так званої діаграми схеми, де кубіти представлені горизонтальними лініями, а вентилі, що діють на ці кубіти, — прямокутниками або іншими символами на лініях. Ця схема знайомить нас із кількома ключовими особливостями кубітів і квантових комп'ютерів:
По-перше, червоний прямокутник з позначкою "H" — це вентиль Адамара, який створює стан суперпозиції кубіта 0. На відміну від біта, який може бути лише в стані 1 або 0, стан кубіта може включати обидві можливості одночасно, з певними вагами (які називаються амплітудами), прив'язаними до кожної. Суперпозиція не означає, що ти коли-небудь побачиш обидва результати в одному вимірюванні; це означає, що стан налаштований так, що будь-який результат може статися при вимірюванні.
По-друге, кола та вертикальна лінія, що з'єднує два кубіти, — це вентиль CNOT, який генерує заплутаність між двома кубітами. Заплутаність — це особливий вид зв'язку між кубітами. Коли кубіти заплутані, результати вимірювань можуть бути сильно корельовані в спосіб, що не відповідає тому, чого ми очікували б від звичайних незалежних підкидань монети або від будь-якої класичної кореляції. Коли два кубіти заплутані, вимірювання одного миттєво повідомить тобі результат вимірювання іншого.
Ще одна ключова ідея, яку ти побачиш у посібнику, — це кількість спроб (shots). Оскільки вимірювання — це момент, коли кубіт перестає поводитися як квантовий стан і дає тобі класичний результат, стан суперпозиції ймовірнісно колапсує до 0 або 1 при вимірюванні. Тому, щоб дізнатися про цю суперпозицію, потрібно вимірювати її багато разів, запускаючи одну й ту саму схему для накопичення статистики. Це й називається кількістю спроб (shots).