Solver Foundation version one is finally released

https://code.msdn.microsoft.com/solverfoundation

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 long time 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 aide companies in their continuous quest for operational efficiency, profit maximization, and risk management. Solver Foundation is designed to help 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 advertizing 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 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.

sfarch.jpg

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