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

Konstruieren Sie einen Ansatz aus Operatorentwicklungen.

Für einen Satz von Operatoren [O1,...,OJ][O_1, ..., O_J] und RR Wiederholungen (reps) ist diese Schaltung definiert als

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

wobei die Exponentiale exp(−iθOj)exp(-i\theta O_j) mit der Produktformel von evolution erweitert werden.

Beispiele:

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")
Schaltplan, der durch den vorherigen Code ausgegeben wurde.

Parameter

  • operators (BaseOperator | Sequence[BaseOperator]) – Die Betreiber müssen sich weiterentwickeln. Kann ein einzelner Operator oder eine Folge davon sein.
  • reps (int) – Die Anzahl der Wiederholungen der entwickelten Operatoren.
  • evolution (EvolutionSynthesis | None) – Eine Spezifikation der zu verwendenden Evolutionssynthese für die PauliEvolutionGate. Die Standardeinstellung ist Trotterisierung erster Ordnung. Beachten Sie, dass Operatoren des Typs Operator unter Verwendung der HamiltonianGateentwickelt werden, da es bei der Trotterisierung keine Hamilton-Terme zu expandieren gibt.
  • insert_barriers (bool) – Ob zwischen den einzelnen Evolutionsstufen Barrieren eingefügt werden sollen.
  • name (str) – Der Name des Stromkreises.
  • parameter_prefix (str | Sequence[str]) – Legen Sie die Namen der Schaltungsparameter fest. Wenn es sich um eine Zeichenkette handelt, wird für jeden Parameter dasselbe Präfix verwendet. Es kann sich auch um eine Liste handeln, in der für jeden Operator ein Präfix angegeben wird.
  • remove_identities (bool) – Wenn True, ignorieren Sie die Identitätsoperatoren (beachten Sie, dass wir die Operator eingaben). Dadurch werden auch die mit den Identitäten verbundenen Parameter entfernt.
  • flatten (bool | None) – Bei True wird ein flacher Schaltkreis zurückgegeben, anstatt ihn in mehreren Schichten von Gatterobjekten zu verschachteln. Die Einstellung False ist deutlich weniger performant, insbesondere für die Parameterbindung, kann aber für eine sauberere Darstellung wünschenswert sein.

Rückgabetyp

QuantumCircuit

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.