AddSpectatorMeasures
class AddSpectatorMeasures(*args, **kwargs)
Basi: TransformationPass
Aggiungere misure sui qubit spettatori.
Un qubit attivo è un qubit su cui si agisce nel circuito mediante un'istruzione non barriera. Un qubit terminato è un qubit la cui ultima azione è una misurazione. Un qubit spettatore è un qubit inattivo, ma adiacente a un qubit attivo sotto la mappa di accoppiamento. Questo passaggio aggiunge una misura a tutti i qubit spettatori e, opzionalmente tramite include_unmeasured, a tutti i qubit attivi che non sono qubit terminati.
Le misure aggiunte scrivono in un nuovo registro che ha un bit per ogni qubit spettatore e si chiama spectator_creg_name.
Quando questo passaggio incontra un'operazione di flusso di controllo, itera attraverso tutti i suoi blocchi. Segnala come "attivo" ogni qubit che è attivo in almeno uno dei blocchi e come "terminato" ogni qubit che è terminato in ognuno dei blocchi.
Inizializza il passaggio.
Parametri
- coupling\map - Una mappa di accoppiamento o un elenco di tuple che indicano coppie di qubit vicini.
- include_unmeasured - Se i qubit che sono attivi ma non sono terminati da una misurazione devono essere trattati come spettatori. Se
True, viene aggiunta una misura del terminale su ciascuno di essi. - spectator_creg_name - Il nome del registro classico aggiunto per le misure sui qubit spectator.
- add_barrier - Se aggiungere una barriera che agisca su tutti i qubit attivi e quelli dello spettatore prima delle misure dello spettatore.
Attributi
is_analysis_pass
Controlla se il passaggio è un passaggio di analisi.
Se il passo è un AnalysisPass,, significa che il passo può analizzare il DAG e scrivere i risultati di tale analisi nel set di proprietà. Questo tipo di passaggio non consente di modificare il DAG.
is_transformation_pass
Controlla se il passaggio è un passaggio di trasformazione.
Se il passaggio è un TransformationPass,, significa che il passaggio può manipolare il DAG, ma non può modificare il set di proprietà (ma può essere letto).
Metodi
execute
execute(passmanager_ir, state, callback=None)
Eseguire l'attività di ottimizzazione per l'IR 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
Qiskit IR ottimizzato e stato del flusso di lavoro.
Tipo di restituzione
name
run
run(dag)
Eseguire un passaggio sul circuito DAG. Questo viene implementato dallo sviluppatore del passaggio.
Parametri
dag (DAGCircuit) – il dag su cui viene eseguito il passaggio.
Aumenti
NotImplementedError - quando questo viene lasciato non implementato 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 da aggiornare.
- run_state (RunState) – Stato di completamento dell'attività corrente.
Risultati
Stato aggiornato del gestore dei passaggi.
Tipo di restituzione