qre Pacchetto
Pacchetti
| application | |
| interop | |
| models |
Moduli
| instruction_ids | |
| property_keys |
Classi
| Application |
Un'applicazione definisce una classe di problemi di calcolo quantistico insieme a un metodo per generare tracce per istanze problematiche specifiche. Si distingue tra i parametri di applicazione e di traccia. I parametri dell'applicazione definiscono quale particolare istanza dell'applicazione si vuole considerare. I parametri di traccia definiscono come generare una traccia. Essi cambiano il modo specifico in cui risolviamo il problema, ma non il problema stesso. Ad esempio, nella crittografia quantistica, i parametri dell'applicazione potrebbero definire le dimensioni della chiave per un prodotto RSA prime, mentre i parametri di traccia definiscono l'algoritmo da usare per interrompere la crittografia, nonché i parametri presenti. |
| Architecture |
Classe di base astratta per le architetture hardware quantistiche. |
| Block | |
| Constraint | |
| ConstraintBound | |
| Encoding | |
| EstimationResult | |
| EstimationTable |
Tabella dei risultati della stima delle risorse quantistica. Estende Inizializzare una tabella di stima vuota con le colonne predefinite. |
| EstimationTableColumn |
Definizione di una singola colonna in un oggetto |
| EstimationTableEntry |
Una singola riga in un oggetto Ogni voce rappresenta un risultato di stima ottimale di Pareto per una particolare combinazione di traccia dell'applicazione e ISA dell'architettura. |
| FactoryResult | |
| ISA | |
| ISAContext |
Contesto passato attraverso l'enumerazione, mantenendo lo stato condiviso. Inizializzare il contesto ISA per l'architettura specificata. |
| ISAQuery |
Classe base astratta per tutti i nodi nell'albero di enumerazione ISA. I nodi di enumerazione definiscono la struttura dello spazio di ricerca per isa a partire dalle architetture e modificati dalle trasformazioni ISA, ad esempio gli schemi di correzione degli errori. Possono essere composti usando operatori come |
| ISARefNode |
Riferimento a un ISA associato nel contesto di enumerazione. Questo nodo cerca l'associazione dal contesto e restituisce l'ISA associato. |
| ISARequirements | |
| ISATransform |
Classe base astratta per le trasformazioni tra isa (ad esempio, schemi QEC). Una trasformazione ISA definisce un mapping da un ISA di input obbligatorio (ad esempio, vincoli di architettura) a un ISA di output fornito (istruzioni logiche). Supporta l'enumerazione dei parametri di configurazione. |
| InstructionFrontier | |
| InstructionSource | |
| LatticeSurgery |
Trasformazione della traccia della chirurgia reticolare. Converte una traccia in una forma adatta per la stima delle risorse basate su reticolo-chirurgia. |
| PSSPC |
Trasformazione della traccia di calcolo basata su Pauli (PSSPC). Converte i cancelli di rotazione e facoltativamente i cancelli CCX in operazioni basate sullo stato T adatte per la stima delle risorse di chirurgia reticolare. |
| Trace | |
| TraceQuery |
Query che enumera le tracce trasformate da un'applicazione. Una query di traccia concatena una sequenza di trasformazioni di traccia, ognuna con argomenti di parole chiave facoltativi per eseguire l'override dei domini dei parametri predefiniti. |
| TraceTransform |
Classe base astratta per le trasformazioni di traccia. |
Funzioni
block_linear_function
block_linear_function(block_size, slope, offset=None)
Parametri
| Nome | Descrizione |
|---|---|
|
block_size
Necessario
|
|
|
slope
Necessario
|
|
|
offset
|
Valore predefinito: None
|
constant_function
constant_function(value)
Parametri
| Nome | Descrizione |
|---|---|
|
value
Necessario
|
|
constraint
Creare un vincolo di istruzione.
constraint(id: int, encoding: Encoding = Encoding.PHYSICAL, *, arity: int | None = 1, error_rate: ConstraintBound | None = None, **kwargs: bool) -> Constraint
Parametri
| Nome | Descrizione |
|---|---|
|
id
Necessario
|
ID istruzione. |
|
encoding
|
Codifica dell'istruzione. FISICO (0) o LOGICO (1). Valore predefinito: 0
|
|
arity
Necessario
|
<xref:Optional>[int]
L'arità dell'istruzione. Se None, si presuppone che l'istruzione abbia un'arità variabile. Il valore predefinito è 1. |
|
error_rate
Necessario
|
<xref:Optional>[<xref:ConstraintBound>]
Vincolo sulla frequenza di errore. |
|
**kwargs
Necessario
|
Le proprietà necessarie che corrispondono alle istruzioni devono avere. Nomi di proprietà validi: distanza. Impostare su True per richiedere la proprietà . |
Parametri di sole parole chiave
| Nome | Descrizione |
|---|---|
|
arity
|
Valore predefinito: 1
|
|
error_rate
|
Valore predefinito: None
|
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
Vincolo di istruzione. |
Eccezioni
| Tipo | Descrizione |
|---|---|
|
Se in kwargs viene specificato un nome di proprietà sconosciuto. |
estimate
Stimare i requisiti delle risorse per un'istanza e un'architettura dell'applicazione specificati.
L'istanza dell'applicazione potrebbe restituire più tracce. Ognuna delle tracce viene trasformata dalla query di traccia, che applica diverse trasformazioni di traccia in sequenza. Ogni trasformazione può restituire più tracce. Analogamente, l'ISA dell'architettura viene trasformata dalla query ISA, che applica diverse trasformazioni ISA in sequenza, ognuna delle quali può restituire più ISA. La stima viene eseguita per ogni combinazione di traccia trasformata e ISA. I risultati vengono raccolti in un oggetto EstimationTable e restituiti.
La raccolta contiene solo i risultati ottimali rispetto al numero totale di qubit e al runtime totale.
Annotazioni
La strategia di eliminazione usata quando use_graph è impostata su True (impostazione predefinita)
filtra le istruzioni ISA confrontando lo spazio per istruzione, il tempo,
e l'errore in modo indipendente. Tuttavia, il numero totale di qubit di un risultato
dipende dall'interazione tra lo spazio factory e il runtime:
factory_qubits = copie × factory_space in cui vengono determinate le copie
per count.div_ceil(runtime/factory_time). Per questo motivo, un ISA
l'istruzione che è dominata sulle metriche per istruzione può ancora
contribuire a un risultato ottimale a livello globale (ad esempio, una fabbrica con
un tempo maggiore potrebbe richiedere meno copie, con un minor numero di qubit totali. Come un
conseguenza, use_graph=True può perdere alcuni risultati che
use_graph=False troverebbe. Usare use_graph=False quando l'completezza di
la frontiera Pareto è obbligatoria.
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
Parametri
| Nome | Descrizione |
|---|---|
|
application
Necessario
|
Applicazione quantistica da stimare. |
|
architecture
Necessario
|
Architettura quantistica di destinazione. |
|
isa_query
Necessario
|
Query ISA per enumerare isa dall'architettura. |
|
trace_query
|
Query di traccia per enumerare le tracce dall'applicazione. Valore predefinito: None
|
|
max_error
Necessario
|
Errore massimo consentito per i risultati della stima. |
|
post_process
Necessario
|
Se True, usare il percorso di stima a thread Python (destinato alla logica di post-elaborazione futura). Se False (impostazione predefinita), usare il percorso di stima parallela rust. |
|
use_graph
Necessario
|
Se True (impostazione predefinita), usare il percorso di stima rust che compila un grafico di ISA e elimina isa non ottimali durante la stima. Se False, usare il percorso di stima Rust che non esegue alcuna eliminazione ed enumera semplicemente tutti gli ISA per ogni traccia. |
|
name
Necessario
|
<xref:Optional>[str]
Nome facoltativo per la stima. Se specificato, verrà aggiunto come prima colonna alla tabella dei risultati per tutte le voci. |
Parametri di sole parole chiave
| Nome | Descrizione |
|---|---|
|
max_error
|
Valore predefinito: 1.0
|
|
post_process
|
Valore predefinito: False
|
|
use_graph
|
Valore predefinito: True
|
|
name
|
Valore predefinito: None
|
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
Tabella contenente i risultati della stima ottimale. |
generic_function
generic_function(func)
Parametri
| Nome | Descrizione |
|---|---|
|
func
Necessario
|
|
instruction_name
instruction_name(id)
Parametri
| Nome | Descrizione |
|---|---|
|
id
Necessario
|
|
linear_function
linear_function(slope)
Parametri
| Nome | Descrizione |
|---|---|
|
slope
Necessario
|
|
plot_estimates
Risultati della stima del tracciato che visualizzano qubit e runtime.
Crea un grafico a dispersione log-log in cui l'asse x mostra il runtime totale e l'asse y mostra il numero totale di qubit fisici.
i dati possono essere singoli EstimationTable o iterabili di tabelle. Quando vengono fornite più tabelle, ognuna viene tracciata come serie separata. Se una tabella ha un EstimationTable.name oggetto (impostato tramite il parametro name di estimate), viene usato come etichetta di legenda per tale serie.
Quando runtime_unit è None (impostazione predefinita), l'asse x usa etichette di graduazione temporizzato leggibile che si estendono su nanosecondi a secoli.
Quando viene specificata una stringa di unità (ad esempio "hours"), tutti i runtime vengono ridimensionati in tale unità e l'etichetta dell'asse x include l'unità mentre i tick sono numeri semplici.
Valori supportati runtime_unit: "ns", "µs" (o "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'})
Parametri
| Nome | Descrizione |
|---|---|
|
data
Necessario
|
Una singola oggetto EstimationTable o iterabile di oggetti EstimationTable da tracciare. |
|
runtime_unit
Necessario
|
Unità di tempo facoltativa in cui ridimensionare l'asse x. |
|
figsize
Necessario
|
Dimensioni della figura in pollici come |
|
scatter_args
Necessario
|
Argomenti di parole chiave aggiuntivi da passare a |
Parametri di sole parole chiave
| Nome | Descrizione |
|---|---|
|
runtime_unit
|
Valore predefinito: None
|
|
figsize
|
Valore predefinito: (15, 8)
|
|
scatter_args
|
Valore predefinito: {'marker': 'x'}
|
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
<xref:matplotlib.figure.Figure>
|
Figura contenente il tracciato. |
Eccezioni
| Tipo | Descrizione |
|---|---|
|
Se matplotlib non è installato. |
|
|
Se tutte le tabelle sono vuote o runtime_unit non vengono riconosciute. |
property_name
property_name(id)
Parametri
| Nome | Descrizione |
|---|---|
|
id
Necessario
|
|
property_name_to_key
property_name_to_key(name)
Parametri
| Nome | Descrizione |
|---|---|
|
name
Necessario
|
|