Архив рубрики ~Лента новостей~

Квантовые симуляции с использованием Python

Квантовые симуляции с использованием Python

Проведение квантовых экспериментов с помощью Qiskit-Aer

Делиться

NOVOSTI
Фото Юсуфа Онука на Unsplash

Введение

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

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

Схемы используются для проведения экспериментов. В частности, существует 2 типа квантовых симуляций :

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

В этом уроке я покажу вам, как запустить квантовое моделирование на вашем компьютере. Эта статья является продолжением статьи «Руководство для начинающих по квантовым вычислениям с использованием Python».

Настраивать

Прежде всего, нам необходимо установить Qiskit ( pip install qiskit ), библиотеку с открытым исходным кодом для работы с квантовыми компьютерами, разработанную IBM, которая позволяет моделировать квантовое устройство на локальном компьютере.

Самый простой код, который мы можем написать, — это создание квантовой схемы (среды для квантовых вычислений) всего с одним кубитом и инициализация её значением 0. Для измерения состояния кубита нам нужен вектор состояния , который, по сути, показывает текущую квантовую реальность вашей схемы.

 from qiskit import QuantumCircuit from qiskit.quantum_info import Statevector q = QuantumCircuit(1,0) #circuit with 1 quantum bit and 0 classic bit state = Statevector.from_instruction(q) #measure state state.probabilities() #print prob% 

Это означает, что вероятность того, что кубит равен 0 (первый элемент), составляет 100%, а вероятность того, что кубит равен 1 (второй элемент), составляет 0%. Давайте представим это состояние:

 from qiskit.visualization import plot_bloch_multivector plot_bloch_multivector(state, figsize=(3,3)) 

Схемы

Квантовый вентиль — это единичная операция, изменяющая квантовое состояние. Квантовая схема — это последовательность вентилей, применяемых к кубитам во времени.

Давайте начнём собирать простую схему.

 q = QuantumCircuit(1,0) #circuit with 1 quantum bit and 0 classic bit q.draw(output="mpl", scale=0.7) #show circuit with matplotlib 

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

 q = QuantumCircuit(1,1) #add 1 classic bit q.draw(output="mpl", scale=0.7) 

Для построения схемы необходимо понимать, чего вы хотите достичь, или, другими словами, нужно знать логические элементы и их функции. Подход аналогичен нейронным сетям: вы просто используете слой за слоем для получения желаемого результата (например, свертки для изображений и эмбеддинги для текста). Наиболее распространенной операцией является вентиль Адамара (H-вентиль), который применяет принцип суперпозиции к кубиту.

 q = QuantumCircuit(1,1) qh(0) #Hadamard gate (Superposition) q.draw(output="mpl", scale=0.7) 

На изображении видно, что к кубиту применяется красный H-вентиль, превращающий его из однозначного 0 в смесь 0 и 1 в соотношении 50/50. Добавим измерительный блок, который схлопывает эту суперпозицию в действительное значение (либо 0, либо 1), сохраняя этот результат в классический бит.

 q = QuantumCircuit(1,1) qh(0) q.measure(qubit=0, cbit=0) #measure qubit with classic bit q.draw(output="mpl", scale=0.7) 

Схема была математически смоделирована моим классическим компьютером так же, как и была написана на бумаге, но она еще не была реализована.

Моделирование

Квантовое моделирование — это моделирование поведения квантовой системы с помощью компьютера. Если вы пишете схему (как я сделал выше), вы просто описываете математическую модель. Для её запуска необходим бэкэнд-движок, который выполняет квантовую схему в режиме моделирования.

Qiskit-Aer ( pip install qiskit-aer ) — это движок, который запускает квантовые схемы в режиме симуляции. Aer позволяет запускать квантовые схемы на вашем компьютере, имитируя различные аспекты реального квантового оборудования (квантовое состояние, измерение, зашумленная система).

Я собираюсь провести эксперимент с ранее написанной схемой (классический бит + кубит в режиме суперпозиции) 1000 раз.

 from qiskit_aer import AerSimulator sim = AerSimulator() result = sim.run(q, shots=1000).result() result.get_counts() 

Кубит измерялся 1000 раз, в результате чего 500 раз получалось значение 1, а остальные 500 раз — 0. Это можно визуализировать:

 from qiskit.visualization import plot_histogram plot_histogram(result.get_counts(), figsize=(5,4), color="black", title="1-qubit in Superposition") 

Результат идеально ровный, потому что Aer может моделировать идеальные квантовые состояния, что невозможно на реальном оборудовании. В реальном мире квантовая информация чрезвычайно хрупка, и она работает, исходя из предположения, что система идеальна и стабильна, позволяя частицам существовать в нескольких состояниях ( когерентность ). Но как только кубит взаимодействует с чем-либо, например, с теплом или вибрациями, система теряет свою гармонию и квантовые свойства ( декогерентность ).

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

