qre Paket
Pakete
| application | |
| interop | |
| models |
Module
| instruction_ids | |
| property_keys |
Klassen
| Application |
Eine Anwendung definiert eine Klasse von Quantenberechnungsproblemen zusammen mit einer Methode, um Ablaufverfolgungen für bestimmte Probleminstanzen zu generieren. Wir unterscheiden zwischen Anwendungs- und Ablaufverfolgungsparametern. Die Anwendungsparameter definieren, welche bestimmte Instanz der Anwendung berücksichtigt werden soll. Die Ablaufverfolgungsparameter definieren, wie eine Ablaufverfolgung generiert wird. Sie ändern die spezifische Art und Weise, in der wir das Problem lösen, aber nicht das Problem selbst. In der Quantenkryptalyse könnten die Anwendungsparameter beispielsweise die Schlüsselgröße für ein RSA Prime-Produkt definieren, während die Ablaufverfolgungsparameter definieren, welcher Algorithmus verwendet werden soll, um die Kryptografie zu unterbrechen, sowie Parameter darin. |
| Architecture |
Abstrakte Basisklasse für Quantenhardwarearchitekturen. |
| Block | |
| Constraint | |
| ConstraintBound | |
| Encoding | |
| EstimationResult | |
| EstimationTable |
Eine Tabelle mit Quantenressourcenschätzungsergebnissen. Erweitert Initialisieren Sie eine leere Schätzungstabelle mit Standardspalten. |
| EstimationTableColumn |
Definition einer einzelnen Spalte in einer |
| EstimationTableEntry |
Eine einzelne Zeile in einer Jeder Eintrag stellt ein Pareto-optimales Schätzungsergebnis für eine bestimmte Kombination aus Anwendungsablaufverfolgung und Architektur ISA dar. |
| FactoryResult | |
| ISA | |
| ISAContext |
Kontext, der über enumeration übergeben wurde und den freigegebenen Zustand enthält. Initialisieren Sie den ISA-Kontext für die angegebene Architektur. |
| ISAQuery |
Abstrakte Basisklasse für alle Knoten in der ISA-Enumerationsstruktur. Enumerationsknoten definieren die Struktur des Suchbereichs für ISAs beginnend mit Architekturen und geändert von ISA-Transformationen, z. B. Fehlerkorrekturschemas. Sie können mithilfe von Operatoren wie |
| ISARefNode |
Ein Verweis auf eine gebundene ISA im Enumerationskontext. Dieser Knoten sucht die Bindung aus dem Kontext und liefert die gebundene ISA. |
| ISARequirements | |
| ISATransform |
Abstrakte Basisklasse für Transformationen zwischen ISAs (z. B. QEC-Schemas). Eine ISA-Transformation definiert eine Zuordnung von einer erforderlichen Eingabe-ISA (z. B. Architektureinschränkungen) zu einer bereitgestellten Ausgabe-ISA (logische Anweisungen). Es unterstützt die Enumeration von Konfigurationsparametern. |
| InstructionFrontier | |
| InstructionSource | |
| LatticeSurgery |
Gitterchirurgie Spurentransformation. Wandelt eine Spur in ein Formular um, das für die Gitterchirurgie-basierte Ressourcenschätzung geeignet ist. |
| PSSPC |
Pauli-basierte Berechnungsablaufverfolgungstransformation (PSSPC). Wandelt Drehtore und optional CCX-Tore in T-zustandsbasierte Operationen um, die für die Gitterchirurgie-Ressourcenschätzung geeignet sind. |
| Trace | |
| TraceQuery |
Eine Abfrage, die transformierte Ablaufverfolgungen aus einer Anwendung aufzählt. Eine Ablaufverfolgungsabfrage verkettet eine Sequenz von Ablaufverfolgungstransformationen mit optionalen Schlüsselwortargumenten, um ihre Standardparameterdomänen außer Kraft zu setzen. |
| TraceTransform |
Abstrakte Basisklasse für Ablaufverfolgungstransformationen. |
Functions
block_linear_function
block_linear_function(block_size, slope, offset=None)
Parameter
| Name | Beschreibung |
|---|---|
|
block_size
Erforderlich
|
|
|
slope
Erforderlich
|
|
|
offset
|
Standardwert: None
|
constant_function
constant_function(value)
Parameter
| Name | Beschreibung |
|---|---|
|
value
Erforderlich
|
|
constraint
Erstellen Sie eine Anweisungseinschränkung.
constraint(id: int, encoding: Encoding = Encoding.PHYSICAL, *, arity: int | None = 1, error_rate: ConstraintBound | None = None, **kwargs: bool) -> Constraint
Parameter
| Name | Beschreibung |
|---|---|
|
id
Erforderlich
|
Die Anweisungs-ID. |
|
encoding
|
Die Anweisungscodierung. PHYSISCH (0) oder LOGISCH (1). Standardwert: 0
|
|
arity
Erforderlich
|
<xref:Optional>[int]
Die Anweisungsarität. If None, instruction is assumed to have variable arity. Der Standardwert ist 1. |
|
error_rate
Erforderlich
|
<xref:Optional>[<xref:ConstraintBound>]
Die Einschränkung der Fehlerrate. |
|
**kwargs
Erforderlich
|
Erforderliche Eigenschaften, die übereinstimmende Anweisungen enthalten müssen. Gültige Eigenschaftsnamen: Abstand. Legen Sie den Wert auf "True" fest, um die Eigenschaft zu erfordern. |
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
arity
|
Standardwert: 1
|
|
error_rate
|
Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Die Anweisungseinschränkung. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn in Kwargs ein unbekannter Eigenschaftsname angegeben wird. |
estimate
Schätzen Sie die Ressourcenanforderungen für eine bestimmte Anwendungsinstanz und -architektur.
Die Anwendungsinstanz gibt möglicherweise mehrere Ablaufverfolgungen zurück. Jede Der Ablaufverfolgungen wird von der Ablaufverfolgungsabfrage transformiert, wodurch mehrere Ablaufverfolgungstransformationen in Sequenz angewendet werden. Jede Transformation kann mehrere Ablaufverfolgungen zurückgeben. Ebenso wird die ISA der Architektur von der ISA-Abfrage transformiert, die mehrere ISA-Transformationen in Sequenz anwendet, von denen jede mehrere ISAs zurückgeben kann. Die Schätzung wird für jede Kombination von transformierten Ablaufverfolgungen und ISA durchgeführt. Die Ergebnisse werden in einer Schätzungstabelle gesammelt und zurückgegeben.
Die Auflistung enthält nur die Ergebnisse, die im Hinblick auf die Gesamtanzahl der Qubits und der Gesamtlaufzeit optimal sind.
Note
Die Zuschneidestrategie, die verwendet wird, wenn use_graph auf "True" festgelegt ist (Standardeinstellung)
filtert ISA-Anweisungen, indem sie ihren Abstand pro Anweisung, Zeit,
und fehler unabhängig. Die Gesamtzahl der Qubits eines Ergebnisses
hängt von der Interaktion zwischen Werksraum und Laufzeit ab:
factory_qubits = Kopien × factory_space, bei denen Kopien bestimmt werden
by count.div_ceil(runtime /factory_time). Aus diesem Grund ist eine ISA
Anweisung, die auf Metriken pro Anweisung dominiert wird, können weiterhin
tragen zu einem globalen Pareto-optimalen Ergebnis bei (z.B. eine Fabrik mit
höhere Zeit benötigt möglicherweise weniger Kopien, was zu weniger Gesamtqubits führt). Als
folge, use_graph=True kann einige Ergebnisse verpassen, die
use_graph=False würde gefunden. Verwenden von "use_graph=False" bei Vollständigkeit
Die Pareto-Grenze ist erforderlich.
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
Parameter
| Name | Beschreibung |
|---|---|
|
application
Erforderlich
|
Die Quantenanwendung, die geschätzt werden soll. |
|
architecture
Erforderlich
|
Die Ziel-Quantenarchitektur. |
|
isa_query
Erforderlich
|
Die ISA-Abfrage zum Aufzählen von ISAs aus der Architektur. |
|
trace_query
|
Die Ablaufverfolgungsabfrage zum Aufzählen von Ablaufverfolgungen aus der Anwendung. Standardwert: None
|
|
max_error
Erforderlich
|
Der maximal zulässige Fehler für die Schätzergebnisse. |
|
post_process
Erforderlich
|
Wenn True, verwenden Sie den Python-Thread-Schätzungspfad (vorgesehen für zukünftige Nachbearbeitungslogik). Wenn "False" (Standardeinstellung) verwendet wird, verwenden Sie den Parallelschätzungspfad von Rust. |
|
use_graph
Erforderlich
|
Wenn "True" (Standard), verwenden Sie den Rust-Schätzungspfad, der während der Schätzung ein Diagramm von ISAs erstellt und suboptimale ISAs schneidet. Wenn False, verwenden Sie den Rost-Schätzungspfad, der keine Beschneidung durchführt, und zählt einfach alle ISAs für jede Spur auf. |
|
name
Erforderlich
|
<xref:Optional>[str]
Optionaler Name für die Schätzung. Wenn angegeben, wird dies als erste Spalte der Ergebnistabelle für alle Einträge hinzugefügt. |
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
max_error
|
Standardwert: 1.0
|
|
post_process
|
Standardwert: False
|
|
use_graph
|
Standardwert: True
|
|
name
|
Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Eine Tabelle mit den optimalen Schätzungsergebnissen. |
generic_function
generic_function(func)
Parameter
| Name | Beschreibung |
|---|---|
|
func
Erforderlich
|
|
instruction_name
instruction_name(id)
Parameter
| Name | Beschreibung |
|---|---|
|
id
Erforderlich
|
|
linear_function
linear_function(slope)
Parameter
| Name | Beschreibung |
|---|---|
|
slope
Erforderlich
|
|
plot_estimates
Zeichnen Sie schätzungsergebnisse, die Qubits im Vergleich zur Laufzeit anzeigen.
Erstellt ein Punktdiagramm mit Protokollprotokollen, bei dem die X-Achse die Gesamtlaufzeit und die y-Achse die Gesamtanzahl der physischen Qubits anzeigt.
Daten können eine einzelne EstimationTable oder eine iterierbare Tabelle sein. Wenn mehrere Tabellen bereitgestellt werden, wird jede als separate Datenreihe gezeichnet. Wenn eine Tabelle über einen EstimationTable.name (über den Namensparameter festgelegt estimate) verfügt, wird sie als Legendenbezeichnung für diese Datenreihe verwendet.
Wenn runtime_unit ist None (standard), verwendet die X-Achse lesbare Zeiteinheitsteilteilbeschriftungen, die Nanosekunden bis Jahrhunderte umfassen.
Wenn eine Einheitenzeichenfolge angegeben wird (z. B. "hours"), werden alle Laufzeiten auf diese Einheit skaliert, und die Beschriftung der x-Achse enthält die Einheit, während die Teilstriche einfache Zahlen sind.
Unterstützte runtime_unit Werte: "ns", ( "µs" oder "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'})
Parameter
| Name | Beschreibung |
|---|---|
|
data
Erforderlich
|
Eine einzelne Schätztabelle oder eine Iterable von Schätztabellenobjekten, die dargestellt werden sollen. |
|
runtime_unit
Erforderlich
|
Optionale Zeiteinheit zum Skalieren der X-Achse auf. |
|
figsize
Erforderlich
|
Abbildungsabmessungen in Zoll als |
|
scatter_args
Erforderlich
|
Zusätzliche Schlüsselwortargumente, die |
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
runtime_unit
|
Standardwert: None
|
|
figsize
|
Standardwert: (15, 8)
|
|
scatter_args
|
Standardwert: {'marker': 'x'}
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
<xref:matplotlib.figure.Figure>
|
Die Abbildung, die die Zeichnung enthält. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn matplotlib nicht installiert ist. |
|
|
Wenn alle Tabellen leer sind oder runtime_unit nicht erkannt werden. |
property_name
property_name(id)
Parameter
| Name | Beschreibung |
|---|---|
|
id
Erforderlich
|
|
property_name_to_key
property_name_to_key(name)
Parameter
| Name | Beschreibung |
|---|---|
|
name
Erforderlich
|
|