Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK Go to the latest version
Important

IBM Quantum Platform is moving and this version will be sunset on July 1. To get started on the new platform, read the migration guide.

LieTrotter

class qiskit.synthesis.LieTrotter(reps=1, insert_barriers=False, cx_structure='chain', atomic_evolution=None)

GitHub

Bases: ProductFormula

The Lie-Trotter product formula.

The Lie-Trotter formula approximates the exponential of two non-commuting operators with products of their exponentials up to a second order error:

eA+BeAeB.e^{A + B} \approx e^{A}e^{B}.

In this implementation, the operators are provided as sum terms of a Pauli operator. For example, we approximate

eit(XX+ZZ)=eitXXeitZZ+O(t2).e^{-it(XX + ZZ)} = e^{-it XX}e^{-it ZZ} + \mathcal{O}(t^2).

References

[1]: D. Berry, G. Ahokas, R. Cleve and B. Sanders, “Efficient quantum algorithms for simulating sparse Hamiltonians” (2006). arXiv:quant-ph/0508139 [2]: N. Hatano and M. Suzuki, “Finding Exponential Product Formulas of Higher Orders” (2005). arXiv:math-ph/0506007

Parameters

  • reps (int) – The number of time steps.
  • insert_barriers (bool) – Whether to insert barriers between the atomic evolutions.
  • cx_structure (str) – How to arrange the CX gates for the Pauli evolutions, can be “chain”, where next neighbor connections are used, or “fountain”, where all qubits are connected to one.
  • atomic_evolution (Callable[[Pauli |SparsePauliOp, float], QuantumCircuit] | None) – A function to construct the circuit for the evolution of single Pauli string. Per default, a single Pauli evolution is decomposed in a CX chain and a single qubit Z rotation.

Attributes

settings

Return the settings in a dictionary, which can be used to reconstruct the object.

Returns

A dictionary containing the settings of this product formula.

Raises

NotImplementedError – If a custom atomic evolution is set, which cannot be serialized.


Methods

synthesize

synthesize(evolution)

Synthesize an qiskit.circuit.library.PauliEvolutionGate.

Parameters

evolution (PauliEvolutionGate) – The evolution gate to synthesize.

Returns

A circuit implementing the evolution.

Return type

QuantumCircuit

Was this page helpful?
Report a bug or request content on GitHub.