qiskit-documentation/docs/api/qiskit/0.25/qiskit.optimization.algorit...

135 lines
7.5 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: GroverOptimizer
description: API reference for qiskit.optimization.algorithms.GroverOptimizer
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.optimization.algorithms.GroverOptimizer
---
# qiskit.optimization.algorithms.GroverOptimizer
<Class id="qiskit.optimization.algorithms.GroverOptimizer" isDedicatedPage={true} github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/algorithms/grover_optimizer.py" signature="GroverOptimizer(num_value_qubits, num_iterations=3, quantum_instance=None, converters=None, penalty=None)" modifiers="class">
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`\[`BaseBackend`, `Backend`, `QuantumInstance`, `None`]) Instance of selected backend, defaults to Aers 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`](qiskit.optimization.converters.QuadraticProgramToQubo "qiskit.optimization.converters.QuadraticProgramToQubo") will be used.
* **penalty** (`Optional`\[`float`]) The penalty factor used in the default [`QuadraticProgramToQubo`](qiskit.optimization.converters.QuadraticProgramToQubo "qiskit.optimization.converters.QuadraticProgramToQubo") converter
**Raises**
**TypeError** When there one of converters is an invalid type.
### \_\_init\_\_
<Function id="qiskit.optimization.algorithms.GroverOptimizer.__init__" signature="__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`\[`BaseBackend`, `Backend`, `QuantumInstance`, `None`]) Instance of selected backend, defaults to Aers 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`](qiskit.optimization.converters.QuadraticProgramToQubo "qiskit.optimization.converters.QuadraticProgramToQubo") will be used.
* **penalty** (`Optional`\[`float`]) The penalty factor used in the default [`QuadraticProgramToQubo`](qiskit.optimization.converters.QuadraticProgramToQubo "qiskit.optimization.converters.QuadraticProgramToQubo") converter
**Raises**
**TypeError** When there one of converters is an invalid type.
</Function>
## Methods
| | |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [`__init__`](#qiskit.optimization.algorithms.GroverOptimizer.__init__ "qiskit.optimization.algorithms.GroverOptimizer.__init__")(num\_value\_qubits\[, num\_iterations, …]) | **type num\_value\_qubits**`int` |
| [`get_compatibility_msg`](#qiskit.optimization.algorithms.GroverOptimizer.get_compatibility_msg "qiskit.optimization.algorithms.GroverOptimizer.get_compatibility_msg")(problem) | Checks whether a given problem can be solved with this optimizer. |
| [`is_compatible`](#qiskit.optimization.algorithms.GroverOptimizer.is_compatible "qiskit.optimization.algorithms.GroverOptimizer.is_compatible")(problem) | Checks whether a given problem can be solved with the optimizer implementing this method. |
| [`solve`](#qiskit.optimization.algorithms.GroverOptimizer.solve "qiskit.optimization.algorithms.GroverOptimizer.solve")(problem) | Tries to solves the given problem using the grover optimizer. |
## Attributes
| | |
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| [`quantum_instance`](#qiskit.optimization.algorithms.GroverOptimizer.quantum_instance "qiskit.optimization.algorithms.GroverOptimizer.quantum_instance") | The quantum instance to run the circuits. |
### get\_compatibility\_msg
<Function id="qiskit.optimization.algorithms.GroverOptimizer.get_compatibility_msg" signature="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.
</Function>
### is\_compatible
<Function id="qiskit.optimization.algorithms.GroverOptimizer.is_compatible" signature="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.
</Function>
### quantum\_instance
<Attribute id="qiskit.optimization.algorithms.GroverOptimizer.quantum_instance">
The quantum instance to run the circuits.
**Return type**
`QuantumInstance`
**Returns**
The quantum instance used in the algorithm.
</Attribute>
### solve
<Function id="qiskit.optimization.algorithms.GroverOptimizer.solve" signature="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**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") If the problem is incompatible with the optimizer.
</Function>
</Class>