CollectAndCollapse
class qiskit.transpiler.passes.CollectAndCollapse(*args, **kwargs)
Basi: TransformationPass
Un passaggio generale del transpiler per raccogliere e consolidare blocchi di nodi in un circuito.
Questo passaggio del transpiler dipende da due funzioni: la funzione di raccolta e la funzione di collassamento. La funzione di raccolta collect_function prende un DAG e restituisce un elenco di blocchi. La funzione di collasso collapse_function prende un DAG e un elenco di blocchi, consolida ogni blocco e restituisce il DAG modificato.
I DAG di ingresso e di uscita sono di tipo DAGCircuittuttavia, quando si sfrutta l'analisi della commutatività per raccogliere i blocchi, viene utilizzata internamente la rappresentazione DAGDependency viene utilizzata internamente. A tal fine, collect_function e collapse_function devono funzionare con entrambi i tipi di DAG e nodi DAG.
Altri passaggi del transpiler di raccolta e consolidamento, ad esempio CollectLinearFunctionspossono derivare da questo passaggio, fissando collect_function e collapse_function a funzioni specifiche.
Parametri
- collect_function (callable) – una funzione che prende un DAG e restituisce un elenco di blocchi di nodi "raccolti"
- collapse_function (callable) – una funzione che prende un DAG e un elenco di blocchi "raccolti" e consolida ogni blocco.
- do_commutative_analysis (bool) – se Vero, sfrutta le relazioni di commutatività tra i nodi.
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)
Esegue il passaggio CollectLinearFunctions su dag. :param dag: il DAG da ottimizzare. :type dag: DAGCircuito
Risultati
il DAG ottimizzato.
Tipo di restituzione
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