Crate descent

source ·
Expand description

Modelling interface to non-linear constrained optimisation.

This module exposes more than the typical user will want to use (so that other crates such as the descent_ipopt crate can interface to it). The most relevant parts of this module are:

  • Model trait that solvers implement.
  • Var type that represents a model variable.
  • Par type that represents a model parameter.
  • Expression most general type of expression for modelling constraints and objectives.
  • Solution type that stores and enables access to a solution.

If you have nightly rust available, then the “fixed” form expressions that have their first and second derivatives generated by a procedural macro is the most performant approach to writing expressions. See the fixed sub-module.

For greater runtime flexibility in constructing of expressions, use the “dynamic” expressions instead in the dynam sub-module.

Both types of expression can be used with the same model but not in the same objective value or constriant.

To get started writing and solving non-linear programs with IPOPT, go straight to the examples in the descent_ipopt crate.

Modules

Expression, variable and parameter modelling.
Model interface for solvers.