Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Установите модуль 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 проектов.
Например,
.venvсоздайте виртуальную среду.python -m venv .venvАктивируйте среду.
На Windows:
.venv\Scripts\Activate.ps1На Linux или macOS:
source .venv/bin/activateОбновите 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.