Nowadays a vast majority of optimization solvers can handle very complex problems involving many variables and various types of the constraints with a different structure. Designing an interface for such a solver, which would allow a complex input without compromising the ease of use, is challenging.
A new suite of routines, the NAG Optimization Modelling Suite, has been introduced in Mark 26 of the NAG Library to tackle the input of complex problems without forming difficult interfaces with a daunting number of arguments. The suite is used by the new optimization solvers introduced at this mark; the semidefinite programming solver and the interior point method for nonlinear optimization. The suite will expand in the years to come to handle more problem types.
The main aim of the NAG Optimization Modelling Suite is the ability to define and solve various optimization problems in a uniform manner.
There are three key features of the suite. Firstly, the definition of the optimization problem and the call to the solver have been separated in such a way that the formulation of the problem is solver agnostic, i.e., the same problem can be set up in the same way for different solvers. Secondly, the problem representation is built up from basic components (for example, a QP problem is composed of a quadratic objective, simple bounds and linear constraints), therefore different types of problems reuse the same routines for their common parts. Finally, the call to the solver is notably simplified thanks to the fact that most of the information has already been provided.
The suite can be found in Chapter E04 of the NAG Library, mainly as e04r and e04s routines. There are many examples accompanying the routines of the suite to demonstrate the best practice.