Programmi di utilità
qiskit_addon_slc.utils
Varie funzioni.
Questo modulo mette a disposizione una serie di funzioni di utilità. Alcune di queste soluzioni hanno carattere temporaneo e servono a ovviare a problemi ancora irrisolti dell’ Qiskit SDK. In tal caso, vengono contrassegnati come tali e possono essere rimossi senza preavviso né ulteriore comunicazione.
find_indices
find_indices(circuit, bits_or_instruction, /)
Trova gli indici dei qubit corrispondenti agli indici dei bit o alle istruzioni del circuito forniti.
Questa funzione non è considerata parte dell'API stabile! Verrà rimossa senza preavviso né avvisi di obsolescenza quando la stessa funzionalità sarà supportata in modo nativo dall' Qiskit SDK. Per ulteriori dettagli, consulta questo numero.
Parametri
- circuit (QuantumCircuit) – il circuito quantistico di cui si devono individuare gli indici dei qubit.
- bits_or_instruction (Bit |CircuitInstruction |Sequence[Bit]) – gli elementi di cui occorre trovare gli indici. Se si tratta di un
CircuitInstruction, vengono utilizzati i qubit su cui agisce questa istruzione.
Risultati
Gli indici dei bit oggetto della query nei registri del circuito. Se è stato fornito un oggetto a bit singolo, int viene restituito un singolo valore corrispondente al suo indice. In caso contrario, il tipo di ritorno sarà un la cui list[int] lunghezza è pari al numero di bit forniti.
Aumenti
TypeError – quando bits_or_instruction viene fornito un tipo inaspettato di.
Tipo di restituzione
generate_noise_model_paulis
generate_noise_model_paulis(instructions, coupling_map=None, circuit=None)
Generare i termini di Pauli di peso 1 e 2 per ciascuno dei riquadri di livello 2q forniti.
Parametri
- instructions (list[CircuitInstruction]) – l'output di
find_unique_box_instructions(). Si presume che ciascuna delle istruzioni fornite sia costituita esclusivamente da porte di misurazione oppure corrisponda a un livello di istruzioni relative a porte a 2 qubit. Nel primo caso, il modello di rumore generato conterrà solo erroriXsu singoli qubit; nel secondo caso, saranno inclusi tutti gli errori di Pauli di peso 1 e 2 sulla mappa di accoppiamento ridotta. - coupling_map (CouplingMap | None) – la mappa di accoppiamento del backend su cui sono state disposte le istruzioni. In questo caso
None, si ipotizza una linea di qubit di tipo “ 1d ”. - circuit (QuantumCircuit | None) – il circuito transpilato che è stato disposto sulla mappa di accoppiamento fornita. Ciò può verificarsi solo
Nonequando anche ècoupling_mapNone.
Risultati
Un dizionario che mette in corrispondenza gli attributi ref dell'annotazione InjectNoise di ciascun Box univoco con i termini di Pauli a peso 1 e 2, i cui errori sono stati appresi per quel Box.
Tipo di restituzione
dict [ str, QubitSparsePauliList ]
get_extremal_eigenvalue
get_extremal_eigenvalue(spo, **kwargs)
Calcola l'autovalore estremo dell'operatore specificato.
Questa operazione converte l'operatore fornito in una matrice sparsa di cui si richiede l'autovalore minimo.
L'attuale implementazione non è certamente ottimizzata in termini di prestazioni.
Parametri
-
spo (SparsePauliOp) – l'operatore di cui si deve trovare l'autovalore minimo.
-
kwargs –
argomenti chiave aggiuntivi per
davidson1(). Se non diversamente specificato, verranno utilizzati i seguenti valori predefiniti:- tol: 1e-6
- max_cycle: 500
- max_space: 12
- lindep: 1e-11
- max_memory: 2000
Gli altri valori assumeranno i valori predefiniti di PySCF’s.
Risultati
Una coppia che indica se l'algoritmo di Davidson è convergente e il valore proprio minimo ottenuto.
Tipo di restituzione
iter_circuit
iter_circuit(circuit, *, reverse=False, log_process=True)
Esegue un ciclo sulle istruzioni presenti in un circuito.
Questa funzione procede in modo ricorsivo nelle istruzioni BoxOp .
Gli ostacoli presenti nel circuito vengono ignorati.
Parametri
- circuit (QuantumCircuit) – il circuito su cui eseguire l'iterazione.
- reverse (bool) – se eseguire il circuito in ordine inverso.
- log_process (bool) – se registrare il processo.
Attese
Tuple di lunghezza quattro, costituite dall'istruzione del circuito rilevata, dagli indici canonici dei qubit (ovvero gli indici interi dei qubit su cui agisce l'istruzione nel contesto dell'input circuit) e dagli attributi InjectNoise : e modifier_ref ref. Questi ultimi due elementi potrebbero None indicare un'istruzione di circuito che non faceva parte di un'istruzione srotolata BoxOp.
Tipo di restituzione
Generatore [ tuple [ CircuitInstruction, lista [ int ], str | None, str | None]]
map_modifier_ref_to_ref
map_modifier_ref_to_ref(circuit)
Eseguire un'iterazione su un circuito e mappare i riferimenti alle annotazioni InjectNoise .
Parametri
circuit (QuantumCircuit) – il circuito su cui eseguire l'iterazione.
Risultati
Un dizionario che associa ogni elemento InjectNoise.modifier_ref al suo corrispondente InjectNoise.ref.
Tipo di restituzione
remove_measure
remove_measure(circuit)
Eliminare tutte le operazioni Measure dal circuito fornito.
Questa funzione procede in modo ricorsivo nelle istruzioni BoxOp .
Parametri
circuit (QuantumCircuit) – il circuito dal quale rimuovere le misure.
Risultati
Il circuito senza operazioni di misura.
Tipo di restituzione