qsharp Модуль
Общедоступный API интерпретатора Q#.
Этот модуль представляет собой общедоступную поверхность для функций интерпретатора Q# в пакете qdk .
Экспорт ключей:
- init — инициализировать или сбросить интерпретатор Q#.
- eval — вычисляет выражение Q# и возвращает его значение.
- run — выполните выражение записи Q# для одного или нескольких снимков.
- compile — компилируйте источник Q# в QIR для отправки оборудования.
- circuit — синтезирование схемы цепи из кода Q#.
- estimate — оцените квантовые ресурсы (не рекомендуется; используйте qre вместо этого).
- logical_counts — извлечение логических ворот из кода Q#.
- dump_machine — возвращает текущее состояние симулятора StateDumpв виде.
-
dump_circuit — возвращает трассировку трассировки (требуется
trace_circuit=Trueв init). - dump_operation — вычисляет унитарную матрицу операции Q#.
- set_quantum_seed, set_classical_seed — управление семенами RNG.
- estimate_custom — запустите универсальный средство оценки ресурсов с использованием пользовательского алгоритма, кубита и параметров кода.
- QSharpError — возникает при компиляции Q# или ошибках среды выполнения.
- TargetProfile — перечисление целевого профиля компиляции.
- Result, Pauli — примитивные типы Q#.
- CircuitGenerationMethod — определяет, как синтезируются каналы.
- StateDump, ShotResult — типы выходных данных интерпретатора.
- PauliNoise, DepolarizingNoise, BitFlipNoise— PhaseFlipNoise модели шума для моделирования.
Классы
| BitFlipNoise |
Битовый шум перевернутого для использования в имитации. Создает новый экземпляр BitFlipNoise. Битовый канал перевернутого канала применяет ошибку Pauli-X с вероятностью |
| CircuitGenerationMethod |
Общедоступный API интерпретатора Q#. Этот модуль представляет собой общедоступную поверхность для функций интерпретатора Q# в пакете Экспорт ключей:
|
| DepolarizingNoise |
Деполяризующий шум, используемый в имитации. Создает новый экземпляр DepolarizingNoise. Деполяризирующий канал применяет Паули-X, Паули-Y или Pauli-Z ошибки с вероятностью |
| Pauli |
Оператор Q# Pauli. |
| PauliNoise |
Шум Паули, используемый в имитации, представлен как вероятности Паули-X, Паули-Y и Pauli-Z ошибок Создает новый PauliNoise экземпляр с заданными вероятностями ошибки. |
| PhaseFlipNoise |
Этап переворачиваемого шума для использования в имитации. Создает новый экземпляр PhaseFlipNoise. Фазовый канал флип-канала применяет ошибку Pauli-Z с вероятностью |
| QSharpError |
Ошибка, возвращенная интерпретатором Q#. |
| Result |
Результат измерения Q#. |
| ShotResult |
Один результат выстрела. |
| StateDump |
Дамп состояния, возвращенный интерпретатором Q#. |
| TargetProfile |
Целевой профиль Q#. Целевой профиль описывает возможности оборудования или симулятора, который будет использоваться для запуска программы Q#. |
Функции
circuit
Синтезирует канал для программы Q#. Необходимо указать выражение записи или операцию.
circuit(entry_expr: str | Callable | GlobalCallable | Closure | None = None, *args, operation: str | None = None, generation_method: CircuitGenerationMethod | None = None, max_operations: int | None = None, source_locations: bool = False, group_by_scope: bool = True, prune_classical_qubits: bool = False) -> Circuit
Параметры
| Имя | Описание |
|---|---|
|
entry_expr
|
Выражение записи. Кроме того, можно указать вызываемый объект, который должен быть вызываемым Q#. Default value: None
|
|
*args
Обязательно
|
Аргументы для передачи вызываемому объекту, если он указан. |
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
operation
|
Операция синтезирования. Это может быть имя операции или лямбда-выражения. Операция должна принимать только кубиты или массивы кубитов в качестве параметров. Default value: None
|
|
generation_method
|
Метод, используемый для создания канала.
ClassicalEval оценивает классический поток управления во время создания канала.
Simulate выполняет полное моделирование для трассировки канала.
Static использует частичное вычисление и требует нецелевых профилей Default value: None
|
|
max_operations
|
Максимальное количество операций, включаемых в канал.
По умолчанию это означает, что Default value: None
|
|
source_locations
|
Если Default value: False
|
|
group_by_scope
|
Если Default value: True
|
|
prune_classical_qubits
|
Если Default value: False
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
<xref:Circuit>
|
Синтезированный канал. |
Исключения
| Тип | Описание |
|---|---|
|
Если возникает ошибка синтезирования канала. |
compile
Компилирует исходный код Q# в программу, которую можно отправить в целевой объект. Необходимо указать выражение записи или вызываемое с аргументами.
Пример:
compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData
Параметры
| Имя | Описание |
|---|---|
|
entry_expr
Обязательно
|
Выражение Q#, которое будет использоваться в качестве точки входа для программы. Кроме того, можно указать вызываемый объект, который должен быть вызываемым Q#. |
|
*args
Обязательно
|
Аргументы для передачи вызываемому объекту, если он указан. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
<xref:QirInputData>
|
Скомпилированная программа. Используется |
dump_circuit
Дампает канал, показывающий текущее состояние симулятора.
Этот канал будет содержать шлюзы, которые были применены в симуляторе до текущей точки.
Требуется, чтобы интерпретатор был инициализирован с помощью trace_circuit=True.
dump_circuit() -> Circuit
Возвращаемое значение
| Тип | Описание |
|---|---|
|
<xref:Circuit>
|
Текущая трассировка канала. |
Исключения
| Тип | Описание |
|---|---|
|
Если интерпретатор не был инициализирован с помощью |
dump_machine
Возвращает разреженный вектор состояния симулятора в качестве объекта StateDump.
dump_machine() -> StateDump
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Состояние симулятора. |
dump_operation
Возвращает квадратную матрицу сложных чисел, представляющую выполненную операцию.
dump_operation(operation: str, num_qubits: int) -> List[List[complex]]
Параметры
| Имя | Описание |
|---|---|
|
operation
Обязательно
|
Выполняемая операция, которая должна работать со списком кубитов. |
|
num_qubits
Обязательно
|
Количество используемых кубитов. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Матрица, представляющая операцию. |
estimate
Оценивает ресурсы для исходного кода Q#. Необходимо указать выражение записи или вызываемое с аргументами.
Не рекомендуется с версии This: функция использует устаревший API оценки ресурсов. Вместо этого используйте qdk.qre.
estimate(entry_expr: str | Callable | GlobalCallable | Closure, params: Dict[str, Any] | List | EstimatorParams | None = None, *args) -> EstimatorResult
Параметры
| Имя | Описание |
|---|---|
|
entry_expr
Обязательно
|
Выражение записи. Кроме того, можно указать вызываемый объект, который должен быть вызываемым Q#. |
|
params
|
Параметры для настройки физической оценки. Default value: None
|
|
*args
Обязательно
|
Аргументы для передачи вызываемому объекту, если он указан. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Предполагаемые ресурсы. |
estimate_custom
estimate_custom(algorithm, qubit, qec, factories=Ellipsis, *, error_budget=0.01, max_factories=None, logical_depth_factor=None, max_physical_qubits=None, max_duration=None, error_budget_pruning=False)
Параметры
| Имя | Описание |
|---|---|
|
algorithm
Обязательно
|
|
|
qubit
Обязательно
|
|
|
qec
Обязательно
|
|
|
factories
|
Default value: Ellipsis
|
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
error_budget
|
Default value: 0.01
|
|
max_factories
|
Default value: None
|
|
logical_depth_factor
|
Default value: None
|
|
max_physical_qubits
|
Default value: None
|
|
max_duration
|
Default value: None
|
|
error_budget_pruning
|
Default value: False
|
eval
Оценивает исходный код Q#.
Выходные данные печатаются в консоли.
eval(source: str, *, save_events: bool = False) -> Any
Параметры
| Имя | Описание |
|---|---|
|
source
Обязательно
|
Исходный код Q# для вычисления. |
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
save_events
|
Если значение true, все выходные данные будут сохранены и возвращены. Если значение false, они будут напечатаны. Default value: False
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Значение, возвращаемое последней инструкцией в исходном коде, или сохраненные выходные данные, если |
Исключения
| Тип | Описание |
|---|---|
|
Если возникает ошибка при оценке исходного кода. |
init
Инициализирует интерпретатор Q#.
init(*, target_profile: TargetProfile = TargetProfile.Unrestricted, target_name: str | None = None, project_root: str | None = None, language_features: List[str] | None = None, trace_circuit: bool | None = None) -> Config
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
target_profile
|
Задание целевого профиля позволяет интерпретатору Q# создавать программы, совместимые с определенным целевым объектом. См. TargetProfile. Default value: Unrestricted
|
|
target_name
|
Необязательное имя целевого компьютера, используемого для вывода совместимого target_profile параметра. Default value: None
|
|
project_root
|
Необязательный путь к корневому каталогу с проектом Q# для включения. Он должен содержать манифест проекта qsharp.json. Default value: None
|
|
language_features
|
Необязательный список флагов функций языка для включения. Они соответствуют экспериментальным или предварительным версиям языковых возможностей Q#. Допустимые значения:
Default value: None
|
|
trace_circuit
|
Включает трассировку канала во время выполнения. Передача True требуется для dump_circuit функции для возврата канала. Функция каналане влияет на этот параметр и всегда создает канал. Default value: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
<xref:Config>
|
Конфигурация интерпретатора Q#. |
logical_counts
Извлекает количество логических ресурсов из исходного кода Q#. Необходимо указать выражение записи или вызываемое с аргументами.
logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts
Параметры
| Имя | Описание |
|---|---|
|
entry_expr
Обязательно
|
Выражение записи. Кроме того, можно указать вызываемый объект, который должен быть вызываемым Q#. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Программные ресурсы с точки зрения количества логических ворот. |
run
Выполняет заданное выражение Q# для заданного количества снимков. Каждый снимок использует независимый экземпляр симулятора.
run(entry_expr: str | Callable | GlobalCallable | Closure, shots: int, *args, on_result: Callable[[ShotResult], None] | None = None, save_events: bool = False, noise: Tuple[float, float, float] | PauliNoise | BitFlipNoise | PhaseFlipNoise | DepolarizingNoise | NoiseConfig | None = None, qubit_loss: float | None = None, seed: int | None = None, type: Literal['sparse', 'clifford'] | None = None, num_qubits: int | None = None) -> List[Any]
Параметры
| Имя | Описание |
|---|---|
|
entry_expr
Обязательно
|
Выражение записи. Кроме того, можно указать вызываемый объект, который должен быть вызываемым Q#. |
|
shots
Обязательно
|
Количество выстрелов для запуска. |
|
*args
Обязательно
|
Аргументы для передачи вызываемому объекту, если он указан. |
|
on_result
Обязательно
|
Функция обратного вызова, которая будет вызываться с каждым результатом. |
|
save_events
Обязательно
|
Если значение true, выходные данные каждого снимка будут сохранены. Если значение false, они будут напечатаны. |
|
noise
Обязательно
|
Шум, используемый в имитации. |
|
qubit_loss
Обязательно
|
Вероятность потери кубитов в имитации. |
|
seed
Обязательно
|
Начальное значение, используемое для генератора случайных чисел в моделировании, если таковой есть. |
|
type
Обязательно
|
Тип используемого симулятора. Если не указано, будет использоваться разреженное векторное моделирование состояния по умолчанию. |
|
num_qubits
Обязательно
|
Количество кубитов, используемых для типа моделирования "clifford". Если это не указано, симулятор Clifford предполагает значение по умолчанию 1000 кубитов. |
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
on_result
|
Default value: None
|
|
save_events
|
Default value: False
|
|
noise
|
Default value: None
|
|
qubit_loss
|
Default value: None
|
|
seed
|
Default value: None
|
|
type
|
Default value: None
|
|
num_qubits
|
Default value: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Список результатов или ошибок среды выполнения. Если |
Исключения
| Тип | Описание |
|---|---|
|
Если возникает ошибка, интерпретируемая входные данные. |
|
|
Если количество выстрелов меньше 1. |
set_classical_seed
Задает начальное значение для генератора случайных чисел, используемого для классических операций случайного числа стандартной библиотеки. Это относится ко всему коду Q#, выполняемого, скомпилированного или предполагаемого.
set_classical_seed(seed: int | None) -> None
Параметры
| Имя | Описание |
|---|---|
|
seed
Обязательно
|
Начальное значение, используемое для классического генератора случайных чисел. Если нет, то начальное значение будет создано из энтропии. |
set_quantum_seed
Задает начальное значение для генератора случайных чисел, используемого для квантовых измерений. Это относится ко всему коду Q#, выполняемого, скомпилированного или предполагаемого.
set_quantum_seed(seed: int | None) -> None
Параметры
| Имя | Описание |
|---|---|
|
seed
Обязательно
|
Начальное значение, используемое для генератора квантовых случайных чисел. Если нет, то начальное значение будет создано из энтропии. |