Как установить QDK для исправления ошибок

Установите модуль qdk.ecPython из Microsoft Quantum Development Kit (QDK) для разработки и тестирования кодов и протоколов исправления квантовых ошибок (QEC). Модуль использует пакет qodec для моделей протокола и персистентности.

Prerequisites

Установите эти средства перед началом работы:

  • Python 3.11 или более поздняя версия
  • pip или другой Python диспетчер пакетов

Базовый qdk пакет поддерживает Python версию 3.10 или более поздней версии. Для qdk.ec модуля требуется Python 3.11 или более поздней версии из-за его qodec зависимости.

(Необязательно) Создание виртуальной среды

Используйте виртуальную среду для разделения qdk.ec зависимостей от других Python проектов.

  1. Например, .venvсоздайте виртуальную среду.

    python -m venv .venv
    
  2. Активируйте среду.

    На Windows:

    .venv\Scripts\Activate.ps1
    

    На Linux или macOS:

    source .venv/bin/activate
    
  3. Обновите pip в активной среде.

    python -m pip install --upgrade pip
    

Установите QDK для исправления ошибок

Установите пакет qdkPython с дополнением ec.

python -m pip install --upgrade "qdk[ec]"

Чтобы использовать Jupyter Notebook и QDK мини-приложения, установите также дополнение jupyter.

python -m pip install --upgrade "qdk[ec,jupyter]" ipykernel

Пакет ec extra устанавливает Stim, парсер qodec на поддерживаемых платформах, а также алгебраические пакеты и пакеты решателя, которые использует qdk.ec. Он также включает поиск по расстоянию HiGHS.

Примечание.

Модуль qdk.ec использует отдельный пакет StimPython через qodec. Он не использует qdk.stim модуль.

Установить на LinuxArm64 или WindowsArm64

Stim не публикует wheel-пакеты для LinuxArm64 или WindowsArm64. На этих платформах qdk[ec] устанавливает qodec без своего парсера Stim.

Вы можете загружать и сохранять YAML кодеки и использовать пользовательский парсер схем. Функции, которые анализируют format="stim" цепи, не работают на этих платформах. Это ограничение включает qdk.ec.build_qodec.

Чтобы включить парсер, установите Stim отдельно. Для установки Stim системе требуется компилятор C++20.

python -m pip install --upgrade stim

Установка необязательных пакетов distance и декодировщика

Средство решения расстояний по умолчанию использует HiGHS, который включает модуль qdk.ec. Чтобы выбрать необязательный MWPF модуль решения, установите mwpf отдельно.

python -m pip install mwpf

Чтобы использовать декодер уровня схемы deq с qdk.simulation.run_qir, установите deq и deq-runtime.

python -m pip install deq deq-runtime

QDK тестирует адаптер deq с версией 0.5.7 deq и deq-runtime.

Примечание.

Пакет deq-runtime не публикует WindowsArm64 wheel-пакеты. Для адаптера deq также требуется Stim, который не публикует LinuxArm64 или WindowsArm64 колёса.

Проверка установки

Создайте Jupyter Notebook файл или Python ячейку со следующим кодом. В примере определяется четырехкубитный C4 код и проверяется расстояние.

import qodec
from qdk import ec

c4 = qodec.Code(
    "C4",
    stabilizers=["X_0 X_1 X_2 X_3", "Z_0 Z_1 Z_2 Z_3"],
    x=["X_0 X_1", "X_0 X_2"],
    z=["Z_0 Z_2", "Z_0 Z_1"],
)

distance = ec.CodeProfile(c4).distance()
print("Code distance:", distance)
assert distance.value == 2

Программа выводит следующий результат:

Code distance: 2

Если импорт и поиск расстояния выполнены успешно, основные qdk.ec зависимости готовы.

Проверьте поддержку Stim

Выполните эту проверку на платформе, поддерживающей парсер Stim.

from qdk import ec

protocol = ec.build_qodec(c4, strategy="bare-css/v1", strict=False)
print(ec.audit(protocol))

Правильно созданный протокол выводит сводку аудита. Протокол, который проходит все проверки, печатает:

audit: ok

Если build_qodec сообщает, что для формата stim не существует средства синтаксического анализа, убедитесь, что вы установили qdk[ec] в активной среде. В WindowsArm64 или LinuxArm64 установите Stim из исходного кода и перезапустите Python или ядро Jupyter.

Продолжить разработку протокола

Чтобы определить код, собрать qodec и проверить его гаджеты, см. статью Разработка и проверка протокола QEC.