Skip to main content
IBM Quantum Platform

SabrePreLayout

class qiskit.transpiler.passes.SabrePreLayout(*args, **kwargs)

GitHub

Basi: AnalysisPass

Scegliere un layout di partenza da utilizzare per ulteriori prove di layout Sabre.

Il passaggio funziona aggiungendo alla mappa di accoppiamento un numero sempre maggiore di spigoli «extra» finché l' VF2 e non riesce a trovare un isomorfismo perfetto del grafo. Più precisamente, la mappa di accoppiamento estesa contiene spigoli tra nodi che si trovano entro una data distanza d nella mappa di accoppiamento originale. I bordi originali sono privi di rumore, mentre quelli aggiuntivi presentano un rumore che cresce in modo esponenziale con la distanza. Il valore di d viene aumentato fino a quando non si trova un isomorfismo.

Intuitivamente, una migliore disposizione dell' VF2 e comporta un numero minore di spigoli supplementari e una distanza minore tra essi.


Valori impostati per la proprietà scritti

sabre_starting_layouts (list[Layout])

Un elenco opzionale di Layout da usare per ulteriori prove di layout Sabre.

Riferimenti:

[1] Henry Zou e Matthew Treinish e Kevin Hartman e Alexander Ivrii e Jake Lishman. “LightSABRE: Un algoritmo SABRE leggero e migliorato" arXiv:2409.08368

parametri mappa di accoppiamento

Grafo orientato che rappresenta la mappa di accoppiamento originale o un modello di riferimento del backend (compresa la sua connettività).

parametro distanza_massima

La distanza massima per l'esecuzione di un' VF2 e con la mappa di accoppiamento potenziata. In particolare, ciò specifica anche la distanza massima tra i nodi originali che vengono collegati nella mappa di accoppiamento estesa.

param Errore_rate

Il tasso di errore da attribuire ai bordi “in più”. Un tasso di errore diverso da zero fa sì che l'algoritmo " VF2 " dia la priorità ai bordi originali rispetto a quelli aggiuntivi.

param max_trials_vf2

Specifica il numero massimo di tentativi di " VF2 ". Questa opzione è stata mantenuta principalmente per motivi di compatibilità con le versioni precedenti, a seguito dell'introduzione del calcolo dei punteggi in tempo reale in VF2, introdotto in Qiskit 2.3. Per limitare la durata del passaggio, imposta invece i parametri max_distance``call_limit_vf2 e.

param call_limit_vf2

Il numero massimo di tentativi che la ricerca dell'isomorfismo interno VF2 effettuerà per estendere la mappatura. Se None, allora non c'è limite. Se si tratta di una coppia, il limite parte dal primo elemento e passa al secondo una volta trovata la prima corrispondenza, senza azzerare il numero di passaggi effettuati. Questo approccio consente di effettuare una ricerca approfondita di qualsiasi corrispondenza, ma di terminarla rapidamente con un budget di estensioni limitato nel caso in cui ne venga individuata una.

parametro migliorare_layout

Non utilizzata (l'opzione è diventata obsoleta con l'introduzione del calcolo automatico dei punteggi in tempo reale in VF2 ).

parametro min_distance

La distanza per la prima iterazione dell' VF2 e con la mappa di accoppiamento potenziata. Questa impostazione min_distance > 1 salta tutti i controlli a distanza ridotta e, in particolare, salta il controllo « distance-1 », che corrisponde all'esecuzione del VF2Layout «pass».

aumenti TranspilerError

Durante l'esecuzione, se l'argomento non coupling_map viene fornito.


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)

GitHub

Eseguire l'attività di ottimizzazione per l'IR Qiskit in ingresso.

Parametri

  • passmanager_ir (IR) – Qiskit IR da ottimizzare.
  • state (PassManagerState) – Stato associato all'esecuzione del flusso di lavoro da parte del gestore del passaggio stesso.
  • callback (Callable[[Task, IR_OUT, 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

tupla [ IR_OUT, PassManagerState ]

name

name()

GitHub

Nome del passo.

Tipo di restituzione

STR

run

run(dag)

GitHub

Eseguire il passaggio SabrePreLayout su dag.

Il layout iniziale scoperto viene scritto nel valore del set di proprietà sabre_starting_layouts.

Parametri

dag (DAGCircuit) – DAG per cui creare il layout iniziale.

update_status

update_status(state, run_state)

GitHub

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

PassManagerState

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