RoundBasedFactory Klasse
Eine magische Zustandsfabrik, die T-Gate-Anweisungen mit rundbasierten Destillationspipelinen produziert.
In dieser Fabrik werden Kombinationen aus Destillationseinheiten (z. B. "15-bis-1 RM Prep" und "15:1 raumeffizient") untersucht, um optimale Konfigurationen zu finden, die Zeit und Raum minimieren und gleichzeitig die Zielfehlerraten erreichen. Es unterstützt sowohl die physische Destillation (wenn das Eingabe-T-Gate physisch codiert ist) als auch die logische Destillation (mithilfe von Gitteroperationen über Oberflächencodes).
Um die Erfolgswahrscheinlichkeit von Destillationsrunden zu berücksichtigen, modelliert die Fabrik die Pipeline mit einer Ausfallwahrscheinlichkeitsanforderung (Standardwert 1%), die jede Runde erfüllen muss. Die Anzahl der Destillationseinheiten pro Runde wird an diese Anforderung angepasst, was wiederum den Gesamtraumbedarf beeinflusst.
Raumanforderungen werden mithilfe einer vom Benutzer bereitgestellten Funktion berechnet, die pro runden Raum (z. B. Summe oder Max.) aggregiert wird. Die sum Funktion modelliert den Fall, in dem Qubits nicht über Runden hinweg wiederverwendet werden, während die max Funktionsmodelle den Fall modellieren, in dem Qubits über Runden hinweg wiederverwendet werden.
Für die Enumeration von Destillationseinheiten auf logischer Ebene basiert die Fabrik auf einer vom Benutzer bereitgestellten ISAQuery (Standardeinstellung SurfaceCode.q()) zur Erkundung verschiedener Oberflächencodekonfigurationen und der entsprechenden Gitterchirurgieanweisungen. Diese müssen vom Benutzer bereitgestellt werden und können nicht automatisch von der bereitgestellten Implementierung ISA abgeleitet werden, da sie nur eine Teilmenge der erforderlichen Anweisungen enthalten können. Der Benutzer muss sicherstellen, dass die bereitgestellte Abfrage der Architektur entspricht, für die diese Factory verwendet wird.
Die Ergebnisse werden zur Effizienz auf dem Datenträger zwischengespeichert.
Referenzen:
Sergei Bravyi, Alexei Kitaev: Universal Quantum Computation mit idealen Clifford-Toren und lauten Ancillas, arXiv:quant-ph/0403025
Michael E. Beverland, Prakash Murali, Matthias Troyer, Krysta M. Svore, Torsten Hoefler, Vadym Kliuchnikov, Guang Hao Low, Matthias Soeken, Aarthi Sundaram, Alexander Vaschillo: Bewertung der Anforderungen für den praktischen Quantenvorteil, arXiv:2211.07629
Konstruktor
RoundBasedFactory(code_query: ~qdk.qre._isa_enumeration.ISAQuery = <factory>, physical_qubit_calculation: ~typing.Callable[[~typing.Iterable], int] = <built-in function sum>, cache_dir: ~pathlib.Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based'), use_cache: bool = True)
Parameter
| Name | Beschreibung |
|---|---|
|
code_query
|
Standardwert: <factory>
|
|
physical_qubit_calculation
|
Standardwert: <built-in function sum>
|
|
cache_dir
|
Standardwert: C:\Users\cloudtest\.cache\re3\round_based
|
|
use_cache
|
Standardwert: True
|
Methoden
| provided_isa | |
| required_isa |
provided_isa
provided_isa(impl_isa: ISA, ctx: ISAContext) -> Generator[ISA, None, None]
Parameter
| Name | Beschreibung |
|---|---|
|
impl_isa
Erforderlich
|
|
|
ctx
Erforderlich
|
|
required_isa
static required_isa() -> ISARequirements
Attribute
physical_qubit_calculation
Callable[[Iterable], int] Function to calculate total physical qubits from per round space requirements, z.B. sum or max. Standardmäßig wird summen.
Nur Positionsparameter
| Name | Beschreibung |
|---|---|
|
iterable
|
|
Parameter
| Name | Beschreibung |
|---|---|
|
start
|
Standardwert: 0
|
code_query
ISAQuery Query zum Aufzählen von QEC-Codes für logische Destillationseinheiten. Standardmäßig wird SurfaceCode.q() verwendet.
code_query: ISAQuery
cache_dir
Pfadverzeichnis für die Zwischenspeicherung berechneter Factorykonfigurationen. Standardwert ist "~/.cache/re3/round_based".
cache_dir: Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based')
use_cache
bool Gibt an, ob zwischengespeicherte Ergebnisse verwendet werden sollen. Standardwert ist "True".
use_cache: bool = True