MP library#

MP library is a set of solver drivers and tools recommended to create and use with new AMPL solver drivers. It provides type-safe and flexible interfaces suitable for linear and mixed-integer, non-linear, and Constraint Programming solvers.

MP provides supporting tools, such as automatic solution checker (built-in to every MP solver), a Model reformulation explorer, a meta-driver MP2NL, and a lightweight NL writer.

MP replaces the previous AMPL Solver Library for solvers not requiring automatic differentiation. It is implemented in C++, parts of the API are exported in C.

Why MP library?#

MP library aims to provide efficient, simple-to-use and highly configurable solver drivers and tools. Benefits of MP include:

  • Automatic reformulation of some expressions: problems containing such expressions can be seamlessly solved using solver drivers developed with MP, although the underlying solver might natively not support them

  • Consistency: many solver options are supported via Feature guide for MP-based AMPL solvers at framework level, requiring only the implementation of an API in the solver driver. This ensures consistency in options naming and semantics across solvers

  • Speed of development: modern design patterns and a declarative approach to features implementation greatly reduce development effort: for a typical MIP solver, a few days are enough to code a driver

On this documentation#

The documentation is divided in two sections:

User documentation#

Developer documentation#

Indices and tables#