Skip to main contentIBM Quantum Documentation
You are viewing the API reference for an old version of Qiskit SDK. Switch to latest version

IQPE

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)

GitHub(opens in a new tab)

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(opens in a new tab)

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

aux_operators

Optional[List[Union[qiskit.aqua.operators.operator_base.OperatorBase, qiskit.aqua.operators.legacy.base_operator.LegacyBaseOperator]]]

Returns aux operators

Return type

Optional[List[Union[OperatorBase, LegacyBaseOperator]]]

backend

qiskit.providers.basebackend.BaseBackend

Returns backend.

Return type

BaseBackend

operator

Optional[Union[qiskit.aqua.operators.operator_base.OperatorBase, qiskit.aqua.operators.legacy.base_operator.LegacyBaseOperator]]

Returns operator

Return type

Union[OperatorBase, LegacyBaseOperator, None]

quantum_instance

Union[None, qiskit.aqua.quantum_instance.QuantumInstance]

Returns quantum instance.

Return type

Optional[QuantumInstance]

random

Return a numpy random.


Methods

compute_minimum_eigenvalue

IQPE.compute_minimum_eigenvalue(operator=None, aux_operators=None)

Computes minimum eigenvalue. Operator and aux_operators can be supplied here and if not None will override any already set into algorithm so it can be reused with different operators. While an operator is required by algorithms, aux_operators are optional. To ‘remove’ a previous aux_operators array use an empty list here.

Parameters

Return type

MinimumEigensolverResult

Returns

MinimumEigensolverResult

construct_circuit

IQPE.construct_circuit(k=None, omega=0, measurement=False)

Construct the kth iteration Quantum Phase Estimation circuit.

For details of parameters, please see Fig. 2 in https://arxiv.org/pdf/quant-ph/0610214.pdf(opens in a new tab).

Parameters

  • k (Optional[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

run

IQPE.run(quantum_instance=None, **kwargs)

Execute the algorithm with selected backend.

Parameters

Returns

results of an algorithm.

Return type

dict

Raises

AquaError – If a quantum instance or backend has not been provided

set_backend

IQPE.set_backend(backend, **kwargs)

Sets backend with configuration.

Return type

None

supports_aux_operators

IQPE.supports_aux_operators()

Whether computing the expectation value of auxiliary operators is supported.

If the minimum eigensolver computes an eigenstate of the main operator then it can compute the expectation value of the aux_operators for that state. Otherwise they will be ignored.

Return type

bool

Returns

True if aux_operator expectations can be evaluated, False otherwise

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