Microsoft Solver Foundation

Global competitiveness requires that companies adopt agile techniques for planning, scheduling, risk management, and strategic decision making.Modeling the decisions to be made and the constraints placed upon them in a way that can address the needs of all stakeholders has been a longtime area of academic and industrial research. CxOs, business analysts,developers, and business people involved in all stages of the business value chain have a need for applied business insight through modeling.A modeling system that can span the entire continuum from Excel spreadsheet through production code implementing mission critical planning and control of business process is required to meet the needs of these stakeholders. Microsoft is proud to present the Microsoft™ Solver Foundation – the first 360 degree platform and framework for adaptive business insight and planning.A brand new system built entirely within the .Net/CLR system, it provides a rich set of tools, services, and engines to aid companies in their continuous quest for operational efficiency, profit maximization, and risk management. Solver Foundation is designed tohelp businesses make these (near) optimal, strategic decisions. We refer to this as adaptive business insight and planning. The possible applications cover a vast range: real-time supply chain optimization,data center energy profile management, online advertising profit maximization, logistics of large conference scheduling, transportation network flows, and risk analysis of investment portfolios. There are also direct applications to graphics and machine learning. All of these decisions are encoded in Solver Foundation through a declarative model specification, one which focuses the modeler and developer of stating the “what” rather than the “how” of the business decision to be made.This rapidly accelerates solution engineering and increases the degrees what-if? analysis possible. The goal is the same in all cases: using advanced algorithms, modeling and services to make the “right”decisions when and where it counts the most.


In essence,Solver Foundation is a pure, managed code runtime for mathematical programming, modeling, and optimization. It is designed to run on NETfx3.5+ and is completely implemented in C#. It natively supports all modern Microsoft operating systems and works especially well on 64 bit editions of Windows Vista and Windows Server 2008. Solver Foundation is useable from all CLS-compliant languages, including C#, F#, IronPython,VB.NET and managed C++. Solver Foundation is also available via a visual, Add-in Designer for Excel 2007 users.

SolverFoundation provides solvers and services to a broad community of users:from Excel users and analysts to programmers working on business critical scheduling, configuration, risk management, and planning solutions. It provides services for model validation, parallel solving and workload scheduling, model interchange, and declarative data-binding via LINQ and other NETFx technologies. As an open framework designed for third party extensibility, it exposes facilities for users to plug-in their own solvers while still leveraging all of the modeling services and capabilities of Solver Foundation.

Building a model in Solver Foundation is as simple as specifying the decisions to be made, constraints to be respected, the goals to be used to evaluate candidate proposals (solutions) and the data to be processed by the model (historical or projected parameters). This can be done from anyCLS-compatible language and the modeler does not need to understand anything about the details of solver technologies or search strategies.The separation of concerns is total, providing a high degree of modularity to MSF.


Solver Foundation consists of a series of layered services that efficiently divide the work of modeling and solving. This allows for maximal separation of concerns in the design and future proofs Solver Foundation. The following system diagram describes the basic architecture of Solver Foundation and calls out akey extensibility mechanisms for plugging in existing solvers.

Go to http://code.msdn.microsoft.com/solverfoundation

Other projects in this category: