Crate optimization [−] [src]
Collection of various optimization algorithms and strategies.
Building Blocks
Each central primitive is specified by a trait:
Function- Specifies a function that can be minimizedDerivative1- Extends aFunctionby the analytical first derivativeNumericalDifferentiation- Provides numerical differentiation for arbitraryFunctionsMinimizer- A minimization algorithmEvaluation- A function evaluationf(x) = ythat is returned by aMinimizer
Algorithms
Currently, the following algorithms are implemented. This list is not final and being expanded over time.
GradientDescent- Iterative gradient descent minimization, supporting various line search methods:FixedStepWidth- No line search is performed, but a fixed step width is usedExactLineSearch- Exhaustive line search over a set of step widthsArmijoLineSearch- Backtracking line search using the Armijo rule as stopping criterion
Modules
| problems |
Common optimization problems for testing purposes. |
Structs
| ArmijoLineSearch |
Backtracking line search evaluating the Armijo rule at each step width. |
| ExactLineSearch |
Brute-force line search minimizing the objective function over a set of step width candidates, also known as exact line search. |
| FixedStepWidth |
Uses a fixed step width |
| GradientDescent |
A simple Gradient Descent optimizer. |
| NumericalDifferentiation |
Wraps a function for which to provide numeric differentiation. |
Traits
| Derivative1 |
Defines an objective function |
| Evaluation |
Captures the essence of a function evaluation. |
| Function |
Defines an objective function |
| LineSearch |
Define a line search method, i.e., choosing an appropriate step width. |
| Minimizer |
Defines an optimizer that is able to minimize a given objective function |