IQPE

class IQPE(operator=None, state_in=None, num_time_slices=1, num_iterations=1, expansion_mode='suzuki', expansion_order=2, shallow_circuit_concat=False, quantum_instance=None)[source]

The Iterative Quantum Phase Estimation algorithm.

IQPE, as its name suggests, iteratively computes the phase so as to require fewer qubits. It takes has the same set of parameters as QPE, except for the number of ancillary qubits num_ancillae, being replaced by num_iterations and that an Inverse Quantum Fourier Transform (IQFT) is not used for IQPE.

Reference:

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

qubit benchmark, arxiv/quant-ph/0610214

Parameters
  • operator (Union[OperatorBase, LegacyBaseOperator, None]) – The hamiltonian Operator

  • state_in (Optional[InitialState]) – An InitialState component representing an initial quantum state.

  • num_time_slices (int) – The number of time slices, has a minimum value of 1.

  • num_iterations (int) – The number of iterations, has a minimum value of 1.

  • expansion_mode (str) – The expansion mode (‘trotter’|’suzuki’)

  • expansion_order (int) – The suzuki expansion order, has a min. value of 1.

  • shallow_circuit_concat (bool) – Set True to use shallow (cheap) mode for circuit concatenation of evolution slices. By default this is False.

  • quantum_instance (Union[QuantumInstance, BaseBackend, None]) – Quantum Instance or Backend

Attributes

IQPE.aux_operators

Returns aux operators

IQPE.backend

Returns backend.

IQPE.operator

Returns operator

IQPE.quantum_instance

Returns quantum instance.

IQPE.random

Return a numpy random.

Methods

IQPE.compute_minimum_eigenvalue([operator, …])

Computes minimum eigenvalue.

IQPE.construct_circuit([k, omega, measurement])

Construct the kth iteration Quantum Phase Estimation circuit.

IQPE.run([quantum_instance])

Execute the algorithm with selected backend.

IQPE.set_backend(backend, **kwargs)

Sets backend with configuration.

IQPE.supports_aux_operators()

Whether computing the expectation value of auxiliary operators is supported.