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.

qiskit.optimization.algorithms.GroverOptimizer

class GroverOptimizer(num_value_qubits, num_iterations=3, quantum_instance=None, converters=None, penalty=None)

GitHub

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, Backend, BaseBackend, None]) – Instance of selected backend, defaults to Aer’s statevector simulator.
  • converters (Union[QuadraticProgramConverter, List[QuadraticProgramConverter], None]) – The converters to use for converting a problem into a different form. By default, when None is specified, an internally created instance of QuadraticProgramToQubo will be used.
  • penalty (Optional[float]) – The penalty factor used in the default QuadraticProgramToQubo converter

Raises

TypeError – When there one of converters is an invalid type.

__init__

__init__(num_value_qubits, num_iterations=3, quantum_instance=None, converters=None, penalty=None)

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, Backend, BaseBackend, None]) – Instance of selected backend, defaults to Aer’s statevector simulator.
  • converters (Union[QuadraticProgramConverter, List[QuadraticProgramConverter], None]) – The converters to use for converting a problem into a different form. By default, when None is specified, an internally created instance of QuadraticProgramToQubo will be used.
  • penalty (Optional[float]) – The penalty factor used in the default QuadraticProgramToQubo converter

Raises

TypeError – When there one of converters is an invalid type.


Methods

__init__(num_value_qubits[, num_iterations, …])type num_value_qubitsint
get_compatibility_msg(problem)Checks whether a given problem can be solved with this optimizer.
is_compatible(problem)Checks whether a given problem can be solved with the optimizer implementing this method.
solve(problem)Tries to solves the given problem using the grover optimizer.

Attributes

quantum_instanceThe quantum instance to run the circuits.

get_compatibility_msg

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

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.

quantum_instance

The quantum instance to run the circuits.

Return type

QuantumInstance

Returns

The quantum instance used in the algorithm.

solve

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.
Was this page helpful?
Report a bug or request content on GitHub.