A First View of Microsoft Solver Foundation
In the last few days, I started playing with the new framework for optimization (i.e., business decision making) by Microsoft. It is called Microsoft Solver Foundation, and encompasses a number of technologies that make the connection between traditional optimization and mathematical programming and business-oriented tools, such as databases and spreadsheets.
The premise of MSF is that it is a framework is necessary to integrate the several areas where decision make technologies are required. Also, the tools used for optimization are varied, and it is useful to have a framework capable of doing the connection between these services.
Of course, from a strategic standpoint, MS is interested in offering solutions in an area in which IBM has already a good position. Particularly after the recent acquisition of Ilog, the leading producer of optimization software.
The product is clearly still not mature, but it has some interesting features that play into MS core competencies:
- Support for most commercial solvers
- Unified programming paradigm for connecting mathematical decision into commercial computing services.
- Integration with Office – this is important if spreadsheets area used by your company to make decision base on OR models.
However, some deficiencies are also apparent:
- Lack of high quality solvers for some classes of problems. This is probably the biggest initial problem for Microsoft. They have a partnership with Gurobi, the new solver by the same guys that created Cplex. However, despite its potential, it still isn’t as fast as Cplex, and who knows how long its gonna take to catch up on that speed. Solvers for classes of non-linear optimization are also necessary.
- High licensing costs: The license for MSF is by CPU, and it looks like it is in the 5 digits range. This may be a huge investment for some customers, specially the ones that still need to pay for an Ilog license. I really expected something at a lower cost and targeted at a larger demographic group, coming from Microsoft. Let us see how this issue plays out.
I am still learning MSF, and it matches very nicely with C#. Many people will also use the product as a plug in for Excel, with works just fine for simple optimization models. In future posts, I will provide some concrete examples of how MSF works within a C# or C++ application.
About the Author
Carlos Oliveira holds a PhD in Systems Engineering and Optimization from University of Florida. He works as a software engineer, with more than 10 years of experience in developing high performance, commercial and scientific applications in C++, Java, and Objective-C. His most Recent Book is Practical C++ Financial Programming.