About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
AmplificationProblem
class qiskit.algorithms.AmplificationProblem(oracle, state_preparation=None, grover_operator=None, post_processing=None, objective_qubits=None, is_good_state=None)
Bases: object
The amplification problem is the input to amplitude amplification algorithms, like Grover.
This class contains all problem-specific information required to run an amplitude amplification algorithm. It minimally contains the Grover operator. It can further hold some post processing on the optimal bitstring.
Parameters
- oracle (QuantumCircuit |Statevector) – The oracle reflecting about the bad states.
- state_preparation (QuantumCircuit | None) – A circuit preparing the input state, referred to as . If None, a layer of Hadamard gates is used.
- grover_operator (QuantumCircuit | None) – The Grover operator used as unitary in the phase estimation circuit. If None, this operator is constructed from the
oracle
andstate_preparation
. - post_processing (Callable[[str], Any] | None) – A mapping applied to the most likely bitstring.
- objective_qubits (int |list[int] | None) – If set, specifies the indices of the qubits that should be measured. If None, all qubits will be measured. The
is_good_state
function will be applied on the measurement outcome of these qubits. - is_good_state (Callable[[str], bool] | list[int] | list[str] | Statevector | None) – A function to check whether a string represents a good state. By default if the
oracle
argument has anevaluate_bitstring
method (currently only provided by thePhaseOracle
class) this will be used, otherwise this kwarg is required and must be specified.
Attributes
grover_operator
Get the operator, or Grover operator.
If the Grover operator is not set, we try to build it from the operator and objective_qubits. This only works if objective_qubits is a list of integers.
Returns
The Grover operator, or None if neither the Grover operator nor the operator is set.
is_good_state
Check whether a provided bitstring is a good state or not.
Returns
A callable that takes in a bitstring and returns True if the measurement is a good state, False otherwise.
objective_qubits
The indices of the objective qubits.
Returns
The indices of the objective qubits as list of integers.
oracle
Return the oracle.
Returns
The oracle.
post_processing
Apply post processing to the input value.
Returns
A handle to the post processing function. Acts as identity by default.
state_preparation
Get the state preparation operator .
Returns
The operator as QuantumCircuit.
Was this page helpful?
Report a bug or request content on GitHub.