Использование квантовых вентилей в библиотеке Qiskit на Python, часть первая

Всем привет! Меня зовут Сергей Ширкин, это моя первая публикация на vc.ru. Немного о себе: моя основная деятельность связана с математикой, машинным обучением и искусственным интеллектом.

Я работаю дата сайентистом в Dentsu Aegis, а также являюсь деканом факультетов Искусственного интеллекта и Аналитики Big Data в GeekUniversity на образовательном портале GeekBrains.

С этой статьи я начинаю рассказ про то, как работать с квантовыми вычислениями на Python, используя библиотеку Qiskit. Этот цикл статей рассчитан на аудиторию, которая уже знает в общих чертах, что такое квантовые вычисления, а также владеет математикой на уровне первого курса вуза (в основном потребуется линейная алгебра и комплексные числа) и умеет программировать на Python. Здесь не будет научпопа и новостей, только квантовые вычисления в чистом виде. Если все пойдет хорошо, то также мы начнем изучать квантовое машинное обучение, библиотеку PennyLane и многое другое.

Итак, начинаем.

Квантовые вентили (quantum gates) в квантовых вычислениях играют примерно такую же роль, как логические операторы (НЕ, И, ИЛИ и т.д.) в вычислениях, выполняемых с помощью классических компьютеров. В частности, практически аналогично логическому оператору НЕ действует квантовый вентиль X: кубит, на который он воздействует, меняет свое значение на противоположное:

Использование квантовых вентилей в библиотеке Qiskit на Python, часть первая

То же самое действие можно привести в векторной форме:

Использование квантовых вентилей в библиотеке Qiskit на Python, часть первая

Загрузим необходимые модули из библиотеки qiskit (в данном примере используется квантовый симулятор, но можно также и использовать квантовый компьютер в качестве бэкенда) и запишем последовательность этих операций, а также в конце измерим состояние кубита:

from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister from qiskit import execute # Создание квантового регистра q = QuantumRegister(1) # Создание классического регистра c = ClassicalRegister(1) # Создание схемы circuit = QuantumCircuit(q, c) # Применение квантового вентиля X circuit.x(q[0]) # Измерение кубита circuit.measure(q, c) # Запуск операций на квантовом симуляторе result = execute(circuit , ’local qasm simulator’).result() print(result.get_counts())

Как известно, состояния кубита (квантового бита), в отличие от классического бита, помимо базисных состояний 0 и 1 (для кубита используются обозначения |0⟩ и |1⟩), может включать в себя также и сочетание этих состояний, взятых с определенной амплитудой. Такое явление, когда кубит находится сразу в двух состояниях с разной вероятностью (до измерения кубита его состояние не может быть точно установлено), называется суперпозицией. Амплитуда может быть не только положительной, но и отрицательной, а в общем случае она является комплексным числом. Квадрат модуля амплитуды равен вероятности состояния.

В данном примере кубит переходит в состояние суперпозиции - в этом случае такой, что вероятность возникновения состояний |0⟩ и |1⟩ равна 50% (несмотря на то, что их амплитуды противоположны по знаку). Для получения суперпозиции используется оператор Адамара:

Использование квантовых вентилей в библиотеке Qiskit на Python, часть первая

Подействуем таким оператором на кубит, изначально имеющий состояние 1:

Использование квантовых вентилей в библиотеке Qiskit на Python, часть первая
q = QuantumRegister(1) c = ClassicalRegister(1) circuit = QuantumCircuit(q, c) # получение состояния |1⟩ из состояния |0⟩ circuit.x(q[0]) # Применение оператора Адамара circuit.h(q[0]) # Измерение состояния кубита circuit.measure(q, c) # Запуск операций на квантовом симуляторе result = execute(circuit , ’local qasm simulator’).result() print(result.get_counts())

Состояние кубита, которое мы получили до измерения, соответствует одному из базисных векторов базиса Адамара, который обозначается как |-⟩. Получить из него другой базисный вектор |+⟩ можно с помощью квантового вентиля Z:

Использование квантовых вентилей в библиотеке Qiskit на Python, часть первая

В коде применение вентиля Z выглядит так:

circuit.z(q[0])

Если производить измерение такого кубита в базисе векторов |0⟩ и |1⟩, то примерно в половине случаев будет получаться состояние |0⟩, а в другой половине |1⟩.

Мы рассмотрели применение простейших квантовых вентилей к однокубитной системе.

В следующей части изучим более сложные квантовые вентили, операции с двумя кубитами, а также рассмотрим работу с сервисом облачных квантовых вычислений IBM Q Experience.

2727
3 комментария

Хабр переехал на vc?

9

Я бы ожидал такое прочесть на хабре

3

Очень обрадовался когда увидел в названии Qiskit, но почему-то пропало желание читать после упоминания GeekBrains.

2
Китайская BYD представила платформу для запуска дронов DJI с крыши автомобиля

Она доступна в Китае по цене около $2200.

Источник: Handout / SCMP
1212
33
11
реклама
разместить
Apple представила iPad Air с чипом M3 и базовый iPad с чипом A16

А также обновлённую клавиатуру Magic Keyboard с трекпадом для iPad Air.

Источник здесь и далее — Apple 
1616
1111
22
11
Вместе навсегда. МТС запустила услугу сохранения номера

Показываем, как сохранить за собой номер телефона и не переживать за доступ к картам и аккаунтам, если вы не пользуетесь SIM-картой постоянно.

Вместе навсегда. МТС запустила услугу сохранения номера
11
Разработчики протестировали ИИ-модели с помощью игры Super Mario — дольше всех играла Claude 3.7 Sonnet

А быстрее всех «умерла» GPT-4o.

88
33
11
YandexGPT крашнулась на кнопке старт...
На двух станциях метро в Санкт-Петербурге запустили оплату проезда «лицом»

Чтобы воспользоваться этим методом, нужно зарегистрироваться в системе и привязать биометрию к банковской карте.

Источник: Комитет по транспорту Санкт-Петербурга / «Фонтанка»
77
22
22
Все же понимают, что это просто сбор базы данных лиц, привязанных еще и к госуслугам, чтобы потом через обычные городские камеры отслеживать, если ты участвовал в том, что запрещено :)
GPT-4.5 — модель с «эмоциональным интеллектом» и «человечными» ответами: отзывы и критика

Собрали комментарии разработчиков, примеры использования и тесты.

1010
11
В Якутии определили победителей регионального этапа Всероссийского конкурса «Моя профессия – ИТ»
Фото: Саргына Скрябина, ЯСИА
[]