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 a Model reformulation explorer.

Moreover, MP library provides 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 Features 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