Optimization Services

 


 

 

 

 

 

 

 

 

Optimization Services (OS) Overview

In the early history of solving the mathematical programs, the translation of an optimization model to a format required by a linear program solver involved intensive human labor and human labor alone. The first major attempt to provide an environment to help the solution of a mathematical program was the matrix generator. A matrix generator is a computer code that creates input in the form of coefficient matrices for a linear solver. The task of translation from the modeler’s form to the algorithmic code’s form is thus divided and shared between human and computer. The dominance of matrix generator continued to the early 1980’s.

Then there was a big breakthrough with the development of modeling languages (the first major one being GAMS), which entirely shifted the human labor of translation to computer. In 1983, Robert Fourer articulated a contrast between the modeler’s view and the algorithm’s view. He described new design considerations that would combine strength of general, high level languages with special-purpose languages. Modeling languages introduced two key ideas: separation of the data from the model and separation of modeling language from the solver. They addressed the issues of verifiability, modifiability, documentability, independence, simplicity, and other special drawbacks of matrix generators. As modeling languages began to be packaged with other auxiliary tools that assist in model construction, people started to call them modeling systems. 

It has become increasingly common to separate modeling languages and systems from optimization solvers. In fact, the modeling language software, solver software, and data used to generate the model instance might reside on different machines using different operating systems. The next great leap forward happened in the mid 1990’s when large-scale optimization was brought onto the Internet. The NEOS Server [2] for Optimization is the most ambitious realization to date of the optimization server idea. A cooperative effort of over 40 designers, developers, collaborators, and administrators at the Optimization Technology Center of Northwestern University and Argonne National Laboratory, NEOS provides access to dozens of solvers. Modelers can submit problems with representations of many kinds and through networking mechanisms based on nearly all major protocols.

By using distributed computing technologies such as XML and Web services, we envision the Optimization Services approach as the next step in the evolution of optimization technologies. Optimization Services is an XML-based, service-oriented, optimization centered, distributed and decentralized architecture. By using Optimization Services Protocols, Optimization Services enable OR software to integrate with partners and clients in a fashion that is loosely coupled, simple, and platform-independent.