Открыть сервис

Qiskit

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

История

Разработка Qiskit началась в 2016 году в исследовательском подразделении IBM Research. Первая публичная версия (Qiskit 0.1) была выпущена в марте 2017 года. Название представляет собой комбинацию слов «quantum» (квантовый) и «toolkit» (набор инструментов). Изначально платформа называлась QISKit (Quantum Information Science Kit), но в 2018 году название было изменено на Qiskit.

Основной целью создания Qiskit было предоставление открытого и доступного инструмента для работы с квантовыми компьютерами IBM, которые с 2016 года стали доступны через облачный сервис IBM Quantum Experience. Платформа быстро развивалась, и к 2020 году Qiskit стал одной из самых популярных библиотек для квантовых вычислений.

В 2021 году IBM объявила о создании Qiskit Runtime — сервиса, оптимизирующего выполнение квантовых схем на реальных процессорах. В 2023 году была выпущена версия Qiskit 1.0, которая значительно упростила интерфейс и повысила производительность.

Архитектура и компоненты

Qiskit состоит из нескольких взаимосвязанных модулей, каждый из которых отвечает за определённый этап квантового вычисления:

Terra

Terra — это ядро платформы. Оно включает в себя инструменты для создания и манипуляции квантовыми схемами, компиляции кода под конкретный квантовый процессор, а также для выполнения симуляций. Основные компоненты Terra:

  • QuantumCircuit — класс для построения квантовой схемы из гейтов (квантовых вентилей).
  • Transpilerкомпилятор, который преобразует абстрактную схему в последовательность операций, совместимых с конкретным оборудованием.
  • Backends — интерфейсы для взаимодействия с симуляторами и реальными квантовыми процессорами.

Aer

Aer — модуль для симуляции квантовых схем. Он включает высокопроизводительные симуляторы, которые могут моделировать квантовые состояния на классических компьютерах. Aer поддерживает:

  • StatevectorSimulator — симуляция полного вектора состояния.
  • QasmSimulator — симуляция с учётом шума и измерений.
  • PulseSimulator — симуляция на уровне импульсов (для калибровки оборудования).

Ignis (устаревший)

Ранее существовал модуль Ignis, предназначенный для калибровки квантовых устройств и подавления ошибок. В версии Qiskit 1.0 его функциональность была перенесена в другие модули и отдельные библиотеки.

Optimization, Finance, Machine Learning, Nature

Набор прикладных модулей, которые предоставляют готовые алгоритмы и инструменты для решения задач в конкретных областях:

  • Qiskit Optimization — для задач комбинаторной оптимизации (например, задача коммивояжёра).
  • Qiskit Finance — для финансового моделирования (оценка рисков, портфельная оптимизация).
  • Qiskit Machine Learning — для квантового машинного обучения (классификация, регрессия).
  • Qiskit Nature — для квантовой химии и физики (моделирование молекул).

Принцип работы

Работа с Qiskit строится по следующей схеме:

  1. Создание схемы: Пользователь на языке Python определяет квантовую схему, состоящую из кубитов и квантовых гейтов (например, гейты Адамара, CNOT, T).
  2. Транспиляция: Схема компилируется под конкретный квантовый процессор с учётом его топологии (связей между кубитами) и набора доступных гейтов.
  3. Выполнение: Скомпилированная схема отправляется на симулятор (Aer) или на реальный квантовый компьютер через облачный сервис IBM Quantum.
  4. Обработка результатов: После выполнения пользователь получает результаты измерений (например, распределение вероятностей состояний кубитов).

Применение

Qiskit используется в научных исследованиях, образовании и промышленности. Основные области применения:

Квантовая химия

С помощью Qiskit Nature исследователи моделируют электронные структуры молекул. Например, в 2017 году IBM с использованием Qiskit впервые симулировала молекулу гидрида бериллия (BeH2) на квантовом компьютере.

Оптимизация

Qiskit Optimization применяется для решения задач логистики, маршрутизации и распределения ресурсов. Алгоритм QAOA (Quantum Approximate Optimization Algorithm) реализован в этом модуле.

Машинное обучение

Qiskit Machine Learning позволяет строить квантовые нейронные сети и классификаторы. Например, квантовые вариационные схемы (Variational Quantum Circuits) используются для задач классификации данных.

Криптография и безопасность

Платформа поддерживает реализацию алгоритмов квантовой криптографии, в том числе протокола BB84 для квантового распределения ключей.

Критика и ограничения

Несмотря на популярность, Qiskit имеет ряд недостатков:

  • Зависимость от IBM: Платформа тесно связана с оборудованием IBM, что ограничивает её использование с квантовыми процессорами других производителей (хотя существуют адаптеры, например, для IonQ).
  • Сложность для новичков: Несмотря на обилие документации, порог входа остаётся высоким из-за необходимости понимания квантовой механики и линейной алгебры.
  • Производительность симуляторов: Симуляция на классических компьютерах становится невозможной при числе кубитов более 30–40 из-за экспоненциального роста требуемой памяти.
  • Ошибки на реальном оборудовании: Современные квантовые процессоры (2024 год) имеют высокий уровень шума и ошибок, что ограничивает практическую пользу многих алгоритмов.

Пример кода

Ниже приведён простой пример создания и выполнения квантовой схемы на Qiskit, которая генерирует состояние Белла (запутанное состояние двух кубитов):

```python from qiskit import QuantumCircuit from qiskit_aer import AerSimulator

Создание схемы с двумя кубитами

qc = QuantumCircuit(2, 2) qc.h(0) # Гейт Адамара на первом кубите qc.cx(0, 1) # CNOT (управляемый NOT) — создание запутанности qc.measure([0, 1], [0, 1]) # Измерение

Симуляция

simulator = AerSimulator() result = simulator.run(qc, shots=1024).result() counts = result.get_counts() print(counts) # Вывод: {'00': ~512, '11': ~512} ```

Интересные факты

  • Qiskit является одним из самых популярных репозиториев на GitHub среди квантовых вычислительных платформ (более 4 000 звёзд по состоянию на 2024 год).
  • В 2021 году IBM запустила программу Qiskit Advocate, которая объединяет активных участников сообщества, помогающих развивать платформу.
  • Название «Qiskit» является отсылкой к «квантовому набору инструментов» (quantum toolkit), а также к «скиту» (skit — короткая сценка), что символизирует лёгкость и модульность.

См. также

  • Квантовые вычисления
  • IBM Quantum
  • Cirq (платформа от Google)
  • PennyLane (библиотека для квантового машинного обучения)

Источники

  • IBM Research. «Qiskit: An Open-Source Framework for Quantum Computing». 2017.
  • Документация Qiskit (qiskit.org).
  • J. M. Gambetta, J. M. Chow, M. Steffen. «Building logical qubits in a superconducting quantum computing system». npj Quantum Information, 2017.
  • A. J. McCaskey et al. «A Language and Hardware Independent Approach to Quantum–Classical Computing». SoftwareX, 2020.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →