220 lines
8.3 KiB
Plaintext
220 lines
8.3 KiB
Plaintext
---
|
||
title: P_BFGS (v0.31)
|
||
description: API reference for qiskit.aqua.components.optimizers.P_BFGS in qiskit v0.31
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.aqua.components.optimizers.P_BFGS
|
||
---
|
||
|
||
<span id="p-bfgs" />
|
||
|
||
# P\_BFGS
|
||
|
||
<Class id="qiskit.aqua.components.optimizers.P_BFGS" isDedicatedPage={true} github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/aqua/components/optimizers/p_bfgs.py" signature="P_BFGS(maxfun=1000, factr=10, iprint=- 1, max_processes=None)" modifiers="class">
|
||
Bases: `qiskit.aqua.components.optimizers.optimizer.Optimizer`
|
||
|
||
Parallelized Limited-memory BFGS optimizer.
|
||
|
||
P-BFGS is a parallelized version of [`L_BFGS_B`](qiskit.aqua.components.optimizers.L_BFGS_B "qiskit.aqua.components.optimizers.L_BFGS_B") with which it shares the same parameters. P-BFGS can be useful when the target hardware is a quantum simulator running on a classical machine. This allows the multiple processes to use simulation to potentially reach a minimum faster. The parallelization may also help the optimizer avoid getting stuck at local optima.
|
||
|
||
Uses scipy.optimize.fmin\_l\_bfgs\_b. For further detail, please refer to [https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin\_l\_bfgs\_b.html](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin_l_bfgs_b.html)
|
||
|
||
**Parameters**
|
||
|
||
* **maxfun** (`int`) – Maximum number of function evaluations.
|
||
* **factr** (`float`) – The iteration stops when (f^k - f^\{k+1})/max\{|f^k|, |f^\{k+1}|,1} \<= factr \* eps, where eps is the machine precision, which is automatically generated by the code. Typical values for factr are: 1e12 for low accuracy; 1e7 for moderate accuracy; 10.0 for extremely high accuracy. See Notes for relationship to ftol, which is exposed (instead of factr) by the scipy.optimize.minimize interface to L-BFGS-B.
|
||
* **iprint** (`int`) – Controls the frequency of output. iprint \< 0 means no output; iprint = 0 print only one line at the last iteration; 0 \< iprint \< 99 print also f and |proj g| every iprint iterations; iprint = 99 print details of every iteration except n-vectors; iprint = 100 print also the changes of active set and final x; iprint > 100 print details of every iteration including x and g.
|
||
* **max\_processes** (`Optional`\[`int`]) – maximum number of processes allowed, has a min. value of 1 if not None.
|
||
|
||
## Methods
|
||
|
||
<span id="qiskit-aqua-components-optimizers-p-bfgs-get-support-level" />
|
||
|
||
### get\_support\_level
|
||
|
||
<Function id="qiskit.aqua.components.optimizers.P_BFGS.get_support_level" signature="P_BFGS.get_support_level()">
|
||
return support level dictionary
|
||
</Function>
|
||
|
||
<span id="qiskit-aqua-components-optimizers-p-bfgs-gradient-num-diff" />
|
||
|
||
### gradient\_num\_diff
|
||
|
||
<Function id="qiskit.aqua.components.optimizers.P_BFGS.gradient_num_diff" signature="P_BFGS.gradient_num_diff(x_center, f, epsilon, max_evals_grouped=1)" modifiers="static">
|
||
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
|
||
|
||
**Returns**
|
||
|
||
the gradient computed
|
||
|
||
**Return type**
|
||
|
||
grad
|
||
</Function>
|
||
|
||
<span id="qiskit-aqua-components-optimizers-p-bfgs-optimize" />
|
||
|
||
### optimize
|
||
|
||
<Function id="qiskit.aqua.components.optimizers.P_BFGS.optimize" signature="P_BFGS.optimize(num_vars, objective_function, gradient_function=None, variable_bounds=None, initial_point=None)">
|
||
Perform optimization.
|
||
|
||
**Parameters**
|
||
|
||
* **num\_vars** (*int*) – Number of parameters to be optimized.
|
||
* **objective\_function** (*callable*) – A function that computes the objective function.
|
||
* **gradient\_function** (*callable*) – A function that computes the gradient of the objective function, or None if not available.
|
||
* **variable\_bounds** (*list\[(float, float)]*) – List of variable bounds, given as pairs (lower, upper). None means unbounded.
|
||
* **initial\_point** (*numpy.ndarray\[float]*) – Initial point.
|
||
|
||
**Returns**
|
||
|
||
**point, value, nfev**
|
||
|
||
point: is a 1D numpy.ndarray\[float] containing the solution value: is a float with the objective function value nfev: number of objective function calls made if available or None
|
||
|
||
**Raises**
|
||
|
||
**ValueError** – invalid input
|
||
</Function>
|
||
|
||
<span id="qiskit-aqua-components-optimizers-p-bfgs-print-options" />
|
||
|
||
### print\_options
|
||
|
||
<Function id="qiskit.aqua.components.optimizers.P_BFGS.print_options" signature="P_BFGS.print_options()">
|
||
Print algorithm-specific options.
|
||
</Function>
|
||
|
||
<span id="qiskit-aqua-components-optimizers-p-bfgs-set-max-evals-grouped" />
|
||
|
||
### set\_max\_evals\_grouped
|
||
|
||
<Function id="qiskit.aqua.components.optimizers.P_BFGS.set_max_evals_grouped" signature="P_BFGS.set_max_evals_grouped(limit)">
|
||
Set max evals grouped
|
||
</Function>
|
||
|
||
<span id="qiskit-aqua-components-optimizers-p-bfgs-set-options" />
|
||
|
||
### set\_options
|
||
|
||
<Function id="qiskit.aqua.components.optimizers.P_BFGS.set_options" signature="P_BFGS.set_options(**kwargs)">
|
||
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.
|
||
</Function>
|
||
|
||
<span id="qiskit-aqua-components-optimizers-p-bfgs-wrap-function" />
|
||
|
||
### wrap\_function
|
||
|
||
<Function id="qiskit.aqua.components.optimizers.P_BFGS.wrap_function" signature="P_BFGS.wrap_function(function, args)" modifiers="static">
|
||
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
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### bounds\_support\_level
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.bounds_support_level">
|
||
Returns bounds support level
|
||
</Attribute>
|
||
|
||
### gradient\_support\_level
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.gradient_support_level">
|
||
Returns gradient support level
|
||
</Attribute>
|
||
|
||
### initial\_point\_support\_level
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.initial_point_support_level">
|
||
Returns initial point support level
|
||
</Attribute>
|
||
|
||
### is\_bounds\_ignored
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_bounds_ignored">
|
||
Returns is bounds ignored
|
||
</Attribute>
|
||
|
||
### is\_bounds\_required
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_bounds_required">
|
||
Returns is bounds required
|
||
</Attribute>
|
||
|
||
### is\_bounds\_supported
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_bounds_supported">
|
||
Returns is bounds supported
|
||
</Attribute>
|
||
|
||
### is\_gradient\_ignored
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_gradient_ignored">
|
||
Returns is gradient ignored
|
||
</Attribute>
|
||
|
||
### is\_gradient\_required
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_gradient_required">
|
||
Returns is gradient required
|
||
</Attribute>
|
||
|
||
### is\_gradient\_supported
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_gradient_supported">
|
||
Returns is gradient supported
|
||
</Attribute>
|
||
|
||
### is\_initial\_point\_ignored
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_initial_point_ignored">
|
||
Returns is initial point ignored
|
||
</Attribute>
|
||
|
||
### is\_initial\_point\_required
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_initial_point_required">
|
||
Returns is initial point required
|
||
</Attribute>
|
||
|
||
### is\_initial\_point\_supported
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.is_initial_point_supported">
|
||
Returns is initial point supported
|
||
</Attribute>
|
||
|
||
### setting
|
||
|
||
<Attribute id="qiskit.aqua.components.optimizers.P_BFGS.setting">
|
||
Return setting
|
||
</Attribute>
|
||
</Class>
|
||
|