GroverOptimizer
GroverOptimizer(num_value_qubits, num_iterations=3, quantum_instance=None)
GitHub(opens in a new tab)
Uses Grover Adaptive Search (GAS) to find the minimum of a QUBO function.
Parameters
- num_value_qubits (
int
) – The number of value qubits. - num_iterations (
int
) – The number of iterations the algorithm will search with no improvement. - quantum_instance (
Union
[QuantumInstance
,BaseBackend
,None
]) – Instance of selected backend, defaults to Aer’s statevector simulator.
Attributes
quantum_instance
qiskit.aqua.quantum_instance.QuantumInstance
The quantum instance to run the circuits.
Return type
Returns
The quantum instance used in the algorithm.
Methods
get_compatibility_msg
GroverOptimizer.get_compatibility_msg(problem)
Checks whether a given problem can be solved with this optimizer.
Checks whether the given problem is compatible, i.e., whether the problem can be converted to a QUBO, and otherwise, returns a message explaining the incompatibility.
Parameters
problem (QuadraticProgram
) – The optimization problem to check compatibility.
Return type
str
Returns
A message describing the incompatibility.
is_compatible
GroverOptimizer.is_compatible(problem)
Checks whether a given problem can be solved with the optimizer implementing this method.
Parameters
problem (QuadraticProgram
) – The optimization problem to check compatibility.
Return type
bool
Returns
Returns True if the problem is compatible, False otherwise.
solve
GroverOptimizer.solve(problem)
Tries to solves the given problem using the grover optimizer.
Runs the optimizer to try to solve the optimization problem. If the problem cannot be, converted to a QUBO, this optimizer raises an exception due to incompatibility.
Parameters
problem (QuadraticProgram
) – The problem to be solved.
Return type
OptimizationResult
Returns
The result of the optimizer applied to the problem.
Raises
- AttributeError – If the quantum instance has not been set.
- QiskitOptimizationError – If the problem is incompatible with the optimizer.