Skip to main content
IBM Quantum Platform

ProductFormula

class qiskit.synthesis.ProductFormula(order, reps=1, insert_barriers=False, cx_structure='chain', atomic_evolution=None, wrap=False, preserve_order=True, *, atomic_evolution_sparse_observable=False)

GitHub

Bases: EvolutionSynthesis

Clase base de fórmulas de producto para la descomposición de exponenciales de operadores no conmutativos.

LieTrotter y SuzukiTrotter heredan de esta clase.

Parámetros

  • order (int) – El orden de la fórmula del producto.
  • reps (int) – El número de pasos temporales.
  • insert_barriers (bool) – Si se insertan barreras entre las evoluciones atómicas.
  • cx_structure (str) – La forma de disponer las compuertas CX para las evoluciones Pauli, puede ser "chain", donde se utilizan conexiones de vecino próximo, o "fountain", donde todos los qubits están conectados a uno. Esto sólo tiene efecto cuando atomic_evolution is None.
  • atomic_evolution (Callable[[QuantumCircuit, qiskit.quantum_info.Pauli |SparsePauliOp, float], None] | None) – Una función para aplicar la evolución de un Paulio SparsePauliOp de sólo términos conmutativos, a un circuito. La función recibe tres argumentos: el circuito al que añadir la evolución, el operador Pauli a evolucionar y el tiempo de evolución. Por defecto, una sola evolución Pauli se descompone en una cadena de puertas CX y una sola puerta RZ .
  • wrap (bool) – Si envolver las evoluciones atómicas en objetos de puerta personalizados. Tenga en cuenta que True es más lento que False. Esto sólo tiene efecto cuando atomic_evolution is None.
  • preserve_order (bool) – Si False, permite reordenar los términos del operador para obtener potencialmente un circuito de evolución menos profundo. No es relevante cuando se sintetiza el operador con un solo término.
  • atomic_evolution_sparse_observable (bool) – Si se pasa un atomic_evolution personalizado que aún no admite SparseObservables como entrada, establezca este argumento en False para aplicar automáticamente una conversión a SparsePauliOp. Este argumento se admite hasta Qiskit 2.2, momento en el que todas las evoluciones atómicas deberán admitir SparseObservables como entrada.

Atributos

settings

Devuelve la configuración en un diccionario, que puede utilizarse para reconstruir el objeto.

Devuelve

Un diccionario que contiene los ajustes de esta fórmula de producto.

Eleva

NotImplementedError - Si se establece una evolución atómica personalizada, que no se puede serializar.


Métodos

expand

expand(evolution)

GitHub

Aplica la fórmula del producto para expandir el Hamiltoniano en la puerta de evolución.

Parámetros

evolution (PauliEvolutionGate) – El PauliEvolutionGatecuyo Hamiltoniano expandimos.

Devuelve

Una lista de rotaciones Pauli en formato disperso, donde cada elemento es (paulistring, qubits, coefficient). Por ejemplo, la expansión Lie-Trotter de H = XI + ZZ devolvería [("X", [1], 1), ("ZZ", [0, 1], 1)].

Tipo de retorno

list[ tupla[ cadena, tupla[ int ], ParameterValueType ]]

synthesize

synthesize(evolution)

GitHub

Sintetizar a PauliEvolutionGate.

Parámetros

evolution (PauliEvolutionGate) – La puerta de la evolución para sintetizar.

Devuelve

Un circuito que aplica la evolución.

Tipo de retorno

QuantumCircuit

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