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

Construire un ansatz à partir des évolutions des opérateurs.

Pour un ensemble d'opérateurs [O1,...,OJ][O_1, ..., O_J] et de répétitions RR (reps), ce circuit est défini comme suit

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

où les exponentielles exp(iθOj)exp(-i\theta O_j) sont développées à l'aide de la formule du produit spécifiée par evolution.

Exemples :

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")
Schéma de circuit produit par le code précédent.

Paramètres

  • operators (BaseOperator | Sequence[BaseOperator]) – Les opérateurs pour évoluer. Il peut s'agir d'un seul opérateur ou d'une séquence d'opérateurs.
  • reps (int) – Le nombre de fois qu'il faut répéter les opérateurs évolués.
  • evolution (EvolutionSynthesis | None) – Une spécification de la synthèse d'évolution à utiliser pour le fichier PauliEvolutionGate. Par défaut, il s'agit d'une trotterisation de premier ordre. Notez que les opérateurs de type Operator sont développés à l'aide de la méthode HamiltonianGatecar il n'y a pas de termes hamiltoniens à développer dans la trotterisation.
  • insert_barriers (bool) – L'insertion ou non de barrières entre chaque évolution.
  • name (str) – Le nom du circuit.
  • parameter_prefix (str | Sequence[str]) – Définissez les noms des paramètres du circuit. S'il s'agit d'une chaîne de caractères, le même préfixe sera utilisé pour chaque paramètre. Il peut également s'agir d'une liste permettant de spécifier un préfixe pour chaque opérateur.
  • remove_identities (bool) – Si True, ignorez les opérateurs d'identité (notez que nous ne vérifions pas les entrées) Operator les entrées). Cette opération permet également de supprimer les paramètres associés aux identités.
  • flatten (bool | None) – Si True, un circuit plat est renvoyé au lieu d'être imbriqué dans plusieurs couches d'objets de porte. La valeur False est nettement moins performante, en particulier pour la liaison des paramètres, mais peut être souhaitable pour une visualisation plus propre.

Type de retour

QuantumCircuit

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.