Skip to main content
IBM Quantum Platform

qiskit.circuit.library.evolved_operator_ansatz

qiskit.circuit.library.evolved_operator_ansatz(operators, reps=1, evolution=None, insert_barriers=False, name='EvolvedOps', parameter_prefix='t', remove_identities=True, flatten=None)

GitHub

Costruire un'ansatz a partire dalle evoluzioni degli operatori.

Per un insieme di operatori [O1,...,OJ][O_1, ..., O_J] e di ripetizioni RR (reps), questo circuito è definito come

r=1R(j=J1eiθj,rOj)\prod_{r=1}^{R} \left( \prod_{j=J}^1 e^{-i\theta_{j, r} O_j} \right)

dove gli esponenziali exp(iθOj)exp(-i\theta O_j) sono espansi utilizzando la formula del prodotto specificata da evolution.

Esempi:

from qiskit.circuit.library import evolved_operator_ansatz
from qiskit.quantum_info import Pauli

ops = [Pauli("ZZI"), Pauli("IZZ"), Pauli("IXI")]
ansatz = evolved_operator_ansatz(ops, reps=3, insert_barriers=True)
ansatz.draw("mpl")
Schema del circuito prodotto dal codice precedente.

Parametri

  • operators (BaseOperator | Sequence[BaseOperator]) – Gli operatori si evolvono. Può essere un singolo operatore o una sua sequenza.
  • reps (int) – Il numero di volte in cui ripetere gli operatori evoluti.
  • evolution (EvolutionSynthesis | None) – Una specificazione di quale sintesi evolutiva utilizzare per l'oggetto PauliEvolutionGate. Predefinito al primo ordine di trotterizzazione. Si noti che gli operatori di tipo Operator vengono evoluti utilizzando la formula HamiltonianGatepoiché non ci sono termini hamiltoniani da espandere nella Trotterizzazione.
  • insert_barriers (bool) – Se inserire o meno delle barriere tra ogni evoluzione.
  • name (str) – Il nome del circuito.
  • parameter_prefix (str | Sequence[str]) – Impostare i nomi dei parametri del circuito. Se si tratta di una stringa, verrà utilizzato lo stesso prefisso per ogni parametro. Può anche trattarsi di un elenco che specifica un prefisso per ciascun operatore.
  • remove_identities (bool) – Se True, ignorare gli operatori di identità (si noti che non si controllano gli Operator gli ingressi). Questo rimuoverà anche i parametri associati alle identità.
  • flatten (bool | None) – Se True, viene restituito un circuito piatto invece di annidarlo all'interno di più strati di oggetti gate. L'impostazione di False è significativamente meno performante, soprattutto per il binding dei parametri, ma può essere auspicabile per una visualizzazione più pulita.

Tipo di restituzione

QuantumCircuit

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