You are viewing the API reference for an old version of Qiskit. Switch to latest version

# Optimizer

`Optimizer`GitHub(opens in a new tab)

Bases: `abc.ABC`

Base class for optimization algorithm.

Initialize the optimization algorithm, setting the support level for _gradient_support_level, _bound_support_level, _initial_point_support_level, and empty options.

## Methods

### get_support_level

`abstract Optimizer.get_support_level()`GitHub(opens in a new tab)

Return support level dictionary

`static Optimizer.gradient_num_diff(x_center, f, epsilon, max_evals_grouped=None)`GitHub(opens in a new tab)

We compute the gradient with the numeric differentiation in the parallel way, around the point x_center.

Parameters

• x_center (ndarray) – point around which we compute the gradient
• f (func) – the function of which the gradient is to be computed.
• epsilon (float) – the epsilon used in the numeric differentiation.
• max_evals_grouped (int) – max evals grouped, defaults to 1 (i.e. no batching).

Returns

Return type

### minimize

`abstract Optimizer.minimize(fun, x0, jac=None, bounds=None)`GitHub(opens in a new tab)

Minimize the scalar function.

Parameters

• fun (`Callable`[[`Union`[`float`, `ndarray`]], `float`]) – The scalar function to minimize.
• x0 (`Union`[`float`, `ndarray`]) – The initial point for the minimization.
• jac (`Optional`[`Callable`[[`Union`[`float`, `ndarray`]], `Union`[`float`, `ndarray`]]]) – The gradient of the scalar function `fun`.
• bounds (`Optional`[`List`[`Tuple`[`float`, `float`]]]) – Bounds for the variables of `fun`. This argument might be ignored if the optimizer does not support bounds.

Return type

`OptimizerResult`

Returns

The result of the optimization, containing e.g. the result as attribute `x`.

`Optimizer.print_options()`GitHub(opens in a new tab)

Print algorithm-specific options.

### set_max_evals_grouped

`Optimizer.set_max_evals_grouped(limit)`GitHub(opens in a new tab)

Set max evals grouped

### set_options

`Optimizer.set_options(**kwargs)`GitHub(opens in a new tab)

Sets or updates values in the options dictionary.

The options dictionary may be used internally by a given optimizer to pass additional optional values for the underlying optimizer/optimization function used. The options dictionary may be initially populated with a set of key/values when the given optimizer is constructed.

Parameters

kwargs (dict) – options, given as name=value.

### wrap_function

`static Optimizer.wrap_function(function, args)`GitHub(opens in a new tab)

Wrap the function to implicitly inject the args at the call of the function.

Parameters

• function (func) – the target function
• args (tuple) – the args to be injected

Returns

wrapper

Return type

function_wrapper

## Attributes

### bounds_support_level

Returns bounds support level

### initial_point_support_level

Returns initial point support level

### is_bounds_ignored

Returns is bounds ignored

### is_bounds_required

Returns is bounds required

### is_bounds_supported

Returns is bounds supported

### is_initial_point_ignored

Returns is initial point ignored

### is_initial_point_required

Returns is initial point required

### is_initial_point_supported

Returns is initial point supported

Return setting

### settings

The optimizer settings in a dictionary format.

The settings can for instance be used for JSON-serialization (if all settings are serializable, which e.g. doesn’t hold per default for callables), such that the optimizer object can be reconstructed as

``````settings = optimizer.settings
# JSON serialize and send to another server
optimizer = OptimizerClass(**settings)``````

Return type

`Dict`[`str`, `Any`]