qrunch.quantum.algorithms.pauli.quantum_phase_estimation.basic_quantum_phase_estimation

Textbook Quantum Phase Estimation algorithm.

Classes

BasicQuantumPhaseEstimation

Textbook Quantum Phase Estimation (QPE) algorithm.

BasicQuantumPhaseEstimationOptions

Options for BasicQuantumPhaseEstimation.

class BasicQuantumPhaseEstimation

Bases: object

Textbook Quantum Phase Estimation (QPE) algorithm.

Estimates the lowest eigenvalue of a Hamiltonian \(H\) by preparing an approximate eigenstate with initial_circuit, encoding the time-evolution unitary \(U_k = e^{-iH \cdot 2^k}\) for each precision qubit \(k\), and extracting the accumulated phase via an Inverse Quantum Fourier Transform.

__init__(hamiltonian_encoder: HamiltonianEncoder, sampler: Sampler, shots: int | None = None, options: BasicQuantumPhaseEstimationOptions | None = None) None

Initialise the QPE algorithm.

Parameters:
  • hamiltonian_encoder (HamiltonianEncoder) – Encoder that maps the Hamiltonian to a time-evolution circuit and decodes measured phases back to eigenvalues.

  • sampler (Sampler) – Sampler used to measure the final QPE circuit.

  • shots (int | None) – Number of measurement shots to use.

  • options (BasicQuantumPhaseEstimationOptions | None) – Algorithm options, including the number of precision qubits.

Return type:

None

run(state_preparation_circuit: Circuit, hamiltonian: HermitianPauliSum) ExpectationValue

Build and execute the QPE circuit, returning the estimated ground-state eigenvalue.

The precision register occupies qubits \(0 \\ldots n-1\) and the state register occupies qubits \(n \\ldots n + m - 1\), where \(n\) is the number of precision qubits and \(m\) is the number of qubits in state_preparation_circuit.

Parameters:
  • state_preparation_circuit (Circuit) – Circuit that prepares the initial state on the state register. Typically an approximation of the target eigenstate.

  • hamiltonian (HermitianPauliSum) – The Hermitian Pauli Hamiltonian whose eigenvalue is estimated.

Return type:

ExpectationValue

class BasicQuantumPhaseEstimationOptions

Bases: DataclassPublicAPI

Options for BasicQuantumPhaseEstimation.

Parameters:

number_of_precision_qubits – Number of ancilla qubits used to store the phase estimate. A larger value gives a finer phase resolution of \(2^{-n}\). (default=10)

__init__(*, number_of_precision_qubits: int = 10) None
Parameters:

number_of_precision_qubits (int)

Return type:

None

number_of_precision_qubits: int = 10