Skip to main content
IBM Quantum Platform

AddPostCircuitNonMarkovianErrorChecks

class AddPostCircuitNonMarkovianErrorChecks(*args, **kwargs)

GitHub

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 ∣x⟩↦∣x⊕1⟩|x\rangle\mapsto|x\oplus1\rangle. 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).

Nota

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

tuple [ DAGCircuit, PassManagerState ]

name

name()

Nome del passo.

Tipo di restituzione

STR

run

run(dag)

GitHub

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

PassManagerState

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.