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

Construir un ansatz a partir de evoluciones de operadores.

Para un conjunto de operadores [O1,...,OJ][O_1, ..., O_J] y repeticiones RR (reps), este circuito se define como

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

donde los exponenciales exp(iθOj)exp(-i\theta O_j) se expanden utilizando la fórmula del producto especificada en evolution.

Ejemplos:

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")
Diagrama del circuito generado por el código anterior.

Parámetros

  • operators (BaseOperator | Sequence[BaseOperator]) – Los operadores a evolucionar. Puede ser un único operador o una secuencia de ellos.
  • reps (int) – El número de veces que se repetirán los operadores evolucionados.
  • evolution (EvolutionSynthesis | None) – Una especificación de qué síntesis de evolución utilizar para el PauliEvolutionGate. Por defecto, Trotterización de primer orden. Obsérvese que los operadores de tipo Operator se evolucionan utilizando el HamiltonianGateya que no hay términos hamiltonianos que expandir en la trotterización.
  • insert_barriers (bool) – Si se insertan barreras entre cada evolución.
  • name (str) – El nombre del circuito.
  • parameter_prefix (str | Sequence[str]) – Establece los nombres de los parámetros del circuito. Si se trata de una cadena, se utilizará el mismo prefijo para cada parámetro. También puede ser una lista para especificar un prefijo por operador.
  • remove_identities (bool) – Si True, ignore los operadores de identidad (tenga en cuenta que no comprobamos Operator las entradas). Esto también eliminará los parámetros asociados a las identidades.
  • flatten (bool | None) – Si True, se devuelve un circuito plano en lugar de anidarlo dentro de múltiples capas de objetos puerta. Configurarlo en False es significativamente menos eficaz, especialmente para la vinculación de parámetros, pero puede ser deseable para una visualización más limpia.

Tipo de retorno

QuantumCircuit

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.