Skip to main content
IBM Quantum Platform

AddPreCircuitNonMarkovianErrorChecks

class AddPreCircuitNonMarkovianErrorChecks(*args, **kwargs)

GitHub

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 ∣0⟩↦∣1⟩|0\rangle\mapsto|1\rangle, seguito da un normale impulso X che riporta il qubit allo stato fondamentale ∣0⟩|0\rangle e da una misurazione. Se in un determinato tentativo la QPU non riesce a invertire lo stato del qubit da “ ∣0⟩↦∣1⟩↦∣0⟩|0\rangle\mapsto|1\rangle\mapsto|0\rangle ”, 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).

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 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

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 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

PassManagerState

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