MP library is a set of solver drivers and tools recommended to create new AMPL solver drivers. It provides type-safe and flexible interfaces suitable for linear and mixed-integer, non-linear, and Constraint Programming solvers.
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 containing the information useful to a modeler/solver driver user.
Modeling Guide for MP-based AMPL Solvers presents the advanced reformulation support for many expression types
Features Guide for MP-based AMPL Solvers describes the common features available via solver drivers developed with the framework
Solver drivers contains a categorized list of the currently available drivers
Developer documentation targeted to developers who want to develop a solver driver
MP library introduction shows instructions for downloading, installing and building the library
HOWTO hook your solver to AMPL MP illustrates how to get familiar with the framework and how to quickly obtain the boilerplate code necessary to develop a new solver driver
Reusable components and solver driver API shows the main components of the framework
Testing illustrates how to execute tests during development
Reference contains the reference to all the classes in the framework
- Modeling guide
- Features guide
- Solver drivers