AddPreCircuitNonMarkovianErrorChecks
class AddPreCircuitNonMarkovianErrorChecks(*args, **kwargs)
Basi: TransformationPass
Aggiungere controlli di errore non markoviani all’inizio del circuito sui qubit attivi, che si concludono con una misurazione.
Un controllo degli errori non markoviano pre-circuito consiste in un impulso X a banda stretta che ruota il qubit da , seguito da un normale impulso X che riporta il qubit allo stato fondamentale e da una misurazione. Se in un determinato tentativo la QPU non riesce a invertire lo stato del qubit da “ ”, tale campione può essere considerato inaffidabile e scartato. Selezionare a posteriori solo i campioni che superano tutti i controlli può migliorare la fedeltà delle distribuzioni campionate dalla QPU.
Le misurazioni aggiunte vengono scritte in nuovi registri classici che sono copie dei registri del DAG, con nomi modificati (per impostazione predefinita, aggiungendo "_pre" al nome del registro).
Questi passaggi sono supportati solo sulle QPU Heron che supportano i gate frazionari.
Inizializza il pass.
Parametri
- x_pulse_type – Il tipo di impulso X da applicare alle misurazioni preliminari. O l'uno
"xslow"o l'altro"rx". - pre_check_suffix – Un suffisso fisso da aggiungere ai nomi dei registri classici durante la copia.
- ignore_creg_suffixes – Un elenco di suffissi relativi ai registri classici che devono essere ignorati (non copiati). Per impostazione predefinita, i registri che terminano con “_ps” vengono ignorati per evitare di aggiungere un controllo preliminare ai registri di controllo finale.
- ignore_creg_names – Un elenco dei nomi esatti dei registri classici che devono essere ignorati (non copiati). Per impostazione predefinita, i registri denominati “spec” vengono ignorati per evitare di aggiungere un controllo preliminare ai registri spettatore.
Attributi
is_analysis_pass
Verifica se il passaggio è un passaggio di analisi.
Se il pass è di tipo " AnalysisPass, ", significa che è in grado di analizzare il DAG e di scrivere i risultati di tale analisi nel set di proprietà. Questo tipo di passaggio non consente di apportare modifiche al DAG.
is_transformation_pass
Verifica se il pass è un pass di trasformazione.
Se il pass è di tipo " TransformationPass, ", ciò significa che il pass può manipolare il DAG, ma non può modificare l'insieme delle proprietà (sebbene possa leggerlo).
Metodi
execute
execute(passmanager_ir, state, callback=None)
Esegui l'operazione di ottimizzazione per l'IR di Qiskit in ingresso.
Parametri
- passmanager_ir (DAGCircuit) – Qiskit IR da ottimizzare.
- state (DAGCircuit) – Stato associato all'esecuzione del flusso di lavoro da parte dello stesso gestore dei passaggi.
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Una funzione di callback che viene chiamata ad ogni esecuzione di un'attività di ottimizzazione.
Risultati
IR ottimizzato di Qiskit e stato del flusso di lavoro.
Tipo di restituzione
name
run
run(dag)
Esegui un passaggio sul DAGCircuit. L'implementazione è a cura dello sviluppatore del pass.
Parametri
dag (DAGCircuit) – il giorno in cui si svolge la gara.
Aumenti
NotImplementedError – quando questa operazione non viene eseguita per un passaggio.
update_status
update_status(state, run_state)
Aggiornare lo stato del flusso di lavoro.
Parametri
- state (PassManagerState) – Passare lo stato del gestore per l'aggiornamento.
- run_state (RunState) – Stato di completamento dell'attività corrente.
Risultati
Stato del gestore dei pass aggiornato.
Tipo di restituzione