Crate optimization_engine

Source
Expand description

Optimization Engine is a framework for fast and accurate embedded nonconvex optimization.

§About Optimization Engine

Its core functionality (including all numerical routines) is written in Rust.

Optimization Engine can be used on PCs (all OSs are supported) and on embedded devices (e.g., Raspberry Pi, Atom, Odroid, etc).

Note that this is the API documentation of Optimization Engine; to get started, you should rather check out the documentation.

§Optimization Problems

Optimization Engine solves optimization problems of the general form

$$\begin{aligned} \mathrm{Minimize}\ f(u) \\ u \in U \\ F_1(u) \in C \\ F_2(u) = 0 \end{aligned}$$

where

  • $u\in\mathbb{R}^{n_u}$ is the decision variable,
  • $f:\mathbb{R}^n\to\mathbb{R}$ is a $C^{1,1}$-smooth cost function,
  • $U$ is a (not necessarily convex) closed subset of $\mathbb{R}^{n_u}$ on which we can easily compute projections (e.g., a rectangle, a ball, a second-order cone, a finite set, etc),
  • $F_1:\mathbb{R}^{n_u}\to\mathbb{R}^{n_1}$ and $F_2:\mathbb{R}^{n_u} \to\mathbb{R}^{n_2}$ are mappings with smooth partial derivatives, and
  • $C\subseteq\mathbb{R}^{n_1}$ is a convex closed set on which we can easily compute projections.

Re-exports§

pub use crate::core::fbs;
pub use crate::core::panoc;
pub use crate::core::AlgorithmEngine;
pub use crate::core::Optimizer;
pub use crate::core::Problem;

Modules§

alm
Augmented Lagrangian and Penalty Methods
constraints
Constraints and projections
core
Optimisation algorithms
lipschitz_estimator
Estimates a local Lipschitz constant for a mapping $F: \mathbb{R}^n \to \mathbb{R}^n$
matrix_operations
matrix_operations

Enums§

SolverError
Exceptions/Errors that may arise while solving a problem

Type Aliases§

FunctionCallResult
Result of a function call (status)