186 lines
9.8 KiB
Plaintext
186 lines
9.8 KiB
Plaintext
---
|
||
title: CobylaOptimizer
|
||
description: API reference for qiskit.optimization.algorithms.CobylaOptimizer
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.optimization.algorithms.CobylaOptimizer
|
||
---
|
||
|
||
# qiskit.optimization.algorithms.CobylaOptimizer
|
||
|
||
<Class id="qiskit.optimization.algorithms.CobylaOptimizer" isDedicatedPage={true} github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/algorithms/cobyla_optimizer.py" signature="CobylaOptimizer(rhobeg=1.0, rhoend=0.0001, maxfun=1000, disp=None, catol=0.0002, trials=1, clip=100.0)" modifiers="class">
|
||
The SciPy COBYLA optimizer wrapped as an Qiskit [`OptimizationAlgorithm`](qiskit.optimization.algorithms.OptimizationAlgorithm "qiskit.optimization.algorithms.OptimizationAlgorithm").
|
||
|
||
This class provides a wrapper for `scipy.optimize.fmin_cobyla` ([https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.optimize.fmin\_cobyla.html](https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.optimize.fmin_cobyla.html)) to be used within the optimization module. The arguments for `fmin_cobyla` are passed via the constructor.
|
||
|
||
**Examples**
|
||
|
||
```python
|
||
>>> from qiskit.optimization.problems import QuadraticProgram
|
||
>>> from qiskit.optimization.algorithms import CobylaOptimizer
|
||
>>> problem = QuadraticProgram()
|
||
>>> # specify problem here
|
||
>>> optimizer = CobylaOptimizer()
|
||
>>> result = optimizer.solve(problem)
|
||
```
|
||
|
||
Initializes the CobylaOptimizer.
|
||
|
||
This initializer takes the algorithmic parameters of COBYLA and stores them for later use of `fmin_cobyla` when [`solve()`](#qiskit.optimization.algorithms.CobylaOptimizer.solve "qiskit.optimization.algorithms.CobylaOptimizer.solve") is invoked. This optimizer can be applied to find a (local) optimum for problems consisting of only continuous variables.
|
||
|
||
**Parameters**
|
||
|
||
* **rhobeg** (`float`) – Reasonable initial changes to the variables.
|
||
* **rhoend** (`float`) – Final accuracy in the optimization (not precisely guaranteed). This is a lower bound on the size of the trust region.
|
||
* **disp** (`Optional`\[`int`]) – Controls the frequency of output; 0 implies no output. Feasible values are \{0, 1, 2, 3}.
|
||
* **maxfun** (`int`) – Maximum number of function evaluations.
|
||
* **catol** (`float`) – Absolute tolerance for constraint violations.
|
||
* **trials** (`int`) – The number of trials for multi-start method. The first trial is solved with the initial guess of zero. If more than one trial is specified then initial guesses are uniformly drawn from `[lowerbound, upperbound]` with potential clipping.
|
||
* **clip** (`float`) – Clipping parameter for the initial guesses in the multi-start method. If a variable is unbounded then the lower bound and/or upper bound are replaced with the `-clip` or `clip` values correspondingly for the initial guesses.
|
||
|
||
### \_\_init\_\_
|
||
|
||
<Function id="qiskit.optimization.algorithms.CobylaOptimizer.__init__" signature="__init__(rhobeg=1.0, rhoend=0.0001, maxfun=1000, disp=None, catol=0.0002, trials=1, clip=100.0)">
|
||
Initializes the CobylaOptimizer.
|
||
|
||
This initializer takes the algorithmic parameters of COBYLA and stores them for later use of `fmin_cobyla` when [`solve()`](#qiskit.optimization.algorithms.CobylaOptimizer.solve "qiskit.optimization.algorithms.CobylaOptimizer.solve") is invoked. This optimizer can be applied to find a (local) optimum for problems consisting of only continuous variables.
|
||
|
||
**Parameters**
|
||
|
||
* **rhobeg** (`float`) – Reasonable initial changes to the variables.
|
||
* **rhoend** (`float`) – Final accuracy in the optimization (not precisely guaranteed). This is a lower bound on the size of the trust region.
|
||
* **disp** (`Optional`\[`int`]) – Controls the frequency of output; 0 implies no output. Feasible values are \{0, 1, 2, 3}.
|
||
* **maxfun** (`int`) – Maximum number of function evaluations.
|
||
* **catol** (`float`) – Absolute tolerance for constraint violations.
|
||
* **trials** (`int`) – The number of trials for multi-start method. The first trial is solved with the initial guess of zero. If more than one trial is specified then initial guesses are uniformly drawn from `[lowerbound, upperbound]` with potential clipping.
|
||
* **clip** (`float`) – Clipping parameter for the initial guesses in the multi-start method. If a variable is unbounded then the lower bound and/or upper bound are replaced with the `-clip` or `clip` values correspondingly for the initial guesses.
|
||
</Function>
|
||
|
||
## Methods
|
||
|
||
| | |
|
||
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
||
| [`__init__`](#qiskit.optimization.algorithms.CobylaOptimizer.__init__ "qiskit.optimization.algorithms.CobylaOptimizer.__init__")(\[rhobeg, rhoend, maxfun, disp, …]) | Initializes the CobylaOptimizer. |
|
||
| [`get_compatibility_msg`](#qiskit.optimization.algorithms.CobylaOptimizer.get_compatibility_msg "qiskit.optimization.algorithms.CobylaOptimizer.get_compatibility_msg")(problem) | Checks whether a given problem can be solved with this optimizer. |
|
||
| [`is_compatible`](#qiskit.optimization.algorithms.CobylaOptimizer.is_compatible "qiskit.optimization.algorithms.CobylaOptimizer.is_compatible")(problem) | Checks whether a given problem can be solved with the optimizer implementing this method. |
|
||
| [`multi_start_solve`](#qiskit.optimization.algorithms.CobylaOptimizer.multi_start_solve "qiskit.optimization.algorithms.CobylaOptimizer.multi_start_solve")(minimize, problem) | Applies a multi start method given a local optimizer. |
|
||
| [`solve`](#qiskit.optimization.algorithms.CobylaOptimizer.solve "qiskit.optimization.algorithms.CobylaOptimizer.solve")(problem) | Tries to solves the given problem using the optimizer. |
|
||
|
||
## Attributes
|
||
|
||
| | |
|
||
| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
|
||
| [`clip`](#qiskit.optimization.algorithms.CobylaOptimizer.clip "qiskit.optimization.algorithms.CobylaOptimizer.clip") | Returns the clip value for this optimizer. |
|
||
| [`trials`](#qiskit.optimization.algorithms.CobylaOptimizer.trials "qiskit.optimization.algorithms.CobylaOptimizer.trials") | Returns the number of trials for this optimizer. |
|
||
|
||
### clip
|
||
|
||
<Attribute id="qiskit.optimization.algorithms.CobylaOptimizer.clip">
|
||
Returns the clip value for this optimizer.
|
||
|
||
**Return type**
|
||
|
||
`float`
|
||
|
||
**Returns**
|
||
|
||
The clip value.
|
||
</Attribute>
|
||
|
||
### get\_compatibility\_msg
|
||
|
||
<Function id="qiskit.optimization.algorithms.CobylaOptimizer.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 contains only continuous variables, and otherwise, returns a message explaining the incompatibility.
|
||
|
||
**Parameters**
|
||
|
||
**problem** (`QuadraticProgram`) – The optimization problem to check compatibility.
|
||
|
||
**Return type**
|
||
|
||
`str`
|
||
|
||
**Returns**
|
||
|
||
Returns a string describing the incompatibility.
|
||
</Function>
|
||
|
||
### is\_compatible
|
||
|
||
<Function id="qiskit.optimization.algorithms.CobylaOptimizer.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>
|
||
|
||
### multi\_start\_solve
|
||
|
||
<Function id="qiskit.optimization.algorithms.CobylaOptimizer.multi_start_solve" signature="multi_start_solve(minimize, problem)">
|
||
Applies a multi start method given a local optimizer.
|
||
|
||
**Parameters**
|
||
|
||
* **minimize** (`Callable`\[\[`ndarray`], `Tuple`\[`ndarray`, `Any`]]) – A callable object that minimizes the problem specified
|
||
* **problem** (`QuadraticProgram`) – A problem to solve
|
||
|
||
**Return type**
|
||
|
||
`OptimizationResult`
|
||
|
||
**Returns**
|
||
|
||
The result of the multi start algorithm applied to the problem.
|
||
</Function>
|
||
|
||
### solve
|
||
|
||
<Function id="qiskit.optimization.algorithms.CobylaOptimizer.solve" signature="solve(problem)">
|
||
Tries to solves the given problem using the optimizer.
|
||
|
||
Runs the optimizer to try to solve the optimization problem.
|
||
|
||
**Parameters**
|
||
|
||
**problem** (`QuadraticProgram`) – The problem to be solved.
|
||
|
||
**Return type**
|
||
|
||
`OptimizationResult`
|
||
|
||
**Returns**
|
||
|
||
The result of the optimizer applied to the problem.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – If the problem is incompatible with the optimizer.
|
||
</Function>
|
||
|
||
### trials
|
||
|
||
<Attribute id="qiskit.optimization.algorithms.CobylaOptimizer.trials">
|
||
Returns the number of trials for this optimizer.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
|
||
**Returns**
|
||
|
||
The number of trials.
|
||
</Attribute>
|
||
</Class>
|
||
|