qsharp Module
API publique de l’interpréteur Q#.
Ce module est l’aire publique des fonctionnalités d’interpréteur Q# au sein du qdk package.
Exportations clés :
- init — initialisez ou réinitialisez l’interpréteur Q#.
- eval : évaluez une expression Q# et retournez sa valeur.
- run — exécutez une expression d’entrée Q# pour une ou plusieurs captures.
- compile — compilez la source Q# en QIR pour la soumission matérielle.
- circuit — synthétiser un diagramme de circuit à partir du code Q#.
- estimate — estimer les ressources quantiques (déconseillées ; utiliser qre à la place).
- logical_counts : extrayez les nombres de portes logiques à partir du code Q#.
- dump_machine — retourne l’état actuel du simulateur en tant que StateDump.
-
dump_circuit — retourner le circuit suivi (requis
trace_circuit=Truedans init). - dump_operation — calcule la matrice unitaire d’une opération Q#.
- set_quantum_seed, — set_classical_seed contrôler les graines RNG.
- estimate_custom : exécutez l’estimateur de ressource générique avec des paramètres d’algorithme, qubit et de code fournis par l’utilisateur.
- QSharpError — déclenché sur les erreurs de compilation ou d’exécution Q#.
- TargetProfile — énumération du profil cible de compilation.
- Result, — Pauli Types primitifs Q#.
- CircuitGenerationMethod — contrôle la façon dont les circuits sont synthétisés.
- StateDump, — ShotResult types de sortie d’interpréteur.
- PauliNoise, , DepolarizingNoise, BitFlipNoise, PhaseFlipNoise — modèles de bruit pour la simulation.
Classes
| BitFlipNoise |
Bruit de retournement de bit à utiliser dans la simulation. Crée une nouvelle instance BitFlipNoise. Le canal de retournement de bits applique une erreur Pauli-X avec probabilité |
| CircuitGenerationMethod |
API publique de l’interpréteur Q#. Ce module est l’aire publique des fonctionnalités d’interpréteur Q# au sein du Exportations clés :
|
| DepolarizingNoise |
Bruit dépolarisant à utiliser dans la simulation. Crée une nouvelle instance DepolarizingNoise. Le canal dépolarisant applique Pauli-X, Pauli-Y ou Pauli-Z erreurs chacune avec probabilité |
| Pauli |
Opérateur Q# Pauli. |
| PauliNoise |
Le bruit de Pauli à utiliser dans la simulation représenté comme des probabilités de Pauli-X, Pauli-Y et Pauli-Z erreurs Crée une PauliNoise instance avec les probabilités d’erreur données. |
| PhaseFlipNoise |
Le bruit de retournement de phase à utiliser dans la simulation. Crée une nouvelle instance PhaseFlipNoise. Le canal de retourne de phase applique une erreur Pauli-Z avec probabilité |
| QSharpError |
Erreur retournée par l’interpréteur Q#. |
| Result |
Résultat de mesure Q#. |
| ShotResult |
Résultat unique d’un coup. |
| StateDump |
Vidage d’état retourné par l’interpréteur Q#. |
| TargetProfile |
Profil cible Q#. Un profil cible décrit les fonctionnalités du matériel ou du simulateur qui seront utilisées pour exécuter le programme Q#. |
Functions
circuit
Synthétise un circuit pour un programme Q#. Une expression d’entrée ou une opération doit être fournie.
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
Paramètres
| Nom | Description |
|---|---|
|
entry_expr
|
Expression d’entrée. Vous pouvez également fournir un appelant, qui doit être un appelant Q#. Valeur par défaut: None
|
|
*args
Obligatoire
|
Arguments à passer à l’appelant, s’il est fourni. |
Paramètres de mot clé uniquement
| Nom | Description |
|---|---|
|
operation
|
Opération à synthétiser. Il peut s’agir d’un nom d’une opération ou d’une expression lambda. L’opération ne doit prendre que des qubits ou des tableaux de qubits en tant que paramètres. Valeur par défaut: None
|
|
generation_method
|
Méthode à utiliser pour la génération de circuit.
ClassicalEval évalue le flux de contrôle classique au moment de la génération du circuit.
Simulate exécute une simulation complète pour tracer le circuit.
Static utilise une évaluation partielle et nécessite un profil non Valeur par défaut: None
|
|
max_operations
|
Nombre maximal d’opérations à inclure dans le circuit.
Valeurs par défaut, Valeur par défaut: None
|
|
source_locations
|
Si Valeur par défaut: False
|
|
group_by_scope
|
Si Valeur par défaut: True
|
|
prune_classical_qubits
|
Si Valeur par défaut: False
|
Retours
| Type | Description |
|---|---|
|
<xref:Circuit>
|
Circuit synthétisé. |
Exceptions
| Type | Description |
|---|---|
|
En cas d’erreur de synthèse du circuit. |
compile
Compile le code source Q# dans un programme qui peut être envoyé à une cible. Une expression d’entrée ou une expression pouvant être appelée avec des arguments doit être fournie.
Exemple :
compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData
Paramètres
| Nom | Description |
|---|---|
|
entry_expr
Obligatoire
|
Expression Q# qui sera utilisée comme point d’entrée pour le programme. Vous pouvez également fournir un appelant, qui doit être un appelant Q#. |
|
*args
Obligatoire
|
Arguments à passer à l’appelant, s’il est fourni. |
Retours
| Type | Description |
|---|---|
|
<xref:QirInputData>
|
Programme compilé. Permet |
dump_circuit
Vide un circuit affichant l’état actuel du simulateur.
Ce circuit contiendra les portes qui ont été appliquées dans le simulateur jusqu’au point actuel.
Nécessite que l’interpréteur soit initialisé avec trace_circuit=True.
dump_circuit() -> Circuit
Retours
| Type | Description |
|---|---|
|
<xref:Circuit>
|
Trace du circuit actuel. |
Exceptions
| Type | Description |
|---|---|
|
Si l’interpréteur n’a pas été initialisé avec |
dump_machine
Retourne le vecteur d’état épars du simulateur en tant qu’objet StateDump.
dump_machine() -> StateDump
Retours
| Type | Description |
|---|---|
|
État du simulateur. |
dump_operation
Retourne une matrice carrée de nombres complexes représentant l’opération effectuée.
dump_operation(operation: str, num_qubits: int) -> List[List[complex]]
Paramètres
| Nom | Description |
|---|---|
|
operation
Obligatoire
|
Opération à effectuer, qui doit fonctionner sur une liste de qubits. |
|
num_qubits
Obligatoire
|
Nombre de qubits à utiliser. |
Retours
| Type | Description |
|---|---|
|
Matrice représentant l’opération. |
estimate
Estime les ressources pour le code source Q#. Une expression d’entrée ou une expression pouvant être appelée avec des arguments doit être fournie.
Déconseillé depuis la version Suivante : la fonction utilise l’API d’estimateur de ressource héritée. Utilisez qdk.qre à la place.
estimate(entry_expr: str | Callable | GlobalCallable | Closure, params: Dict[str, Any] | List | EstimatorParams | None = None, *args) -> EstimatorResult
Paramètres
| Nom | Description |
|---|---|
|
entry_expr
Obligatoire
|
Expression d’entrée. Vous pouvez également fournir un appelant, qui doit être un appelant Q#. |
|
params
|
Paramètres pour configurer l’estimation physique. Valeur par défaut: None
|
|
*args
Obligatoire
|
Arguments à passer à l’appelant, s’il est fourni. |
Retours
| Type | Description |
|---|---|
|
Ressources estimées. |
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)
Paramètres
| Nom | Description |
|---|---|
|
algorithm
Obligatoire
|
|
|
qubit
Obligatoire
|
|
|
qec
Obligatoire
|
|
|
factories
|
Valeur par défaut: Ellipsis
|
Paramètres de mot clé uniquement
| Nom | Description |
|---|---|
|
error_budget
|
Valeur par défaut: 0.01
|
|
max_factories
|
Valeur par défaut: None
|
|
logical_depth_factor
|
Valeur par défaut: None
|
|
max_physical_qubits
|
Valeur par défaut: None
|
|
max_duration
|
Valeur par défaut: None
|
|
error_budget_pruning
|
Valeur par défaut: False
|
eval
Évalue le code source Q#.
La sortie est imprimée dans la console.
eval(source: str, *, save_events: bool = False) -> Any
Paramètres
| Nom | Description |
|---|---|
|
source
Obligatoire
|
Code source Q# à évaluer. |
Paramètres de mot clé uniquement
| Nom | Description |
|---|---|
|
save_events
|
Si la valeur est true, toutes les sorties sont enregistrées et retournées. Si la valeur est false, elles sont imprimées. Valeur par défaut: False
|
Retours
| Type | Description |
|---|---|
|
Valeur retournée par la dernière instruction dans le code source ou la sortie enregistrée si |
Exceptions
| Type | Description |
|---|---|
|
En cas d’erreur lors de l’évaluation du code source. |
init
Initialise l’interpréteur 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
Paramètres de mot clé uniquement
| Nom | Description |
|---|---|
|
target_profile
|
La définition du profil cible permet à l’interpréteur Q# de générer des programmes compatibles avec une cible spécifique. Voir TargetProfile. Valeur par défaut: Unrestricted
|
|
target_name
|
Nom facultatif de l’ordinateur cible à utiliser pour déduire le paramètre de target_profile compatible. Valeur par défaut: None
|
|
project_root
|
Chemin facultatif d’un répertoire racine avec un projet Q# à inclure. Il doit contenir un manifeste de projet qsharp.json. Valeur par défaut: None
|
|
language_features
|
Liste facultative des indicateurs de fonctionnalités linguistiques à activer. Celles-ci correspondent aux fonctionnalités expérimentales ou préliminaires du langage Q#. Les valeurs valides sont les suivantes :
Valeur par défaut: None
|
|
trace_circuit
|
Active le suivi du circuit pendant l’exécution. La transmission de true est requise pour que la fonction dump_circuit retourne un circuit. La fonction de circuitn’est pas affectée par ce paramètre et génère toujours un circuit. Valeur par défaut: None
|
Retours
| Type | Description |
|---|---|
|
<xref:Config>
|
Configuration de l’interpréteur Q#. |
logical_counts
Extrait le nombre de ressources logiques à partir du code source Q#. Une expression d’entrée ou une expression pouvant être appelée avec des arguments doit être fournie.
logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts
Paramètres
| Nom | Description |
|---|---|
|
entry_expr
Obligatoire
|
Expression d’entrée. Vous pouvez également fournir un appelant, qui doit être un appelant Q#. |
Retours
| Type | Description |
|---|---|
|
Ressources de programme en termes de nombre de portes logiques. |
run
Exécute l’expression Q# donnée pour le nombre donné de captures. Chaque capture utilise une instance indépendante du simulateur.
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]
Paramètres
| Nom | Description |
|---|---|
|
entry_expr
Obligatoire
|
Expression d’entrée. Vous pouvez également fournir un appelant, qui doit être un appelant Q#. |
|
shots
Obligatoire
|
Nombre de tirs à exécuter. |
|
*args
Obligatoire
|
Arguments à passer à l’appelant, s’il est fourni. |
|
on_result
Obligatoire
|
Fonction de rappel qui sera appelée avec chaque résultat. |
|
save_events
Obligatoire
|
Si la valeur est true, la sortie de chaque capture est enregistrée. Si la valeur est false, elles sont imprimées. |
|
noise
Obligatoire
|
Bruit à utiliser dans la simulation. |
|
qubit_loss
Obligatoire
|
Probabilité de perte de qubit dans la simulation. |
|
seed
Obligatoire
|
Valeur initiale à utiliser pour le générateur de nombres aléatoires dans la simulation, le cas échéant. |
|
type
Obligatoire
|
Type de simulateur à utiliser. S’il n’est pas spécifié, la simulation de vecteur d’état éparse par défaut est utilisée. |
|
num_qubits
Obligatoire
|
Nombre de qubits à utiliser pour le type de simulation « clifford ». S’il n’est pas spécifié, le simulateur Clifford suppose une valeur par défaut de 1 000 qubits. |
Paramètres de mot clé uniquement
| Nom | Description |
|---|---|
|
on_result
|
Valeur par défaut: None
|
|
save_events
|
Valeur par défaut: False
|
|
noise
|
Valeur par défaut: None
|
|
qubit_loss
|
Valeur par défaut: None
|
|
seed
|
Valeur par défaut: None
|
|
type
|
Valeur par défaut: None
|
|
num_qubits
|
Valeur par défaut: None
|
Retours
| Type | Description |
|---|---|
|
Liste des résultats ou des erreurs d’exécution. Si |
Exceptions
| Type | Description |
|---|---|
|
En cas d’erreur lors de l’interprétation de l’entrée. |
|
|
Si le nombre de tirs est inférieur à 1. |
set_classical_seed
Définit la valeur initiale du générateur de nombres aléatoires utilisé pour les opérations de nombre aléatoire classique de bibliothèque standard. Cela s’applique à tous les codes Q# exécutés, compilés ou estimés.
set_classical_seed(seed: int | None) -> None
Paramètres
| Nom | Description |
|---|---|
|
seed
Obligatoire
|
Valeur initiale à utiliser pour le générateur de nombres aléatoires classique. Si aucune, la valeur initiale est générée à partir de l’entropie. |
set_quantum_seed
Définit la valeur initiale du générateur de nombres aléatoires utilisé pour les mesures quantiques. Cela s’applique à tous les codes Q# exécutés, compilés ou estimés.
set_quantum_seed(seed: int | None) -> None
Paramètres
| Nom | Description |
|---|---|
|
seed
Obligatoire
|
Valeur initiale à utiliser pour le générateur de nombres aléatoires quantiques. Si aucune, la valeur initiale est générée à partir de l’entropie. |