Crate optimization [] [src]

Collection of various optimization algorithms and strategies.

Building Blocks

Each central primitive is specified by a trait:

Algorithms

Currently, the following algorithms are implemented. This list is not final and being expanded over time.

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 γ in each iteration instead of performing an actual line search.

Func

New-type to support optimization of arbitrary functions without requiring to implement a trait.

GradientDescent

A simple Gradient Descent optimizer.

NumericalDifferentiation

Wraps a function for which to provide numeric differentiation.

StochasticGradientDescent

Provides stochastic Gradient Descent optimization.

Traits

Evaluation

Captures the essence of a function evaluation.

Function

Defines an objective function f that is subject to minimization.

Function1

Defines an objective function f that is able to compute the first derivative f'(x).

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 F.

Summation

Defines a summation of individual functions, i.e., f(x) = ∑ᵢ fᵢ(x).

Summation1

Defines a summation of individual functions fᵢ(x), assuming that each function has a first derivative.