qre Paquet
Paquets
| application | |
| interop | |
| models |
Modules
| instruction_ids | |
| property_keys |
Classes
| Application |
Une application définit une classe de problèmes de calcul quantique, ainsi qu’une méthode pour générer des traces pour des instances de problèmes spécifiques. Nous faisons la distinction entre les paramètres d’application et de trace. Les paramètres d’application définissent l’instance particulière de l’application à prendre en compte. Les paramètres de trace définissent comment générer une trace. Ils changent la façon spécifique dans laquelle nous résolvons le problème, mais pas le problème lui-même. Par exemple, dans l’cryptanalysis quantique, les paramètres d’application peuvent définir la taille de clé d’un produit RSA prime, tandis que les paramètres de trace définissent l’algorithme à utiliser pour rompre le chiffrement, ainsi que les paramètres qui y figurent. |
| Architecture |
Classe de base abstraite pour les architectures matérielles quantiques. |
| Block | |
| Constraint | |
| ConstraintBound | |
| Encoding | |
| EstimationResult | |
| EstimationTable |
Table des résultats d’estimation des ressources quantiques. Étend et fournit des colonnes configurables Initialisez une table d’estimation vide avec des colonnes par défaut. |
| EstimationTableColumn |
Définition d’une seule colonne dans un |
| EstimationTableEntry |
Une seule ligne dans un Chaque entrée représente un résultat d’estimation pareto optimal pour une combinaison particulière de trace d’application et d’architecture ISA. |
| FactoryResult | |
| ISA | |
| ISAContext |
Contexte passé par énumération, contenant l’état partagé. Initialisez le contexte ISA pour l’architecture donnée. |
| ISAQuery |
Classe de base abstraite pour tous les nœuds de l’arborescence d’énumération ISA. Les nœuds d’énumération définissent la structure de l’espace de recherche pour les isas à partir d’architectures et modifiées par des transformations ISA telles que des schémas de correction d’erreurs. Ils peuvent être composés à l’aide d’opérateurs tels que |
| ISARefNode |
Référence à un ISA lié dans le contexte d’énumération. Ce nœud recherche la liaison à partir du contexte et génère l’ISA lié. |
| ISARequirements | |
| ISATransform |
Classe de base abstraite pour les transformations entre isas (par exemple, schémas QEC). Une transformation ISA définit un mappage à partir d’un ISA d’entrée obligatoire (par exemple, contraintes d’architecture) à un ISA de sortie fourni (instructions logiques). Il prend en charge l’énumération des paramètres de configuration. |
| InstructionFrontier | |
| InstructionSource | |
| LatticeSurgery |
Lattice chirurgie transformation de trace. Convertit une trace en forme adaptée à l’estimation des ressources basées sur lattice-chirurgie. |
| PSSPC |
Transformation de trace de calcul basée sur Pauli (PSSPC). Convertit les portes de rotation et éventuellement les portes CCX en opérations basées sur L’état T adaptées à l’estimation des ressources de chirurgie de treillis. |
| Trace | |
| TraceQuery |
Requête qui énumère les traces transformées d’une application. Une requête de trace chaîne une séquence de transformations de trace, chacune avec des arguments de mot clé facultatifs pour remplacer leurs domaines de paramètres par défaut. |
| TraceTransform |
Classe de base abstraite pour les transformations de trace. |
Functions
block_linear_function
block_linear_function(block_size, slope, offset=None)
Paramètres
| Nom | Description |
|---|---|
|
block_size
Obligatoire
|
|
|
slope
Obligatoire
|
|
|
offset
|
Valeur par défaut: None
|
constant_function
constant_function(value)
Paramètres
| Nom | Description |
|---|---|
|
value
Obligatoire
|
|
constraint
Créez une contrainte d’instruction.
constraint(id: int, encoding: Encoding = Encoding.PHYSICAL, *, arity: int | None = 1, error_rate: ConstraintBound | None = None, **kwargs: bool) -> Constraint
Paramètres
| Nom | Description |
|---|---|
|
id
Obligatoire
|
ID d’instruction. |
|
encoding
|
Encodage des instructions. PHYSIQUE (0) ou LOGIQUE (1). Valeur par défaut: 0
|
|
arity
Obligatoire
|
<xref:Optional>[int]
L’arité de l’instruction. Si aucune, l’instruction est supposée avoir une arité variable. La valeur par défaut est 1. |
|
error_rate
Obligatoire
|
<xref:Optional>[<xref:ConstraintBound>]
Contrainte sur le taux d’erreur. |
|
**kwargs
Obligatoire
|
Propriétés requises dont les instructions correspondantes doivent avoir. Noms de propriétés valides : distance. Affectez la valeur True pour exiger la propriété. |
Paramètres de mot clé uniquement
| Nom | Description |
|---|---|
|
arity
|
Valeur par défaut: 1
|
|
error_rate
|
Valeur par défaut: None
|
Retours
| Type | Description |
|---|---|
|
Contrainte d’instruction. |
Exceptions
| Type | Description |
|---|---|
|
Si un nom de propriété inconnu est fourni dans kwargs. |
estimate
Estimer les besoins en ressources d’une instance et d’une architecture d’application donnés.
L’instance de l’application peut retourner plusieurs traces. Chacune des traces est transformée par la requête de trace, qui applique plusieurs transformations de trace en séquence. Chaque transformation peut retourner plusieurs traces. De même, l’ISA de l’architecture est transformée par la requête ISA, qui applique plusieurs transformations ISA en séquence, chacune pouvant retourner plusieurs ISA. L’estimation est effectuée pour chaque combinaison de trace transformée et d’ISA. Les résultats sont collectés dans un EstimationTable et retournés.
La collection contient uniquement les résultats optimaux par rapport au nombre total de qubits et au runtime total.
Note
Stratégie d’élagage utilisée lorsque use_graph a la valeur True (valeur par défaut)
filtre les instructions ISA en comparant leur espace d’instruction, leur temps,
et d’erreur indépendamment. Toutefois, le nombre total de qubits d’un résultat
dépend de l’interaction entre l’espace de fabrique et le runtime :
factory_qubits = copies × factory_space où les copies sont déterminées
par count.div_ceil(runtime / factory_time). En raison de cela, un ISA
les instructions dominées par les métriques par instruction peuvent toujours
contribuer à un résultat global pareto-optimal (par exemple, une usine avec
une durée plus élevée peut nécessiter moins de copies, ce qui entraîne moins de qubits totaux. En tant que
conséquence, use_graph=True peut manquer certains résultats qui
use_graph=False est trouvé. Utiliser use_graph=False lors de l’exécution de
la frontière pareto est requise.
estimate(application: Application, architecture: Architecture, isa_query: ISAQuery, trace_query: TraceQuery | None = None, *, max_error: float = 1.0, post_process: bool = False, use_graph: bool = True, name: str | None = None) -> EstimationTable
Paramètres
| Nom | Description |
|---|---|
|
application
Obligatoire
|
Application quantique à estimer. |
|
architecture
Obligatoire
|
Architecture quantique cible. |
|
isa_query
Obligatoire
|
Requête ISA pour énumérer les isas de l’architecture. |
|
trace_query
|
Requête de trace pour énumérer les traces de l’application. Valeur par défaut: None
|
|
max_error
Obligatoire
|
Erreur maximale autorisée pour les résultats d’estimation. |
|
post_process
Obligatoire
|
Si la valeur est True, utilisez le chemin d’estimation Python threads (destiné à une logique de post-traitement ultérieure). Si la valeur est False (valeur par défaut), utilisez le chemin d’estimation parallèle Rust. |
|
use_graph
Obligatoire
|
Si la valeur est True (valeur par défaut), utilisez le chemin d’estimation Rust qui génère un graphique d’isas et supprime les isas non optimaux pendant l’estimation. Si la valeur est False, utilisez le chemin d’estimation Rust qui n’effectue aucune taille et énumère simplement tous les isas pour chaque trace. |
|
name
Obligatoire
|
<xref:Optional>[str]
Nom facultatif de l’estimation. Si elle est donnée, elle est ajoutée en tant que première colonne à la table de résultats pour toutes les entrées. |
Paramètres de mot clé uniquement
| Nom | Description |
|---|---|
|
max_error
|
Valeur par défaut: 1.0
|
|
post_process
|
Valeur par défaut: False
|
|
use_graph
|
Valeur par défaut: True
|
|
name
|
Valeur par défaut: None
|
Retours
| Type | Description |
|---|---|
|
Table contenant les résultats d’estimation optimaux. |
generic_function
generic_function(func)
Paramètres
| Nom | Description |
|---|---|
|
func
Obligatoire
|
|
instruction_name
instruction_name(id)
Paramètres
| Nom | Description |
|---|---|
|
id
Obligatoire
|
|
linear_function
linear_function(slope)
Paramètres
| Nom | Description |
|---|---|
|
slope
Obligatoire
|
|
plot_estimates
Tracer les résultats d’estimation affichant des qubits et du runtime.
Crée un nuage de points de journal dans lequel l’axe x affiche le runtime total et l’axe y affiche le nombre total de qubits physiques.
les données peuvent être une seule EstimationTable ou une itérable de tables. Lorsque plusieurs tables sont fournies, chacune est tracée en tant que série distincte. Si une table a un EstimationTable.name (défini via le paramètre de nom de ), il est utilisé comme étiquette de estimatelégende pour cette série.
Lorsque runtime_unit est None (valeur par défaut), l’axe x utilise des étiquettes de graduations d’unité de temps lisibles par l’homme couvrant des nanosecondes à des siècles.
Lorsqu’une chaîne d’unité est donnée (par exemple "hours"), tous les runtimes sont mis à l’échelle vers cette unité et l’étiquette de l’axe x inclut l’unité tandis que les graduations sont des nombres simples.
Valeurs runtime_unit prises en charge : "ns", "µs" (ou "us"), "ms", "s""min""hours""days", "weeks", , . "months""years"
plot_estimates(data: EstimationTable | Iterable[EstimationTable], *, runtime_unit: str | None = None, figsize: tuple[float, float] = (15, 8), scatter_args: dict[str, Any] = {'marker': 'x'})
Paramètres
| Nom | Description |
|---|---|
|
data
Obligatoire
|
EstimationTable unique ou itérable d’objets EstimationTable à tracer. |
|
runtime_unit
Obligatoire
|
Unité de temps facultative pour mettre à l’échelle l’axe x. |
|
figsize
Obligatoire
|
Dimensions de la figure en pouces sous forme |
|
scatter_args
Obligatoire
|
Arguments de mot clé supplémentaires à |
Paramètres de mot clé uniquement
| Nom | Description |
|---|---|
|
runtime_unit
|
Valeur par défaut: None
|
|
figsize
|
Valeur par défaut: (15, 8)
|
|
scatter_args
|
Valeur par défaut: {'marker': 'x'}
|
Retours
| Type | Description |
|---|---|
|
<xref:matplotlib.figure.Figure>
|
Figure contenant le tracé. |
Exceptions
| Type | Description |
|---|---|
|
Si matplotlib n’est pas installé. |
|
|
Si toutes les tables sont vides ou runtime_unit n’est pas reconnue. |
property_name
property_name(id)
Paramètres
| Nom | Description |
|---|---|
|
id
Obligatoire
|
|
property_name_to_key
property_name_to_key(name)
Paramètres
| Nom | Description |
|---|---|
|
name
Obligatoire
|
|