qsharp Módulo
API pública do interpretador de Q#.
Este módulo é a superfície pública para a funcionalidade do interpretador de Q# dentro do qdk pacote.
Principais exportações:
- init — inicialize ou redefina o interpretador de Q#.
- eval — avalie uma expressão Q# e retorne seu valor.
- run — execute uma expressão de entrada Q# para uma ou mais capturas.
- compile — compile a origem Q# no QIR para envio de hardware.
- circuit — sintetize um diagrama de circuito do código Q#.
- estimate — estimar recursos quânticos (preteridos; use qre em vez disso).
- logical_counts — extraia contagens de portões lógicos do código Q#.
- dump_machine — retorne o estado atual do simulador como um StateDump.
-
dump_circuit— retornar o circuito rastreado (requer
trace_circuit=True).init - dump_operation — compute a matriz unitária de uma operação de Q#.
- set_quantum_seed, set_classical_seed — controlar sementes RNG.
- estimate_custom — execute o avaliador de recursos genéricos com parâmetros de código, qubit e algoritmo fornecidos pelo usuário.
- QSharpError — gerado em erros de compilação ou de runtime do Q#.
- TargetProfile — enumeração de perfil de destino de compilação.
- Result, Pauli — Tipos primitivos de Q#.
- CircuitGenerationMethod — controla como os circuitos são sintetizados.
- StateDump, ShotResult — tipos de saída do interpretador.
- PauliNoise, DepolarizingNoise, BitFlipNoise, PhaseFlipNoise – modelos de ruído para simulação.
Classes
| BitFlipNoise |
O ruído de inverter bits a ser usado na simulação. Cria uma nova instância BitFlipNoise. O canal de inversão de bits aplica um erro de Pauli-X com probabilidade |
| CircuitGenerationMethod |
API pública do interpretador de Q#. Este módulo é a superfície pública para a funcionalidade do interpretador de Q# dentro do Principais exportações:
|
| DepolarizingNoise |
O ruído despolarizador a ser usado na simulação. Cria uma nova instância DepolarizingNoise. O canal de despolarização aplica Pauli-X, Pauli-Y ou Pauli-Z erros cada um com probabilidade |
| Pauli |
Um operador Pauli Q#. |
| PauliNoise |
O ruído Pauli a ser usado na simulação representado como probabilidades de Pauli-X, Pauli-Y e Pauli-Z erros Cria uma nova PauliNoise instância com as probabilidades de erro fornecidas. |
| PhaseFlipNoise |
A fase inverte o ruído a ser usado na simulação. Cria uma nova instância PhaseFlipNoise. O canal de inversão de fase aplica um erro de Pauli-Z com probabilidade |
| QSharpError |
Um erro retornado do interpretador de Q#. |
| Result |
Um resultado de medida de Q#. |
| ShotResult |
Um único resultado de um tiro. |
| StateDump |
Um despejo de estado retornado do interpretador Q#. |
| TargetProfile |
Um perfil de destino Q#. Um perfil de destino descreve os recursos do hardware ou simulador que serão usados para executar o programa Q#. |
Funções
circuit
Sintetiza um circuito para um programa Q#. Uma expressão de entrada ou uma operação devem ser fornecidas.
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
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
|
Uma expressão de entrada. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. Valor padrão: None
|
|
*args
Obrigatório
|
Os argumentos a serem passados para o callable, se um for fornecido. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
operation
|
A operação a ser sintetizada. Pode ser um nome de uma operação ou uma expressão lambda. A operação deve usar apenas qubits ou matrizes de qubits como parâmetros. Valor padrão: None
|
|
generation_method
|
O método a ser usado para geração de circuito.
ClassicalEval avalia o fluxo de controle clássico no tempo de geração do circuito.
Simulate executa uma simulação completa para rastrear o circuito.
Static usa a avaliação parcial e requer um perfil que não seja de Valor padrão: None
|
|
max_operations
|
O número máximo de operações a serem incluídas no circuito.
Padrões para Valor padrão: None
|
|
source_locations
|
Se Valor padrão: False
|
|
group_by_scope
|
Se Valor padrão: True
|
|
prune_classical_qubits
|
Se Valor padrão: False
|
Retornos
| Tipo | Description |
|---|---|
|
<xref:Circuit>
|
O circuito sintetizado. |
Exceções
| Tipo | Description |
|---|---|
|
Se houver um erro ao sintetizar o circuito. |
compile
Compila o código-fonte Q# em um programa que pode ser enviado para um destino. Uma expressão de entrada ou uma chamada com argumentos deve ser fornecida.
Exemplo:
compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
A expressão Q# que será usada como o ponto de entrada do programa. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. |
|
*args
Obrigatório
|
Os argumentos a serem passados para o callable, se um for fornecido. |
Retornos
| Tipo | Description |
|---|---|
|
<xref:QirInputData>
|
O programa compilado. Use |
dump_circuit
Despeja um circuito mostrando o estado atual do simulador.
Esse circuito conterá os portões que foram aplicados no simulador até o ponto atual.
Requer que o interpretador seja inicializado com trace_circuit=True.
dump_circuit() -> Circuit
Retornos
| Tipo | Description |
|---|---|
|
<xref:Circuit>
|
O rastreamento de circuito atual. |
Exceções
| Tipo | Description |
|---|---|
|
Se o interpretador não foi inicializado com |
dump_machine
Retorna o vetor de estado esparso do simulador como um objeto StateDump.
dump_machine() -> StateDump
Retornos
| Tipo | Description |
|---|---|
|
O estado do simulador. |
dump_operation
Retorna uma matriz quadrada de números complexos que representam a operação executada.
dump_operation(operation: str, num_qubits: int) -> List[List[complex]]
Parâmetros
| Nome | Description |
|---|---|
|
operation
Obrigatório
|
A operação a ser executada, que deve operar em uma lista de qubits. |
|
num_qubits
Obrigatório
|
O número de qubits a serem usados. |
Retornos
| Tipo | Description |
|---|---|
|
A matriz que representa a operação. |
estimate
Estima recursos para o código-fonte Q#. Uma expressão de entrada ou uma chamada com argumentos deve ser fornecida.
Preterida desde a versão This: a função usa a API herdada do Avaliador de Recursos. Use qdk.qre em seu lugar.
estimate(entry_expr: str | Callable | GlobalCallable | Closure, params: Dict[str, Any] | List | EstimatorParams | None = None, *args) -> EstimatorResult
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
A expressão de entrada. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. |
|
params
|
Os parâmetros para configurar a estimativa física. Valor padrão: None
|
|
*args
Obrigatório
|
Os argumentos a serem passados para o callable, se um for fornecido. |
Retornos
| Tipo | Description |
|---|---|
|
Os recursos estimados. |
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)
Parâmetros
| Nome | Description |
|---|---|
|
algorithm
Obrigatório
|
|
|
qubit
Obrigatório
|
|
|
qec
Obrigatório
|
|
|
factories
|
Valor padrão: Ellipsis
|
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
error_budget
|
Valor padrão: 0.01
|
|
max_factories
|
Valor padrão: None
|
|
logical_depth_factor
|
Valor padrão: None
|
|
max_physical_qubits
|
Valor padrão: None
|
|
max_duration
|
Valor padrão: None
|
|
error_budget_pruning
|
Valor padrão: False
|
eval
Avalia o código-fonte Q#.
A saída é impressa no console.
eval(source: str, *, save_events: bool = False) -> Any
Parâmetros
| Nome | Description |
|---|---|
|
source
Obrigatório
|
O código-fonte Q# a ser avaliado. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
save_events
|
Se for true, toda a saída será salva e retornada. Se forem falsas, elas serão impressas. Valor padrão: False
|
Retornos
| Tipo | Description |
|---|---|
|
O valor retornado pela última instrução no código-fonte ou a saída salva, se |
Exceções
| Tipo | Description |
|---|---|
|
Se houver um erro ao avaliar o código-fonte. |
init
Inicializa o interpretador de 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
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
target_profile
|
Definir o perfil de destino permite que o interpretador de Q# gere programas compatíveis com um destino específico. Consulte TargetProfile. Valor padrão: Unrestricted
|
|
target_name
|
Um nome opcional do computador de destino a ser usado para inferir a configuração de target_profile compatível. Valor padrão: None
|
|
project_root
|
Um caminho opcional para um diretório raiz com um projeto Q# a ser incluído. Ele deve conter um manifesto qsharp.json projeto. Valor padrão: None
|
|
language_features
|
Uma lista opcional de sinalizadores de recursos de idioma a serem habilitados. Eles correspondem a recursos experimentais ou de linguagem Q# de visualização. Os valores válidos são:
Valor padrão: None
|
|
trace_circuit
|
Habilita o rastreamento de circuito durante a execução. Passar True é necessário para que a função dump_circuit retorne um circuito. A função de circuitoNÃO é afetada por esse parâmetro e sempre gerará um circuito. Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
<xref:Config>
|
A configuração do interpretador de Q#. |
logical_counts
Extrai contagens de recursos lógicos do código-fonte Q#. Uma expressão de entrada ou uma chamada com argumentos deve ser fornecida.
logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
A expressão de entrada. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. |
Retornos
| Tipo | Description |
|---|---|
|
Recursos do programa em termos de contagens de portões lógicas. |
run
Executa a expressão de Q# fornecida para o número determinado de capturas. Cada captura usa uma instância independente do simulador.
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]
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
A expressão de entrada. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. |
|
shots
Obrigatório
|
O número de tiros a serem executados. |
|
*args
Obrigatório
|
Os argumentos a serem passados para o callable, se um for fornecido. |
|
on_result
Obrigatório
|
Uma função de retorno de chamada que será chamada com cada resultado. |
|
save_events
Obrigatório
|
Se for true, a saída de cada tiro será salva. Se forem falsas, elas serão impressas. |
|
noise
Obrigatório
|
O ruído a ser usado na simulação. |
|
qubit_loss
Obrigatório
|
A probabilidade de perda de qubit na simulação. |
|
seed
Obrigatório
|
A semente a ser usada para o gerador de número aleatório na simulação, se houver. |
|
type
Obrigatório
|
O tipo de simulador a ser usado. Se não for especificado, a simulação de vetor de estado esparso padrão será usada. |
|
num_qubits
Obrigatório
|
O número de qubits a serem usados para o tipo de simulação "clifford". Se não for especificado, o simulador Clifford assumirá um padrão de 1000 qubits. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
on_result
|
Valor padrão: None
|
|
save_events
|
Valor padrão: False
|
|
noise
|
Valor padrão: None
|
|
qubit_loss
|
Valor padrão: None
|
|
seed
|
Valor padrão: None
|
|
type
|
Valor padrão: None
|
|
num_qubits
|
Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
Uma lista de resultados ou erros de runtime. Se |
Exceções
| Tipo | Description |
|---|---|
|
Se houver um erro ao interpretar a entrada. |
|
|
Se o número de tiros for menor que 1. |
set_classical_seed
Define a semente do gerador de número aleatório usado para operações de número aleatório clássico da biblioteca padrão. Isso se aplica a todos os códigos Q# executados, compilados ou estimados.
set_classical_seed(seed: int | None) -> None
Parâmetros
| Nome | Description |
|---|---|
|
seed
Obrigatório
|
A semente a ser usada para o gerador de número aleatório clássico. Se None, a semente será gerada a partir da entropia. |
set_quantum_seed
Define a semente do gerador de número aleatório usado para medidas quânticas. Isso se aplica a todos os códigos Q# executados, compilados ou estimados.
set_quantum_seed(seed: int | None) -> None
Parâmetros
| Nome | Description |
|---|---|
|
seed
Obrigatório
|
A semente a ser usada para o gerador de número aleatório quântico. Se None, a semente será gerada a partir da entropia. |