Microsoft Solver Foundation

Microsoft Solver Foundation logo

Microsoft Solver Foundation 2.1 is a complete set of development tools for simulation, optimization, and modeling that relies on a managed code runtime. To do mathematical programming, you can use any CLI language including Visual C#, Visual Basic, Visual C++, Visual F#, and IronPython. In addition, these languages use the functionality of the .NET Framework, which provides access to key technologies such as ASP.NET and Silverlight that you can use in mathematical applications.

Solver Foundation Services (SFS) can analyze models and determine which solver is most appropriate. If you are an advanced modeler, you can choose specific solvers and solver attributes. While solving the models, SFS manages all threading, many-core, synchronization, scheduling, and model execution issues. When finished, SFS produces reports about solver behavior and results, and provides additional information about solutions, including sensitivity. Additionally, SFS allows LINQ data binding of model parameters and delivery of results in multiple formats.

Solver Foundation supports all the .NET Framework languages and provides samples in many of them. You can program in OML, F#, C#, VB, C++, IronPython, and others. If you prefer a modeling language, you can use Solver Foundation’s type safe optimization modeling language (OML).

The Solver Foundation’s integrated solvers are written in managed code and enable you to use several families of numerical and symbolic programming, including:

  • Revised simplex linear programming (primal and dual simplex).

  • Interior point method linear, quadratic, and second ordered conic programming.

  • Constraint programming with exhaustive tree search, local search, and metaheuristic techniques.

  • Stochastic programming.

  • Compact, quasi-Newton (L-BFGS), and unconstrained nonlinear programming.

  • Mixed integer programming by using the Gurobi Optimization MIP solver.

Solver Foundation allows new or existing third-party solvers to plug into the SFS directly. This feature avoids the need to learn a new modeling language and avoids the significant overhead in managing solver specific solutions. These solvers include numerical, symbolic, and search algorithms that you can use in your models. There is a collection of certified partner wrappers for Gurobi, Mosek, FICO Xpress, and LINDO, as well as reference wrapper source code for CPLEX and lp_solve.

Solver Foundation also comes with a Microsoft Office Excel add-in to provide a complete modeling environment in a familiar interface. The following sections describe the major features of the Excel add-in.

Modeling Editor

Simplifies the modeling experience by using a collection of modeling panes and includes a modeling syntax checker and other features exposed through the Solver Foundation ribbon bar for Excel.

Excel Cell Binding

Binds static or dynamic data in a range to and from the model.

Automatic Results and Report Generation

Displays all results and reports on separate Excel sheets for easy viewing, saving, or integration into other workflow systems.

Import and Export Capabilities

Supports MPS, QPS, SMPS, and OML formats. You can deploy a model from Excel directly to C#, which avoids the need for the application developer to rewrite any model code.

Improved Microsoft Office Integration

In version 2.0, you can deploy models from Excel to SharePoint by using the OMLX file to store the model and metadata. The OMLX file format provides a script-safe and secure method to transfer models between client and a server.