Search Wiki:

Solver Foundation is a .NET library for mathematical programming and optimization. Solver Foundation provides powerful libraries for .NET developers seeking to use optimization in their solutions, making it possible for non-experts to define and solve models in their applications.

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. 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
  • 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 Excel2007 to C# and F# 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 and Local Search Techniques
  • Compact, Quasi-Newton (L-BFGS) 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.

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 to 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 Customer Technology Preview edition of Microsoft Solver Foundation. Please visit the downloads area for a free evaluation copy. Included in this CTP is an F# Optimization DSL (ODSL) including source code on how to create a DSL.
Last edited Sep 29 2008 at 9:13 PM  by joberon, version 13
Kirby wrote  Nov 7 2010 at 3:30 AM  

Page view tracker