qrunch.quantum.algorithms.pauli.quantum_phase_estimation.hamiltonian_encoders.trotterization_hamiltonian_encoder

Hamiltonian encoder based on a Trotterization strategy.

Classes

TrotterizationHamiltonianEncoder

Hamiltonian encoder using a Trotterization strategy to construct \(U = e^{-iHt}\).

class TrotterizationHamiltonianEncoder

Bases: HamiltonianEncoder

Hamiltonian encoder using a Trotterization strategy to construct \(U = e^{-iHt}\).

Uses a TrotterizationStrategy to construct the encoding unitary.

__init__(strategy: TrotterizationStrategy, trotter_steps: int = 1) None

Initialise the encoder.

Parameters:
  • strategy (TrotterizationStrategy) – Trotterization strategy used to approximate \(e^{-iHt}\).

  • trotter_steps (int) – Number of Trotter steps passed to the strategy.

Return type:

None

decode_eigenvalues(eigen_values: Sequence[float]) Sequence[float]

Decode QPE-measured phases into eigenvalues of the original Hamiltonian.

Each phase \(\varphi \in [0, 1)\) is first remapped: values greater than \(\tfrac{1}{2}\) are shifted by \(-1\) to \((-\tfrac{1}{2}, \tfrac{1}{2}]\), after which the eigenvalue is recovered as \(\lambda = -2\pi \varphi\).

Parameters:

eigen_values (Sequence[float]) – Phases \(\varphi \in [0, 1)\) obtained from the encoded circuit via quantum phase estimation.

Return type:

Sequence[float]

encode_hamiltonian(coefficient: float, hamiltonian: HermitianPauliSum) Circuit

Encode the Hamiltonian as a Trotter-approximated time-evolution circuit.

Parameters:
  • coefficient (float) – The coefficient to scale the Hamiltonian.

  • hamiltonian (HermitianPauliSum) – The Hermitian Pauli Hamiltonian to encode.

Return type:

Circuit