Microsoft Solver Foundation

Solver Foundation Blog

VBA integration for Solver Foundation

30 Jun 2010

In Solver Foundation 2.1 we added very basic support for VBA in the Excel Add-In. By obtaining the MSF add-in COM object you can call Solve, which has the same effect as clicking the “Solve” button in the Solver Foundation Ribbon:

Read More

Simpler Data Binding using LINQ and extension methods

29 Jun 2010

In this post we introduce some utility methods to make it easier to work with arrays in Solver Foundation programs. Most real models involve either input parameters or output decision variables that involve collections. For example, in an investment portfolio optimization model we may have an input parameter that represents ... Read More

Use indices instead of keys to reference model elements

22 Jun 2010

In the 2.1 release of Microsoft Solver Foundation, there is a bug in the sample plug-in for the XpressMPSolver. For improved performance variable/row keys are no longer specified by Solver foundation services when creating LinearModel object. In order to work correctly, the source for the XpressMPSolver plug-in should be mod... Read More

Microsoft Solver Foundation Customer Feedback Survey

08 Jun 2010

The Solver Foundation team is interested in your experience with the product. Please complete the short survey linked to below and share your thoughts on the current release and prioritization of areas for future releases.

Thanks for your time!

Read More

Relaxing mixed integer models with Solver Foundation

07 Jun 2010

Mixed integer programming (MIP) models are one of the most commonly formulated Solver Foundation model types. “Mixed” refers to the fact that such models contain both integer and continuous (real) decision variables. People frequently want to solve the “relaxation” of a MIP model: the model where all ... Read More

Math Modeling Tricks: Absolute Values

02 Jun 2010

In a previous post, we discussed modeling tricks for min-max problems.  From there, it is simple to handle absolute values as well.  Consider a problem of the form

minimize Abs... Read More

Math Modeling Tricks: Min-Max Problems

01 Jun 2010

When modeling problems, one may come to a formulation that is not directly model-able using the Solver Foundation API, but that may be reformulated as a known Solver Foundation model type (LP, QP, CSP, etc).  Consider certain min-max problems, which with a little thought can become a linear program.

In the curre... Read More

Programmatically access report data

27 May 2010

Solver Foundation Version 2.1 introduced a new API class called LinearReport that allows programmatic access of the report data. You can use this class to retreive sensitivity and infeasibility informat... Read More

Using Microsoft Solver Foundation with a WCF service application and .NET Framework 3.5

20 May 2010

When using the .NET Framework 3.5, a workaround is required to use a WCF service application with Solver Foundation. Without this workaround, the application may cause a configuration exception: "exePath must be specified when not running inside a stand alone exe". The workaround involves creating a web service to wrap ... Read More

Announcing: Technical Computing and Solver Foundation

19 May 2010

Monday was an exciting day for the Solver Foundation team as Bob Muglia announced Microsoft's Technical Computing initiative.  Microsoft is announcing its commitment to... Read More

Using Excel with a Custom SFS Solver

05 May 2010

For advanced developers, you can change the solver that is used by the Solver Foundation Excel add-in. For example, if you have developed your own solver and want to use the Excel UI, you can create a configuration file to change the default solver. Currently, there are certain limitations to this method, including not being... Read More

Solver Foundation Explained

Solver Foundation is a pure, managed code runtime for mathematical programming, modeling, and optimization. This .NET/CLR based framework provides a rich set of tools, services, and engines to aid companies in their continuous quest for operational efficiency, profit maximization, and risk management. Solver Foundation is designed to help businesses make strategic decisions. It affords its users the advantage of easy to use tools, numerically stable solver technologies and deep integration with ubiquitous information worker systems like Microsoft Office.

Solver Foundation uses a declarative programming model, consisting of simple compatible elements that are solved by application of solvers, meta-heuristics, search techniques, and combinatorial optimization mechanisms to accelerate the solution finding process. 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.

Solver Foundation consists of a series of layered services that efficiently divide the work of modeling and solving. The following system diagram describes the extensible architecture.


Solver Foundation Diagram


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, services for model interchange, feasibility analysis, declarative parallel solving, and extensibility services for third party solver integration.

The main developer interface is the Solver Foundation Services (SFS): essentially a runtime API that augments the capabilities of individual solvers with framework-level model analysis and meta-heuristics. In short, we abstract the complexities of optimization so users can focus on modeling and solving their decision problems. Key features in the SFS include:


Easy data binding. SFS allows easy LINQ data binding of model parameters and delivery of results in multiple formats

Solver/Capability Selection. SFS will automatically analyze models and determine which solver is most appropriate. Advanced Modelers can optionally choose specific solvers, and solver attributes

Transparent Parallelism. SFS will manage all threading, many-core, synchronization, and scheduling around the solvers and model execution

Solver Plug-in Capability. Solver Foundation allows new or existing 3rd party solvers to plug into the SFS directly, avoiding the need to learn a new modeling language or the significant overhead in managing solver specific solutions. In v1.1, we included a collection of certified partner wrappers for Gurobi and Mosek ™. In addition, we included reference wrappers for CPLEX ® , Xpress-MP ™, and lp_solve

Model/Solver Reports and Analysis. SFS can report information about solver behavior and results, and provide additional information about solutions, including sensitivity

Type safe version of the Optimization Modeling Language (OML). The SFS interface provides the same facilities as OML, but adds type checking and higher-level constructs

Simulation. We introduced stochastic programming through our OML and SFS layers to provide Monte Carlo simulation capabilities

Solver Foundation also comes with a Microsoft Office add-in via Excel that combines the power of Solver Foundation and Excel to provide a complete modeling environment. Key features in the Excel add-in include:

Modeling Editor. We integrated a modeling pane to vastly simplify the modeling experience. We have also included a modeling syntax checker and other similar features exposed through our ribbon bar for Excel

Excel Cell Binding. Range binding of static or dynamic data to and from the model

Automatic Results and Report generation. All results, reports, and sensitivity details are displayed on separate Excel sheets for easy viewing or integration into workflow systems

Leverages the SFS. By leveraging the SFS, Solver Foundation for excel will continue to see functional parity. All solvers currently enabled within the SFS are exposed through the Add-in

Import/Export capabilities. Solver Foundation for excel supports MPS, QPS, and OML formats

Deployement capabilities. Solver Foundation allows a user to export directly to SharePoint (via our script-safe OMLX format) or Visual Studio C# application

At the base of Solver Foundation is a collection of solvers: engines embodying numerical, symbolic and search algorithms. Use of the solvers does not require advanced training and they are designed to be used from the Solver Foundation Services and Modeling layers of the system. Low-level access to the solvers is also provided. Solver Foundation’s intrinsic solvers are written in managed code , covering several families of numerical and symbolic programming.

Revised Simplex Linear Programming (Primal and Dual Simplex)

Interior Point Method Linear, Quadratic, and Second Order Conic Programming

Constraint Programming with Exhaustive Tree Search, Local Search, and Metaheuristic Techniques

Compact, Quasi-Newton (L-BFGS), Unconstrained Nonlinear Programming

Mixed Integer Programming.

Gurobi Mixed Integer Programming Solver. We partnered with Gurobi Optimization, a premeir Solver Foundation partner, to provide their Mixed Integer Programming solver through our Solver plug-in SDK. The Gurobi MIP solver is included in this release as the default MIP solver

Stochastic Programming

An extensive set of documentation and samples are included in each edition of Solver Foundation – please refer to the specific installation instructions for more details.

Solver Foundation Team

  

© 2009 Microsoft Corporation. All Rights Reserved. | Terms of Use | Trademarks | Privacy Statement