Skip to main content
IBM Quantum Platform

TemplateOptimization

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

GitHub

Basi: TransformationPass

Classe per il passaggio di ottimizzazione del template.

Parametri

  • template_list (list[QuantumCircuit()]) – elenco dei diversi schemi di circuiti da applicare.
  • heuristics_backward_param (list[int]) – [lunghezza, sopravvissuto] Questi sono i parametri per l'applicazione dell'euristica nella parte a ritroso dell'algoritmo. Questa parte dell'algoritmo crea un albero di scenari corrispondenti. Questo albero cresce in modo esponenziale. L'euristica valuta quali scenari hanno la corrispondenza più lunga e mantiene solo quelli. La lunghezza è l'intervallo nell'albero per il taglio e il sopravvissuto è il numero di scenari che vengono mantenuti. Consigliamo di utilizzare l=3 e s=1 per avere un serio vantaggio in termini di tempo. Ricordiamo che l'euristica implica la perdita di una parte delle corrispondenze massime. Per maggiori dettagli, consultare le referenze.
  • heuristics_qubits_param (list[int]) – [lunghezza] L'euristica per la scelta del qubit fa delle ipotesi sulla dipendenza dal dag del circuito per limitare il numero di configurazioni di qubit da esplorare. La lunghezza è il numero di successori o non predecessori che verranno esplorati nella dipendenza dag del circuito, ogni qubit dei nodi viene aggiunto all'insieme dei qubit autorizzati. Si consiglia di utilizzare length=1. Per maggiori dettagli, consultare le referenze.
  • user_cost_dict (Dict[str, int]) – dizionario dei costi quantistici passato a TemplateSubstitution per configurare il suo comportamento. Se non viene indicato None, i valori predefiniti vengono sovrascritti. La chiave è il nome del gate e il valore il suo costo quantico.

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

Parametri

dag (DAGCircuit) – Circuito DAG.

Risultati

circuito DAG ottimizzato.

Tipo di restituzione

DAGCircuito

Aumenti

TranspilerError – Se il modello non ha la forma corretta o se il circuito di uscita si comporta in modo diverso dal circuito di ingresso.

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.