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