ApplyLayout
class qiskit.transpiler.passes.ApplyLayout(*args, **kwargs)
Basi: TransformationPass
Applicare o aggiornare la mappatura dei qubit virtuali ai qubit fisici nel file DAGCircuit.
Un "layout" in Qiskit è una mappatura dei qubit virtuali (di cui l'utente crea tipicamente i circuiti) con i qubit fisici utilizzati per rappresentarli nell'hardware.
Questo passaggio ha due modalità di funzionamento, che dipendono dallo stato dei tasti layout e post_layout nella finestra di dialogo PropertySet:
-
Funzionamento standard:
post_layoutnon è impostato. Questo prende in considerazione unDAGCircuitdefinito su qubit virtuali e lo riscrive in termini di qubit fisici. In questo caso, il campolayoutdeve essere stato scelto da un passaggio di layout (per esempioSetLayoutoVF2Layout) e sia esso che il campoDAGCircuitdevono essere stati espansi con ancillas (cfrEnlargeWithAncillaeFullAncillaAllocation). -
Migliorare un layout:
post_layoutè impostato (ad esempio daVF2PostLayout). In questo caso, il sitopost_layoutdeve essere già della dimensione corretta. Viene interpretata come una rietichettatura ´aggiuntiva´ che si aggiunge a quella già applicata all'inputDAGCircuit.Dopo l'esecuzione del passaggio, il campo
layoutverrà aggiornato per rappresentare la composizione delle due riformulazioni, così come il campoDAGCircuite qualsiasi permutazione finale. Il campopost_layoutverrà rimosso.
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 il passaggio ApplyLayout su dag.
Parametri
dag (DAGCircuit) – Da DAG a mappa.
Risultati
Un DAG mappato (con qubit fisici).
Tipo di restituzione
Aumenti
TranspilerError – se non viene individuato alcun layout in property_set o se non sono presenti qubit fisici completi.
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