Optimization Services


 

 

 

 

 

 

 

 

OS Interface and COIN OSI2 (Open Solver Interface 2)

Besides standardizing all the communications between any two Optimization Services components on an OS distributed system, the OS framework is now taking a second step to standardizing local interfacing.

Related projects such as COIN and derived research from Optimization Services such as the OS Instance interface, OS Option interface, and OS Result interface are intended to do this job. The COIN project includes the OSI (Open Solver Interface) library which is an API for linear programming solvers.

Optimization Services and COIN-OR are actively under the progress of integrating:

  • OSInstance
  • OSOption
  • OSResult

into the new OSI2 (Open Solver Interface 2) project to provide a unified interface to all types of optimization solvers (e.g. linear, nonlinear, mixed integer, etc.) Many applications may be able to use the OSI2 to insulate themselves from a specific optimization solver.

Extending Optimization Services framework to the design of local interface has many advantages. For example, the OSiL schema can be very naturally extended to the design of a unified problem (optimization instance) input data structure (or class).

The OSiL schema has two key features that make it much superior to current standard forms for optimization problem instances. First, it uses the object-oriented features of XML schemas to efficiently represent nonlinear expressions. Second, its XML schema maps directly into a corresponding in-memory representation of a problem instance. The inmemory representation provides a robust application program interface for general nonlinear programming, facilitates reading and writing postfix, prefix, and infix formats to and from the nonlinear expression tree, and makes the expression tree readily available for function and derivative evaluations.

Please see the OSiL paper for more details on this idea. Similarly, OSoL (option) and OSrL (result) can also be extended to the design of option and result interfaces and classes.