RoundBasedFactory Classe

Fabbrica di stati magici che produce istruzioni di controllo T usando pipeline distillazione basate su round.

Questa fabbrica esplora le combinazioni di unità di esportazione (ad esempio "preparazione da 15 a 1 RM" e "15-a-1 spazio efficiente") per trovare configurazioni ottimali che riducono al minimo il tempo e lo spazio durante il raggiungimento delle percentuali di errore di destinazione. Supporta sia la convalida a livello fisico (quando il cancello T di input è codificato fisicamente) che la convalida a livello logico (utilizzando la chirurgia reticolare tramite codici di superficie).

Per tenere conto della probabilità di successo degli arrotondamenti di indicizzazione, la factory modella la pipeline usando un requisito di probabilità di errore (che per impostazione predefinita è 1%) che ogni round deve soddisfare. Il numero di unità di temperatura per round viene regolato per soddisfare questo requisito, che a sua volta influisce sui requisiti di spazio complessivi.

I requisiti di spazio vengono calcolati usando una funzione fornita dall'utente che aggrega lo spazio per round (ad esempio, somma o max). La sum funzione modella il caso in cui i qubit non vengono riutilizzati tra round, mentre la funzione modella il max caso in cui i qubit vengono riutilizzati tra round.

Per l'enumerazione di unità di formattazione a livello logico, la fabbrica si basa su un oggetto fornito ISAQuery dall'utente (per impostazione predefinita SurfaceCode.q()) per esplorare diverse configurazioni del codice di superficie e le corrispondenti istruzioni di chirurgia reticolare. Questi elementi devono essere forniti dall'utente e non possono essere derivati automaticamente dall'isa di implementazione fornita, perché possono contenere solo un subset delle istruzioni necessarie. L'utente deve assicurarsi che la query fornita corrisponda all'architettura per cui viene usata questa factory.

I risultati vengono memorizzati nella cache su disco per garantire l'efficienza.

Riferimenti:

  • Sergei Bravyi, Alexei Kitaev: Calcolo quantistico universale con porte clifford ideali e ancilla rumorose, arXiv:quant-ph/0403025

  • Michael E. Beverland, Prakash Murali, Matthias Troyer, Krysta M. Svore, Torsten Hoefler, Vadym Kliuchnikov, Raggruppa Hao Low, Mathias Soeken, Aarthi Sundaram, Alexander Vaschillo: Valutazione dei requisiti per la scalabilità al vantaggio quantistico pratico, arXiv:2211.07629

Costruttore

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)

Parametri

Nome Descrizione
code_query
Valore predefinito: <factory>
physical_qubit_calculation
Valore predefinito: <built-in function sum>
cache_dir
Valore predefinito: C:\Users\cloudtest\.cache\re3\round_based
use_cache
Valore predefinito: True

Metodi

provided_isa
required_isa

provided_isa

provided_isa(impl_isa: ISA, ctx: ISAContext) -> Generator[ISA, None, None]

Parametri

Nome Descrizione
impl_isa
Necessario
ctx
Necessario

required_isa

static required_isa() -> ISARequirements

Attributi

physical_qubit_calculation

Funzione callable[[Iterable], int] per calcolare i qubit fisici totali da requisiti di spazio per round, ad esempio somma o max. Il valore predefinito è sum.

Parametri posizionali

Nome Descrizione
iterable

Parametri

Nome Descrizione
start
Valore predefinito: 0

code_query

Query ISAQuery per enumerare i codici QEC per le unità di codifica logica. Il valore predefinito è SurfaceCode.q().

code_query: ISAQuery

cache_dir

Directory percorso per la memorizzazione nella cache delle configurazioni di factory calcolate. Il valore predefinito è ~/.cache/re3/round_based.

cache_dir: Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based')

use_cache

bool Indica se usare i risultati memorizzati nella cache. Il valore predefinito è True.

use_cache: bool = True