Для большей реалистичности эксперимента можно добавить шум в симуляцию.

 from qiskit_aer import noise n = noise.NoiseModel() error = noise.depolarizing_error(param=0.10, num_qubits=1) #10% error probability n.add_all_qubit_quantum_error(error=error, instructions=['h']) sim = AerSimulator(noise_model=n) result = sim.run(q, shots=1000).result() plot_histogram(result.get_counts(), figsize=(5,4), color="black", title="1-qubit in Superposition") 

Заключение

Эта статья представляет собой учебное пособие по квантовому моделированию с использованием Python и Qiskit . Мы узнали, в чем разница между реальным аппаратным обеспечением и квантовым экспериментом. Мы также научились проектировать квантовые схемы и запускать моделирование на классической машине.

Полный код для этой статьи: GitHub

Надеюсь, вам понравилось! Не стесняйтесь обращаться ко мне с вопросами и отзывами, или просто чтобы поделиться своими интересными проектами.

👉 Давайте общаться 👈

(Все изображения предоставлены автором, если не указано иное)

Мауро Ди Пьетро Посмотреть все работы Мауро Ди Пьетро

Источник: towardsdatascience.com

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Архив рубрики ~Коротко из Telegram~ IT-специалисты оказались среди профессий с самым высоким уровнем эмоционального выгорания…. Архив рубрики ~Коротко из Telegram~ Забавная история, которая на самом деле опирается на реальную новость:… Архив рубрики ~Коротко из Telegram~ Apple подняла официальные цены на iPhone. Пока что только в… Архив рубрики ~Коротко из Telegram~ Дизайн без ИИ-слопа и фиолетовой боли Дизайн без ИИ-слопа и… Новости робототехники Благодаря новому финансированию монументальный план привезти своих строительных роботов в США. Новости робототехники Телеуправляемый андроид Unitree G1 прооперировал свиней. Им лапароскопически удалили желчный пузырь Новости робототехники Weave Robotics запускает Айзека, своего первого представителя робота-гуманоида Новости робототехники Страх перед человекоподобными роботами подтолкнул рабочих к забастовке на автомобильном заводе Hyundai. Новости робототехники Основатель Максимо рассказывает, как робототехника строит строительство солнечной энергетики. Архив рубрики ~Обо всем~ Астрономы нашли кандидата в самый далекий галактический бар. Он существовал спустя почти 1,2 миллиарда лет после Большого Взрыва Новости робототехники По заключению Национального совета по безопасности на транспорте (NTSB), водитель Tesla, который объяснил аварию тем, что автопилот нажал на педаль газа на 100%. Новости робототехники Mondo Robotics представляет собой Beni, вездеходного робота с электрической розеткой и искусственным интеллектом для потребителей. Архив рубрики ~Обо всем~ «Парачастицы» могут стать представителями третьего царства квантовых частиц Архив рубрики ~Коротко из Telegram~ Нейросеть обучили подсчету и оценке качества семян Архив рубрики ~Коротко из Telegram~ IT-специалисты оказались среди профессий с самым высоким уровнем эмоционального выгорания…. Архив рубрики ~Коротко из Telegram~ Забавная история, которая на самом деле опирается на реальную новость:… Архив рубрики ~Коротко из Telegram~ Apple подняла официальные цены на iPhone. Пока что только в… Архив рубрики ~Коротко из Telegram~ Дизайн без ИИ-слопа и фиолетовой боли Дизайн без ИИ-слопа и… Новости робототехники Благодаря новому финансированию монументальный план привезти своих строительных роботов в США. Новости робототехники Телеуправляемый андроид Unitree G1 прооперировал свиней. Им лапароскопически удалили желчный пузырь Новости робототехники Weave Robotics запускает Айзека, своего первого представителя робота-гуманоида Новости робототехники Страх перед человекоподобными роботами подтолкнул рабочих к забастовке на автомобильном заводе Hyundai. Новости робототехники Основатель Максимо рассказывает, как робототехника строит строительство солнечной энергетики. Архив рубрики ~Обо всем~ Астрономы нашли кандидата в самый далекий галактический бар. Он существовал спустя почти 1,2 миллиарда лет после Большого Взрыва Новости робототехники По заключению Национального совета по безопасности на транспорте (NTSB), водитель Tesla, который объяснил аварию тем, что автопилот нажал на педаль газа на 100%. Новости робототехники Mondo Robotics представляет собой Beni, вездеходного робота с электрической розеткой и искусственным интеллектом для потребителей. Архив рубрики ~Обо всем~ «Парачастицы» могут стать представителями третьего царства квантовых частиц Архив рубрики ~Коротко из Telegram~ Нейросеть обучили подсчету и оценке качества семян

Оставить комментарий