Квантовые симуляции на Python: гайд по Qiskit 2.1 для начинающих | 2026 | AiManual
AiManual Logo Ai / Manual.
05 Апр 2026 Инструмент

Квантовые симуляции на Python: пошаговый туториал с созданием схем и запуском

Практический туториал по квантовым симуляциям на Python. Создаем схемы, добавляем гейты, запускаем алгоритмы на Qiskit 2.1. Сравнение инструментов и примеры код

Квантовые симуляции на Python: не магия, а код

Вы слышали про квантовые компьютеры? Те, которые взломают все шифры и решат проблемы человечества. Пока они этого не делают. Но вы можете поиграться с их виртуальными версиями на Python. Прямо сейчас. Забудьте про жидкий азот и экзотические частицы. Все, что нужно - это pip install и немного линейной алгебры.

На дворе 2026 год, и инструменты для квантовых симуляций стали такими же обычными, как Pandas для анализа данных. Лидером по-прежнему остается Qiskit, но теперь в версии 2.1 с переработанным API и встроенной поддержкой квантового машинного обучения. Давайте разберемся, как заставить его работать на вашей машине.

1Ставим Qiskit: быстрее, чем сварить кофе

Первое, что бесит в любом туториале - это долгая настройка окружения. Здесь все просто. Откройте терминал и выполните одну команду. Если у вас уже стоит Python 3.11+, проблем не будет.

pip install "qiskit[all]"==2.1.0

На 05.04.2026 пакет qiskit[all] тянет за собой не только симулятор Aer, но и целую кучу инструментов для оптимизации и визуализации. Если не хотите засорять систему, установите только qiskit и qiskit-aer. Но для гайда лучше все.

Проверьте установку. Запустите Python и попробуйте импортировать.

import qiskit
print(qiskit.__version__)
# Должно вывести 2.1.0 или новее

2Первая схема: кубит, который всегда говорит '1'

Квантовая схема - это просто последовательность операций над кубитами. Создадим самую простую: один кубит, который мы перевернем из состояния 0 в состояние 1. В квантовом мире для этого нужен гейт X (NOT).

from qiskit import QuantumCircuit

# Создаем схему с 1 кубитом и 1 классическим битом для измерения
qc = QuantumCircuit(1, 1)

# Применяем гейт X (переворот)
qc.x(0)

# Измеряем кубит в классический бит
qc.measure(0, 0)

# Рисуем схему. Раньше это было сложнее.
qc.draw('mpl', style='iqx')  # 'mpl' для matplotlib, 'iqx' для стиля IBM Quantum

Если все сделано правильно, вы увидите картинку с одним кубитом, гейтом X и измерением. Скучно? Подождите, сейчас будет интереснее.

3Играем в Лего: добавляем суперпозицию

Магия начинается с гейта Адамара (H). Он создает суперпозицию - кубит одновременно в состояниях 0 и 1. Звучит как философия, но на деле это просто вектор.

from qiskit.visualization import plot_histogram
from qiskit_aer import AerSimulator

# Новая схема: суперпозиция и измерение
qc_super = QuantumCircuit(1, 1)
qc_super.h(0)  # Гейт Адамара
qc_super.measure(0, 0)

# Запускаем на локальном симуляторе
simulator = AerSimulator()
compiled_circuit = qiskit.transpile(qc_super, simulator)

# Делаем 1000 'выстрелов'
job = simulator.run(compiled_circuit, shots=1000)
result = job.result()
counts = result.get_counts()

# Смотрим результат
print(counts)  # Что-то типа {'0': 512, '1': 488}
plot_histogram(counts)
💡
В теории, вероятность получить 0 или 1 должна быть 50/50. На практике, из-за симуляции, цифры будут близкими, но не идеальными. Это нормально. На реальном квантовом компьютере было бы еще хуже из-за шума.

4Настоящий алгоритм: Дойч-Йожа за 5 минут

Простые схемы - это хорошо, но хочется чего-то осмысленного. Алгоритм Дойча-Йожи - это "Hello, World!" квантовых вычислений. Он определяет, является ли функция постоянной или сбалансированной, всего за один запрос. В классике нужно два.

