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.

EstimationProblem

class EstimationProblem(state_preparation, objective_qubits, grover_operator=None, post_processing=None, is_good_state=None)

GitHub

Bases: object

The estimation problem is the input to amplitude estimation algorithm.

This class contains all problem-specific information required to run an amplitude estimation algorithm. That means, it minimally contains the state preparation and the specification of the good state. It can further hold some post processing on the estimation of the amplitude or a custom Grover operator.

Parameters

  • state_preparation (QuantumCircuit) – A circuit preparing the input state, referred to as A\mathcal{A}.
  • objective_qubits (Union[int, List[int]]) – A single qubit index or a list of qubit indices to specify which qubits to measure. The is_good_state function is applied on the bitstring of these objective qubits.
  • grover_operator (Optional[QuantumCircuit]) – The Grover operator Q\mathcal{Q} used as unitary in the phase estimation circuit.
  • post_processing (Optional[Callable[[float], float]]) – A mapping applied to the result of the algorithm 0a10 \leq a \leq 1, usually used to map the estimate to a target interval. Defaults to the identity.
  • is_good_state (Optional[Callable[[str], bool]]) – A function to check whether a string represents a good state. Defaults to all objective qubits being in state 1|1\rangle.

Methods

rescale

EstimationProblem.rescale(scaling_factor)

Rescale the good state amplitude in the estimation problem.

Parameters

scaling_factor (float) – The scaling factor in [0, 1].

Return type

EstimationProblem

Returns

A rescaled estimation problem.


Attributes

grover_operator

Get the Q\mathcal{Q} operator, or Grover operator.

If the Grover operator is not set, we try to build it from the A\mathcal{A} operator and objective_qubits. This only works if objective_qubits is a list of integers.

Return type

Optional[QuantumCircuit]

Returns

The Grover operator, or None if neither the Grover operator nor the A\mathcal{A} operator is set.

is_good_state

Checks whether a bitstring represents a good state.

Return type

Callable[[str], bool]

Returns

Handle to the is_good_state callable.

objective_qubits

Get the criterion for a measurement outcome to be in a ‘good’ state.

Return type

List[int]

Returns

The criterion as list of qubit indices.

post_processing

Apply post processing to the input value.

Return type

Callable[[float], float]

Returns

A handle to the post processing function. Acts as identity by default.

state_preparation

Get the A\mathcal{A} operator encoding the amplitude aa.

Return type

Optional[QuantumCircuit]

Returns

The A\mathcal{A} operator as QuantumCircuit.

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