Microsoft Solver Foundation: YAML?

Is the Microsoft Solver Foundation Yet Another Modeling Language? I have some views at the INFORMS Practice Conference Blog. Best part of the workshop: the tagline “The Right Decision”. Perhaps INFORMS should have used that instead of “The Science of Better”.

Microsoft Solver Foundation became public late in 2008, and I have been curious what it is all about, so I sat in on this morning’s technical workshop. Two hours and six pages of notes later, I think I have a better idea.  At its heart, Solver Foundation is a pure “.NET” based library for mathematical programming.   At some level, that is all the justification it needs to exist.  There are a lot of .NET shops out there, so being able to work purely within .NET is a real plus to them.  For those of us who are not working in such an environment, there are still a number of nice aspects to Solver Foundation (SF), including

  1. Modeling Breadth.  SF is based on a very general algebraic modeling structure (think Mathematica), so it is, in theory, not limited to “just” mixed-integer programming.  Current solver support includes constraint programming, MIP, quadratic programming, and nonlinear programming, but the underlying structure is extremely general.
  2. Built-in parallelism to take advantage of either networks of machines or multicore systems.  Since much of the improved speeds in computers these days comes from the addition of cores (even notebook computers can have four or more cores), it is critical that systems take advantage of this.  The example given in the talk was a “horse race” between alternative optimization codes: SF will easily let you run CPLEX, XPRESS, and other solvers in parallel on the same problem, terminating when the fastest solver on that instance terminates.
  3. Integration with Visual Studio and, particularly, Excel.  My (MBA) students really like to work within Excel, which has limited our use of modeling languages.  SF gives hope that we can embed real, scalable, models within Excel easily.
  4. Symbolic and rational arithmetic possibilities.  For some models, roundoff errors create huge problems.  SF solvers have the ability to work in rational arithmetic (keeping track of numerators and denominators) to provide exact calculations.

For me, the best parts are the ability to combine constraint programming with mixed-integer programming, and the hope that maybe I can teach some real operations research to my MBA students through SF’s links with Excel.   Of course, it is inspiring to hear a Microsoft person talk about the multi-billion dollar market they hope to reach through optimization.

My favorite part:  the tagline “The Right Decision”.  That pretty well sums up operations research.

2 thoughts on “Microsoft Solver Foundation: YAML?”

  1. Glad to see you like the tag line.

    Solver Foundation is not purely a modeling language or modeling environment. It is a solver framework:
    – modeling and bindings to any computer language (C#, VB, Python, Ruby,….)
    – modeling transformation and solver scheduling (on multi-core and/or distributed computing cluster)
    – a set of default solvers, plus a solver plug-in interface that allows any (MILP/MIQP) solver vendor to be a part of the framework
    This allows the solver technology to be componentized and available as a general tool (just as GUI forms, and data/database framework) for enterprise/business developers.

    Yeah, we believe the tag line reflects a different point of view on how OR should be presented to the greater audience.

Leave a Reply

Your email address will not be published. Required fields are marked *