Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

IterativePhaseEstimation

class qiskit.algorithms.IterativePhaseEstimation(num_iterations, quantum_instance=None, sampler=None)

GitHub

Bases: PhaseEstimator

Run the Iterative quantum phase estimation (QPE) algorithm.

Given a unitary circuit and a circuit preparing an eigenstate, return the phase of the eigenvalue as a number in [0,1)[0,1) using the iterative phase estimation algorithm.

[1]: Dobsicek et al. (2006), Arbitrary accuracy iterative phase estimation algorithm as a two

qubit benchmark, arxiv/quant-ph/0610214

Deprecated since version 0.24.0

qiskit.algorithms.phase_estimators.ipe.IterativePhaseEstimation.__init__()’s argument quantum_instance is deprecated as of qiskit-terra 0.24.0. It will be removed no earlier than 3 months after the release date. Instead, use the sampler argument. See https://qisk.it/algo_migration for a migration guide.

Parameters

  • num_iterations (int) – The number of iterations (rounds) of the phase estimation to run.
  • quantum_instance (QuantumInstance |Backend | None) – Deprecated: The quantum instance on which the circuit will be run.
  • sampler (BaseSampler | None) – The sampler primitive on which the circuit will be sampled.

Raises

  • ValueError – if num_iterations is not greater than zero.
  • AlgorithmError – If neither sampler nor quantum instance is provided.

Methods

construct_circuit

construct_circuit(unitary, state_preparation, k, omega=0.0, measurement=False)

Construct the kth iteration Quantum Phase Estimation circuit.

For details of parameters, see Fig. 2 in https://arxiv.org/pdf/quant-ph/0610214.pdf.

Parameters

  • unitary (QuantumCircuit) – The circuit representing the unitary operator whose eigenvalue (via phase) will be measured.
  • state_preparation (QuantumCircuit) – The circuit that prepares the state whose eigenphase will be measured. If this parameter is omitted, no preparation circuit will be run and input state will be the all-zero state in the computational basis.
  • k (int) – the iteration idx.
  • omega (float) – the feedback angle.
  • measurement (bool) – Boolean flag to indicate if measurement should be included in the circuit.

Returns

the quantum circuit per iteration

Return type

QuantumCircuit

estimate

estimate(unitary, state_preparation)

Estimate the eigenphase of the input unitary and initial-state pair.

Parameters

  • unitary (QuantumCircuit) – The circuit representing the unitary operator whose eigenvalue (via phase) will be measured.
  • state_preparation (QuantumCircuit) – The circuit that prepares the state whose eigenphase will be measured. If this parameter is omitted, no preparation circuit will be run and input state will be the all-zero state in the computational basis.

Returns

Estimated phase in an IterativePhaseEstimationResult object.

Raises

AlgorithmError – If neither sampler nor quantum instance is provided.

Return type

IterativePhaseEstimationResult

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