MinimumPoint
class qiskit.transpiler.passes.MinimumPoint(*args, **kwargs)
Basi: TransformationPass
Verificare se il DAG ha raggiunto un punto di semi-stabilità relativa rispetto alle esecuzioni precedenti
Questo passaggio è simile al passaggio FixedPoint e deve essere usato principalmente per impostare una condizione di interruzione del ciclo nell'insieme di proprietà. Tuttavia, a differenza della classe FixedPoint che imposta la condizione solo se 2 esecuzioni consecutive hanno lo stesso valore della proprietà impostata, questo passaggio è progettato per trovare un minimo locale e utilizzarlo al suo posto. Questo passaggio è pensato per un ciclo di ottimizzazione in cui un punto fisso potrebbe non essere mai raggiunto (ad esempio se si usa la sintesi e ci sono più uscite equivalenti per alcuni casi).
Questo passaggio tiene traccia dello stato dei campi dell'insieme di proprietà nelle sue esecuzioni passate e imposta un campo booleano quando viene raggiunto un punto fisso sulla profondità del backtracking o selezionando il valore minimo trovato se viene raggiunta la profondità del backtracking. A tal fine, memorizza una copia profonda del DAG minimo corrente nell'insieme di proprietà e quando viene raggiunto il numero backtrack_depth di esecuzioni dall'ultimo minimo, il DAG di uscita viene impostato su quella copia del minimo precedente.
I campi utilizzati da questo passaggio nell'insieme di proprietà sono (tutti relativi all'argomento prefix ):
-
{prefix}_minimum_point_state- Utilizzato per monitorare lo stato della ricerca del punto minimo -
{prefix}_minimum_point- Questo valore viene impostato suTruequando o un punto fissoviene raggiunto nel corso delle esecuzioni di
backtrack_depth, oppurebacktrack_depthè stato superato e viene ripristinato un minimo precedente.
Inizializza un'istanza di questo passo
Parametri
- property_set_list (list) – Un elenco di chiavi dell'insieme di proprietà che verranno utilizzate per valutare il minimo locale. I valori delle chiavi di questi set di proprietà saranno utilizzati come tupla per il confronto
- prefix (str) – Il prefisso da utilizzare per la chiave dell'insieme di proprietà, utilizzata per tracciare le valutazioni precedenti
- backtrack_depth (int) – Il numero massimo di voci da memorizzare. Se questo numero viene raggiunto e l'iterazione successiva non ha una diminuzione del numero di valori, il minimo degli n precedenti sarà impostato come dag di uscita e
minimum_pointsarà impostato suTruenell'insieme di proprietà
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
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