AddPostCircuitNonMarkovianErrorChecks
class AddPostCircuitNonMarkovianErrorChecks(*args, **kwargs)
Basi: TransformationPass
Aggiungere controlli di errore non markoviani alla fine del circuito sui qubit attivi, che si concludono con una misurazione.
Un controllo degli errori non markoviano post-circuito consiste in un impulso X a banda stretta, posizionato dopo una misurazione terminale, che inverte lo stato del qubit rispetto allo stato misurato . Lo stato viene quindi misurato e, se la QPU non è riuscita a invertire il qubit in un determinato tentativo, quel 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 "_ps" 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 post-controllo. O l'uno
"xslow"o l'altro"rx". - post_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 “_pre” vengono ignorati per evitare di aggiungere un controllo post-pre al controllo pre-pre.
Attributi
is_analysis_pass
Verifica se il ciclo è un ciclo 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 in un ciclo.
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