Microsoft Solver Foundation 3.1
Microsoft Solver Foundation 3.1 is a set of development tools for mathematical simulation, optimization, and modeling that relies on a managed execution environment and the common language runtime (CLR). You can use any CLR language including Visual C#, Visual Basic, Visual C++, Visual F#, and IronPython. Because these languages use the functionality of the .NET Framework, you can also use technologies such as ASP.NET and Silverlight in your mathematical applications.
Microsoft Solver Foundation is a versatile API that you can:
Run remotely as a service within IIS and ASP.NET.
Run through Microsoft Office as an Excel add-in.
Integrate in other .NET Framework applications.
Embed as a DSL within F#, C#, and other CLR languages.
Embed as a CLR compliant module.
For more information, see Getting Started (Solver Foundation).
Audience and Applications
Microsoft Solver Foundation is intended for many types of users including quantitative analysts, mathematical modelers, risk managers, and application developers who work on business critical systems. Solver Foundation is designed to help businesses make better decisions.
You can use it in many application areas, including:
Real-time supply-chain optimization.
Data center energy profile management.
Online advertising profit maximization.
Logistics of large conference scheduling.
Risk analysis of investment portfolios.
Graphics and machine learning.
Simulation, Optimization, and Modeling
You can use Solver Foundation to simulate problems, find the optimal maximal or minimal value of functions, and model complex systems by using decision variables and constraints. You can use linear programming, non-linear programming, quadratic programming, mixed integer linear programming, second order conic programming, compact quasi-Newton programming, or constraint satisfaction programming in your models. Microsoft has a partnership with Gurobi Optimization to provide their MIP solver in Solver Foundation, whose license automatically includes a Gurobi license.
In addition, you can simulate models and adjust the result by adding uncertainty into models to more accurately reflect reality. Solver Foundation offers simulation and stochastic programming techniques to solve and report the results of two-stage linear stochastic models.
For more information, see Developing Models using Solver Foundation.
Modeling With Project Templates
After you install Microsoft Solver Foundation, the following two new project templates are available in Visual Studio:
Solver Foundation Class Library. Contains sample code to create a model, load a model in the MPS file format, and solve LP, QP, and MIP models. You can use this project template to integrate Solver Foundation in other .NET Framework applications.
Solver Foundation Console Application. Contains sample code to create a model, load a model in the MPS file format, and load a load in the OML file format.
You can use these two project templates to develop Solver Foundation solutions.
Modeling With the Solver Foundation Excel Add-In
Solver Foundation includes an Excel add-in for Microsoft Office 2007 and Microsoft Office 2010 that provides a user interface for modeling, data binding, and syntax checking. You can use the Modeling pane to create a model and set its parameters, decisions, goals, constraints, and directives. In addition, you can import and export MPS, QPS, and OML file formats. When your model is complete, you can deploy it in the OMLX file format directly to SharePoint.
For more information, see Modeling in Excel.
Modeling With the Optimization Modeling Language (OML)
Solver Foundation includes the Optimization Modeling Language (OML) system, designed for modeling and solving. It is an algebraic modeling language that has identifiers, comments, string literals, Boolean constants, and arbitrary precision literals. Solver Foundation can transform MPS files into OML files and vice versa as needed. For more information, see Optimization Modeling Language (OML).
Modeling With Solver Foundation Services
Solver Foundation has services for model checking, parallel solving and workload scheduling, model interchange, declarative data binding via LINQ, solver selection, transparent parallelism, reporting, and eventing. There is also an extensibility framework so that you can use third-party solvers included in Solver Foundation or add additional solvers. For more information, see Developing with Solver Foundation Services (SFS).