# Реализуем алгоритм для функции f(x), которая всегда возвращает 1 (постоянная)
qc_deutsch = QuantumCircuit(2, 1)

# Применяем гейты Адамара к обоим кубитам
qc_deutsch.h([0, 1])

# Оракул для постоянной функции f(x)=1
# Для f(x)=1 нужно перевернуть второй кубит (гейт X)
qc_deutsch.x(1)
qc_deutsch.cz(0, 1)  # Управляемый гейт Z
qc_deutsch.x(1)  # Возвращаем обратно

# Еще раз гейт Адамара на первый кубит
qc_deutsch.h(0)

# Измеряем первый кубит
qc_deutsch.measure(0, 0)

# Запускаем
simulator = AerSimulator()
compiled = qiskit.transpile(qc_deutsch, simulator)
result = simulator.run(compiled, shots=1000).result()
counts = result.get_counts()
print("Результат алгоритма Дойча-Йожи:", counts)
# Если функция постоянная, всегда получим '0'

Если вы увидели в результатах только '0' - алгоритм сработал. Поздравляю, вы только что выполнили вычисление, которое на классическом компьютере потребовало бы лишнего шага. Мелочь, а приятно.

Qiskit против других: кто кого?

Qiskit - не единственный игрок на поле. Вот как он выглядит на фоне конкурентов в 2026 году.

ИнструментРазработчикСильная сторонаСлабая сторона
Qiskit 2.1IBMЛучшая документация, интеграция с реальными квантовыми процессорами IBM, огромное сообщество.Монстр по размеру. Для простых симуляций может быть избыточным.
Cirq 2.0GoogleЧистый Python, отличная производительность для больших схем, фокус на алгоритмах.Меньше готовых высокоуровневых функций. Сообщество скромнее.
PennyLane 1.0XanaduСпециализация на квантовом машинном обучении и дифференцируемом программировании.Кривая обучения круче. Не самый удобный инструмент для чистых симуляций.

Выбор простой: если вы новичок и хотите быстрый старт - берите Qiskit. Если планируете глубоко копать в алгоритмы и производительность - посмотрите на Cirq. Если ваша цель - квантовое машинное обучение, то PennyLane ваш выбор. (Кстати, если вам интересно квантование в другом контексте - например, сжатие нейросетей - взгляните на наш гайд по квантованию LLM. Это совсем другая история, но тоже полна сюрпризов).

Кому стоит заняться квантовыми симуляциями?

Это не для всех. Но если вы попадаете в одну из категорий, стоит потратить вечер на эксперименты.

  • Студенты и исследователи в области физики, компьютерных наук. Симулятор - это песочница для проверки идей без доступа к дорогому "железу".
  • Разработчики ПО, которым любопытно, что ждет вычисления через 10-15 лет. Это как изучать ассемблер в эпоху Python - чтобы понять основы.
  • Data Scientists, которые устали от классического машинного обучения и хотят заглянуть за горизонт. Интеграция Qiskit с библиотеками вроде PyTorch стала намного лучше.
  • Преподаватели, которым нужно наглядно показать странности квантового мира. Схемы и гистограммы работают лучше, чем формулы на доске.

Главное - не ожидайте, что через неделю вы будете писать код для взлома RSA. Реальные приложения квантовых компьютеров все еще в зачаточном состоянии. Но симуляции позволяют хотя бы понять, с чем имеем дело. И кто знает, может, именно ваш эксперимент с симуляцией на Python станет основой для следующего прорыва. Если же вы хотите увидеть, как сложные симуляции применяются в более традиционных областях, посмотрите, как решаются уравнения Навье-Стокса для аэродинамики. Принцип тот же: берем сложную физику и заставляем компьютер ее имитировать.

Что дальше? Код из этого туториала - всего лишь начало. В Qiskit 2.1 появился модуль qiskit_algorithms с готовыми реализациями алгоритмов Гровера, Шора и VQE. Попробуйте запустить симуляцию квантовой химической задачи или простой факторизации. Только не удивляйтесь, когда поймете, что для факторизации числа 21 вам потребуется схема из 50+ кубитов. Ресурсы симулятора не безграничны, но для обучения хватит с головой.

Подписаться на канал