Optimization Services









Optimization Services instance Language (OSiL)

Click to see or download the OSiL XML Schema -> OSiL.xsd [major core parts stable]

Click to see or download the OSiL Paper

OSiL (instance)  is an optimization instance format, a state-of-art design that is simple, clean, extensible, object-oriented.

OSiL is definitely the most critical instance representation. OSiL should be interpreted as Optimization Services input instance Language. The contents of many other OSxL representations such as the Optimization Services result Language and Optimization Services analysis Language are based on and driven by the OSiL design. In a typical Optimization Process, OSiL is transmitted from and to nearly all the major OS components on the OS network. 

There are numerous algebraic modeling languages available for generating mathematical programs (or optimization problems) and numerous mathematical programming solvers available for solving the mathematical program.


This proliferation of modeling languages and solvers is a problem if modelers want to use any solver with any modeling language. One way to increase modeler-solver compatibility is to use an industry standard representation of a problem instance so that all modeling languages and all solvers use the same representation of a problem instance.

OSiL is highly extendible and supports the following optimization types [status in square brackets]:

  • Linear [stable]
  • Mixed integer [stable]
  • Bound constrained optimization [stable]
  • General quadratic optimization [stable]
  • Multi-objective optimization [stable]
  • Nonlinear unconstrained/constrained [stable]
  • General mixed integer nonlinear [stable]
  • General nonlinear with user-defined functions [stable]
  • General nonlinear with xml data (either locally within the OSiL or remotely located) [stable]
  • General nonlinear with data look up (XPath) [stable]
  • Constraint/logic programming [near stable]
  • Complementarity problem [near stable]
  • General nonlinear with simulations (black-box functions) [near stable]
  • Semidefinite programming [prototype under development]
  • Cone programming [prototype under development]
  • Stochastic linear/nonlinear (recourse problems, penalty based problems, scenario (implicit or explicit) based problem, risk measure/chance constrained problems, all major univariate, multivariate and user defined distributions, general linear transformation and ARMA process) [actively under development]

The Optimization Services representation project started with the OSiL for representing general optimization input instances. OSiL has its roots in LPFML for representing linear program instances. For linear programming, an instance can be represented as a list of nonzero coefficients of variables in the objective and constraint functions, along with bounds on the variables and constraint functions. LPFML also has slight support for solver options and optimization outputs. OSiL extends and improves LPFML’s idea for linear program design and adds other optimization types. There is no separate linear instance representation in Optimization Services. We reserve the acronym OSlL (Optimization Services linear Language) in honor of LPFML for providing us the base and insight in linear program representations and for its early adoption of XML technologies in optimization. Optimization Services, however, has its own separate supports for optimization options and results through OSoL (Optimization Services option Language) and OSrL (Optimization Services result Language).

The following figure illustrates the general OSiL Schema.



See OSiL related documents.

The OSiL Paper

Click to see or download the OSiL XML Schema -> OSiL.xsd