Microsoft Solver Foundation
Globalcompetitiveness requires that companies adopt agile techniques forplanning, scheduling, risk management, and strategic decision making.Modeling the decisions to be made and the constraints placed upon themin 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 businessvalue chain have a need for applied business insight through modeling.A modeling system that can span the entire continuum from Excelspreadsheet through production code implementing mission criticalplanning and control of business process is required to meet the needsof 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, itprovides a rich set of tools, services, and engines to aide companiesin their continuous quest for operational efficiency, profitmaximization, and risk management. Solver Foundation is designed tohelp businesses make these (near) optimal, strategic decisions. Werefer to this as adaptive business insight and planning. The possibleapplications cover a vast range: real-time supply chain optimization,data center energy profile management, online advertizing profitmaximization, logistics of large conference scheduling, transportationnetwork flows, and risk analysis of investment portfolios. There arealso direct applications to graphics and machine learning. All of thesedecisions are encoded in Solver Foundation through a declarative modelspecification, one which focuses the modeler and developer of statingthe "what" rather than the "how" of the business decision to be made.This rapidly accelerates solution engineering and increases the degreeswhat-if? analysis possible. The goal is the same in all cases: usingadvanced 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 mathematicalprogramming, modeling, and optimization. It is designed to run on NETfx3.5+ and is completely implemented in C#. It natively supports allmodern Microsoft operating systems and works especially well on 64biteditions of Windows Vista and Windows Server 2008. Solver Foundation isuseable from all CLS-compliant languages, including C#, F#, IronPython,VB.NET and managed C++. Solver Foundation is also available via avisual, 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 businesscritical scheduling, configuration, risk management, and planningsolutions. It provides services for model validation, parallel solvingand workload scheduling, model interchange, and declarative databinding via LINQ and other NETFx technologies. As an open frameworkdesigned for third party extensibility, it exposes facilities for usersto plug-in their own solvers while still leveraging all of the modelingservices and capabilities of Solver Foundation.
Building amodel in Solver Foundation is as simple as specifying the decisions tobe made, constraints to be respected, the goals to be used to evaluatecandidate proposals (solutions) and the data to be processed by themodel (historical or projected parameters). This can be done from anyCLS-compatible language and the modeler does not need to understandanything about the details of solver technologies or search strategies.The separation of concerns is total, providing a high degree ofmodularity to MSF.
Solver Foundation consists of a series oflayered services that efficiently divide the work of modeling andsolving. This allows for maximal separation of concerns in the designand future proofs Solver Foundation. The following system diagramdescribes 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
See also these related projects.