Optimization backends¶
EVEREST offers various optimization backends that allow the user a wide
selection of low-level optimization algorithms to perform ensemble optimization.
Most of the options that can be set in the optimization section will be
implemented by all algorithms. These options are documented in the section
Keyword reference. In addition to these standard option it is possible
to pass generic options via the options keyword. To find the generic options
that are supported by a backend, consult their documentation.
Out of the box, EVEREST supports Dakota and SciPy backends.
The Dakota backend¶
The Dakota backend is based on the Dakota optimization package. Information on two commonly used algorithms (optpp_q_newton and conmin_mfd) can be found in Optimization algorithms.
Important
For more information regarding specific optimizer settings please refer to
the official Dakota manual. To find the
algorithms and options that are supported in EVEREST, consult the manual of
the corresponding ropt plugin: ropt-dakota.
Example
optimization:
algorithm: optpp_q_newton
convergence_tolerance: 0.001
constraint_tolerance: 0.001
perturbation_num: 7
speculative: True
options:
- max_repetitions = 300
- retry_if_fail
- classical_search 1
Note
The constraint_tolerance option used in this example is specific for
Dakota, which uses it to determine if output constraints are violated.
The SciPy backend¶
The SciPy backend is based on the optimization algorithms implemented in the SciPy package.
Important
For more information regarding specific optimizer settings please refer to
the scipy.optimize manual. To find
the algorithms and options that are supported in EVEREST, consult the
ropt manual: https://scipy.org/.
Example
optimization:
backend: scipy
algorithm: SLSQP
convergence_tolerance: 0.001
perturbation_num: 7
speculative: True
backend_options:
ftol: 1e-5
disp: True