Optimization Services

Joe Wirtley, guest blogger extraordinaire, gave me permission to re-post his notes from Wednesday’s Programmers’ Guild meeting. Joe definitley sees the value of the Programmer’s Guild. Read on to find out why. Thanks for your work, Joe!


Wednesday’s meeting at the Cincinnati Programmers’ Guild was an example of what I find most valuable about the Programmers’ Guild; I saw a presentation I am unlikely to see anywhere else. Kipp Martin gave a presentation titled Optimization Services: A Framework for Distributed Optimization. Kipp is a professor of Operations Research and Computing Technology at the University of Chicago and is currently a visiting professor at the University of Cincinnati. He has several degrees from UC, including a BS in Mathematics, an MBA., and a PhD in Quantitative Analysis.

His presentation was about Optimization Services, which is an open source (Common Public License) framework for distributed optimization systems. The basic function of Optimization Services is mathematical optimization, which is to find the optimal solution for a mathematical problem given a set of constraints. The business applications of mathematical optimization are quite broad and include: portfolio optimization, supply chain management and inventory control, logistics, scheduling, routing, blending, and revenue management. For example, you might use this service to find the best route for your trucks to deliver widgets to all of your customers. Or you might use mathematical optimization to determine the best way to blend crude oils in creating gasoline.

One key characteristics of these mathematical optimization problems is that they are typically large; there can be millions of variables and constraints to be considered for a problem, which makes their solution require lots of CPU and memory. Because of these characteristics, it is a great match for a distributed computing solution where you can send a problem to be solved on a computer with lots of CPU and memory.

The Optimization Services project is a framework to solve these problems in a distributed architecture, leveraging SOAP web services. The Optimization Services project is itself a child project of COIN-OR (COmputational INfrastructure for Operations Research). COIN-OR has many projects in addition to Optimization Services.

The Optimization Services project both defines and implements standards. Many of the standards define protocols, which are divided into two major groups. Representation protocols define XML schemas to represent the problem instances (OSiL), results (OSrL), options (OSoL), queries (OSqL), etc. Communication protocols define ways to discover and invoke solvers, and are WSDL formats. Solvers are the software components that perform the actual optimization. There can be many solvers for different types of problems. Solvers are the real “content” of the optimization system.

Beyond the standards themselves, the Optimization Services project has several software components that implement the standards. One component is a command line solver service which accepts a problem instance to solve and returns the solution to that problem. Another component is a library to create problem instances. There are utilities that convert other problem formats into the optimization services standard, OSiL. There is also server software written in Java that runs on Apache Tomcat and Apache Axis that serves as a middleware between remote clients and solvers on the server. There are many other software components identified in the user’s manual.

The software itself is written in C++ and Java. It is cross platform and compiles on Linux, Windows and Mac. It is available both in binary and source format. The source is also available via Subversion. The developer site is home to all the source and developer documentation.

In spite of the sparse attendance, it was a good meeting and an excellent example of the interesting presentations I’ve come to expect at the Programmers’ Guild. I hope to see you at a future meeting.



~ by Andy on February 21, 2008.

One Response to “Optimization Services”

  1. Sounds like string theory, metaphysics, and quantum mechanics ; )

    Brian Siegel

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: