Optimizer¶
This section is about setting up an optimization method for the variational algorithm.
Type¶
optimizer
has the following options
BFGS [Details]: Supports
gtol
,max_iter
optionsBFGS_FTOL: Supports
ftol
,max_iter
optionsL_BFGS_B: Supports
ftol
,gtol
,max_iter
,max_fev
optionsNFT [Nak20][Details]: Supports
ftol
,max_iter
,max_fev
optionsNELDER_MEAD:Supports
max_iter
,max_fev
optionsPOWELL [Details]: Supports
ftol
,max_iter
,max_fev
optionsCG: Supports
gtol
,max_iter
optionsTNC: Supports
ftol
,gtol
,max_iter
optionsSLSQP: Supports
ftol
,max_iter
options
Each optimizer other than BFGS_FTOL and NFT is the same as
one in scipy.optimize.minimize
.
For BFGS the cost function gradient difference gtol
is used for
convergence condition. For BFGS_FTOL the cost function difference
ftol
is used for convergence condition.
References:¶
[Nak20] “Sequential minimal optimization for quantum-classical hybrid algorithms.”, K. M. Nakanishi, K. Fujii, and S. Todo, Phys. Rev. Research 2, 043158 (2020).
Options¶
The following options allow you to specify the condition to stop the optimization.
ftol
: stop the optimization when the increase or decrease from the previous iteration of the cost function is less than or equal to this value. (default: \(10^{-6}\))gtol
: Stops optimization when the slope of the cost function becomes less than or equal to this value. (default: \(10^{-6}\))max_iter
: Maximum number of iterations. (default: \(10^3\))max_fev
: Maximum number of times the cost function is evaluated. (default: \(10^4\))max_run
: maximum number of times to run the quantum circuit (default: \(10^4\))
Input example¶
"optimizer": {
"type": "BFGS",
"ftol": 1e-06,
"gtol": 1e-06,
"max_iter": 100000,
"max_fev": 100000,
"max_run": 100000
}
Differential type¶
The following options allow you to specify the differential type of gradient in optimization calculation. Note there are some optimizers that do not require gradients.
differential_type
: Choice of the numerical derivative NUMERICAL or the analytical derivative ANALYTICAL [Mit18]. By default, NUMERICAL or ANALYTICAL is chosen automatically whenQuantumDevice
is set to EXACT_SIMULATOR or SAMPLING_SIMULATOR, respectively.
References:¶
[Mit18] “Quantum circuit learning”, K. Mitarai, M. Negoro, M. Kitagawa, and K. Fujii, Phys. Rev. A 98, 032309.