Skip to main content
IBM Quantum Platform

RemoveIdentityEquivalent

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

GitHub

Basi: TransformationPass

Rimuovere i cancelli con effetti trascurabili.

Rimuove le porte il cui effetto è vicino a un'operazione di identità fino a una fase globale e fino alla tolleranza specificata. Le porte parametrizzate non sono considerate da questo passaggio.

Per una fedeltà di cutoff ff, questo passaggio rimuove i gate la cui fedeltà media rispetto all'identità è inferiore a ff. Concretamente, un gate GG viene rimosso se Fˉ<f\bar F < f dove

Fˉ=1+dFprocess1+d, Fprocess=Tr(G)2d2\bar{F} = \frac{1 + d F_{\text{process}}}{1 + d},\ F_{\text{process}} = \frac{|\mathrm{Tr}(G)|^2}{d^2}

dove d=2nd = 2^n è la dimensione del gate per nn qubit.

Questa funzione è multithread e, per impostazione predefinita, avvia un pool di thread con un numero di thread pari a quello delle CPU. È possibile regolare il numero di thread tramite la variabile RAYON_NUM_THREADS d'ambiente. Ad esempio, impostando RAYON_NUM_THREADS=4 si limiterebbe il pool di thread a 4 thread.

Inizializza il passaggio del transpiler.

Parametri

  • grado_di_approssimazione - Il grado da approssimare per la verifica dell'equivalenza. Può essere un valore in virgola mobile compreso tra 0 e 1, oppure None. Se il valore è 1, l'approssimazione non è superiore alla precisione in virgola mobile. Per un valore < 1 questo viene utilizzato come fattore di scala per la fedeltà di taglio. Se il valore è None si approssima alla fedeltà del gate specificata in target. Nel caso in cui non sia impostato target , approssimiamo fino a 16 * machine_eps come valore predefinito per tenere conto degli accumuli su sistemi a pochi qubit.
  • target - Se approximation_degree è impostato su None e viene fornito un valore di tolleranza per questo campo Target è fornito per questo campo, la tolleranza per determinare se un'operazione è equivalente all'identità sarà impostata sul tasso di errore riportato nel target. Se approximation_degree (il valore predefinito) non ha alcun effetto, se approximation_degree=None utilizza il tasso di errore specificato in Target per il gate da valutare e un valore numerico diverso da 1 con target impostato viene utilizzato come fattore di scala del tasso di errore del target.

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 (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

tuple [ DAGCircuit, PassManagerState ]

name

name()

GitHub

Nome del passo.

Tipo di restituzione

STR

run

run(dag)

GitHub

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.

Tipo di restituzione

DAGCircuito

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.