Search Wiki:
21jan09 update: Added Solver Foundation plug-in SDK interface document. This will allow third-party solvers to plug in their respective solvers into the soon to be released v1.1
11jan09 update: Added the Solver Foundation ICS2009 conference session presentation.
25nov08 update: Added Sudoku Puzzle Generator to our collection of downloads. This VB.NET source code sample leverages the Solver Foundation Services to generate an Excel 2007 Add-in.
18nov08 update: We updated our Excel Programming Primer document to include all supported operators. The revised document can be found in the downloadeds tab as a seperate pdf file.

Solver Foundation is a pure, managed code runtime for mathematical programming, modeling, and optimization. It is designed to run on NETfx 3.5+ and is completely implemented in C#. It natively supports all modern Microsoft operating systems and works especially well on 64bit 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.

Solver Foundation 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 any CLS-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 a key extensibility mechanisms for plugging in existing solvers.


As innovations in solver technology emerge, they can be transparently and easily integrated into the runtime and framework without refactoring or recompilation. The service layers include:
    • Programming and Modeling Services for NETfx Developers and Excel 2007 users
    • Solver Foundation Services for model interchange, feasibility analysis, and declarative parallel solving
    • Solver Runtime and Extensibility Services for third party solver integration and coordination

A Solver Foundation program is a declarative model embedded in familiar NETfx design patterns and development environments (Visual Studio 2008). The model is embeddable in any supported Solver Foundation context, from Excel 2007 to C#, F#, or any other CLS compliant programs. This leverage of models allows for rapid workflow of business decision making from quantitative analysts (quants) to line of business programmers with one modeling system and specification language. The modeling language is surfaced as a type-safe domain-specific language (DSL) in both C# and F# further easing the burden of developing accurate and performance-minded solutions. The model itself is solved by application of numerical and symbolic solvers, meta-heuristics, constraint processing algorithms, and advanced local search techniques at runtime.

Solver Foundation is delivered with a complete range of solvers written in managed code. These solvers cover several families of numerical and symbolic programming, including:
    • Revised, Simplex Linear and Mixed Integer Programming (Primal and Dual Simplex)
    • Interior Point Method Linear and Quadratic Programming
    • Constraint Programming with Exhaustive Tree Search, Local Search, and Metaheuristic Techniques
    • Compact, Quasi-Newton (L-BFGS), Unconstrained Nonlinear Programming

The solvers are unique in that the entire set was co-designed and co-developed by the same team with an eye for integration and coordination within the Solver Foundation. This affords Solver Foundation users a repertoire of solvers to use immediately in their projects without having to license specialized, third party solvers in addition to modeling and programming frameworks. This deep integration of design also permits a proper factoring or services that allow for complex model decomposition and solving from a global point of view. Whether one chooses to use the supplied solvers or integrate one’s preferred solvers into Solver Foundation – one derives the benefits of NETfx and Office integration for free. The modeler in Excel can use the same solver technology as the programmer developing the large scale system. This shortens the time to market, eliminates errors, and increases the synergy between all the people necessary to achieve the business outcome desired. Solver Foundation is the lingua franca of business planning and decision-making.

Included in this release are model pre- and post-solve services, validity checking, and transparent parallel solving via Solver Foundation directives. These directives isolate the details of scheduling and coordination from solution developers. Solver Foundation Services may be leveraged by any of the solvers and provide a rich set of tools to aide in modeling, solving, and post-optimality analysis. Solver Foundation provides scalable and performance-driven solvers while supporting integration with industry standard modeling and serialization formats. This permits users to leverage existing modeling investments directly within Solver Foundation-based solutions. With the advent of multi- and many-core hardware, Solver Foundation is automatically used to efficiently utilize those resources for parallel computation of solutions. This automatic parallelism is both declarative and transparent. No changes to the model or host application are required. Any changes to the runtime are communicated via the directives mechanism thereby totally isolating the model developer from any knowledge of multi-threaded, concurrent programming. Solver Foundation is designed to run out-of-box with self-tuning heuristics for selection of solvers and their configurations - removing the burden on developers in creating solutions and speeding time to market.

We are pleased to announce our release of Microsoft Solver Foundation. Please visit the downloads area for a free copy of the Express Edition.

-Solver Foundation Team
Last edited Jan 21 2009 at 6:52 PM  by joberon, version 33
Kirby wrote  Nov 7 2010 at 3:30 AM  

Page view tracker