You are on page 1of 7

21/12/2022 Guide to Solvers – OpenSolver for Excel

Guide to Solvers

OpenSolver supports a wide variety of solvers for use inside Excel, and several
di erent ways in which the solver integrates with the Excel model. This page
gives information about the solvers, including its uses and limitations, to help
you nd the right solver for your problem.

Introduction

Most of the solvers need to be given a copy of your model in a form they
understand. To create this copy for linear models, OpenSolver uses an iterative
process that requires one spreadsheet re-calculation for each decision cell. This
can become slow for large models.

Versions of OpenSolver released from 2015 also include a new experimental parser
that directly translates the formulae in your spreadsheet into a form the solver
understands. This is needed non-linear models, and will, in the future, also be
available for linear ones. We can only translate formulae that both we and the
solvers understand, and so currently our parser will fail if your model uses
spreadsheet-speci c formulae such as OFFSET(), INDIRECT(), INDEX() etc.
However, if our parser works, then the solver can typically solve your problem
quickly as it doesn’t need to re-calculate the spreadsheet repeatedly.

Unlike all the other solvers, the NOMAD non-linear solver works directly with the
spreadsheet. It tries out solutions by putting them into the spreadsheet and doing
a spreadsheet recalculation. This process is often slower and less e cient than
the other non-linear solvers, but can be used to (try to) optimise even the most
complicated spreadsheets, since it can work with any model regardless of the
formulae. There are some things that can slow NOMAD down, see below for more
details.

https://opensolver.org/guide-to-solvers/ 1/7
21/12/2022 Guide to Solvers – OpenSolver for Excel

Some of our solvers are linked to the NEOS Optimization Server, a cloud-based
compute cluster that is free to use. OpenSolver can send your model to NEOS for
solving, and then bring back the answer when NEOS is nished. Note that any
model submitted to NEOS becomes publicly visible.

More detailed information on each solver is given below.

Satalia SolveEngine

SolveEngine is a new commercial online service that we are trialling with


OpenSolver; details are here.

License: Commercial

CBC

CBC (COIN-OR Branch-and-Cut) is an open-source linear and mixed-integer


programming solver actively developed by COIN-OR. Questions about CBC (and
bug reports) are best addressed using the CBC Mailing List. OpenSolver lets you
use all of the CBC command lines options.

License: EPL

Gurobi

The Gurobi Optimizer is a state-of-the-art commercial linear and mixed-integer


programming solver from Gurobi Optimization Inc. It is one of the fastest solvers
available for linear and integer problems.

License: Commercial – A valid license is required to use Gurobi in OpenSolver (a


free license is available for academic use). Once Gurobi is installed and activated,
https://opensolver.org/guide-to-solvers/ 2/7
21/12/2022 Guide to Solvers – OpenSolver for Excel

it will become available in OpenSolver.

NOMAD

NOMAD (Nonlinear Optimization by Mesh Adaptive Direct Search) is an open


source non-linear blackbox optimizer that is able to solve a variety of problem
types, including general non-linear problems.

Important: There are some additional considerations to be aware of when using


NOMAD:

Performance is much poorer on models with equality constraints – it is better


to use inequalities
NOMAD works best for models with fewer variables, even if there are lots of
complicated constraints. It is likely to be less e ective on solving models with
large numbers of variables.
If possible try  to set good both lower and upper bounds on the adjustable cells
in the model so that NOMAD knows where to search for solutions.

License: GPLv3

Bonmin

Bonmin (Basic Open-source Nonlinear Mixed INteger programming) is an


experimental open-source solver developed by COIN-OR that aims to solve
mixed-integer non-linear problems, where the objective and constraints are
twice continuously di erentiable functions. It uses the very successful IPOPT
non-linear solver.

License: EPL

https://opensolver.org/guide-to-solvers/ 3/7
21/12/2022 Guide to Solvers – OpenSolver for Excel

Couenne

Couenne (Convex Over and Under ENvelopes for Nonlinear Estimation) is an


experimental open-source solver from COIN-OR that seeks to solve mixed-
integer non-linear problems with general (non-convex) objective and constraint
functions. It uses the very successful IPOPT non-linear solver.

License: EPL

CPLEX

The IBM ILOG CPLEX Optimizer (more commonly known simply as CPLEX)  is a
high-performance mathematical programming solver for linear programming,
mixed-integer programming and quadratic programming.

IPOPT (via Bonmin/Couenne)

IPOPT is a very successful non-linear solver. OpenSolver makes IPOPT available


via the Couenne and Bonmin solvers, both of which have IPOPT at their core. To
use IPOPT for your model, we recommend choosing Bonmin, but not specifying
any integer/binary requirements.

Solver Summary

The following table summarizes the characteristics of the solvers:

Sensiti
Uses Uses Advanc
Non- vity Uses
Solver Linear Iterati Parsin ed
Linear Analys NEOS
on g Only
is

CBC ✓ ✓ ✓

https://opensolver.org/guide-to-solvers/ 4/7
21/12/2022 Guide to Solvers – OpenSolver for Excel

CBC using ✓ ✓ ✓
NEOS

Gurobi ✓ ✓ ✓

NOMAD ✓ ✓ ✓

Bonmin ✓ ✓ ✓ ✓

Bonmin using
✓ ✓ ✓ ✓
NEOS

Couenne ✓ ✓ ✓ ✓

Couenne
✓ ✓ ✓ ✓
using NEOS

Satalia
✓ ✓
SolveEngine

CPLEX using
✓ ✓ ✓
NEOS

Guide to the columns:

Linear/Non-Linear: Linear solvers can only be used on problems where the


adjustable cells appear linearly in the problem. If this is not the case, the linear
solvers are very likely to return meaningless results. If a linear solver is used,
there is the option to run a “Linearity Check” after the solve, which tries to
make sure the problem was indeed linear. Note that this is not guaranteed to
identify all non-linear problems.
Sensitivity Analysis: Solvers that support sensitivity analysis can produce a
Sensitivity Report (similar to the Excel Solver) detailing the shadow prices and
reduced costs of the constraints and variables respectively.
Uses Iteration: These solvers build the model by changing the variable cells
one-by-one, building the model iteratively. This requires no knowledge of the
formulae in the model, but does require that the model is linear.
Uses Parsing: These solvers build the model by reading the formulae in the
spreadsheet. They can understand a lot of Excel formulae (linear and non-

https://opensolver.org/guide-to-solvers/ 5/7
21/12/2022 Guide to Solvers – OpenSolver for Excel

linear), but do not support some functions, most notably functions like
OFFSET, INDEX, MATCH etc.
Uses NEOS: These solvers do not run on your machine, instead the model is
sent to the NEOS Optimization Server which solve the model and send the
results back to Excel. This can result in faster solve times for the model
depending on the speed of your computer, but there can be a small delay when
solving on NEOS depending on the current load on the server. Once sent to
NEOS the model becomes publicly available.
Advanced Only: These solvers are only included in the “Advanced” version of
OpenSolver (which is still free and open source!). These solvers tend to be
slightly more experimental than the others.

Parsing List

The following table contains some formulae the solvers that use parsing can
understand:

Formula Description Notes

Adds all arguments


SUM
together.

Multiplies all arguments


PRODUCT
together.

Multiplies corresponding
components in the given
SUMPRODUCT
arrays, and returns the sum
of those products.

SUMIF Adds values in a range if the Not supported by NEOS


condition is met. solvers. Limited support
when the condition relies on
decision variables as we
attempt to evaluate the

https://opensolver.org/guide-to-solvers/ 6/7
21/12/2022 Guide to Solvers – OpenSolver for Excel

condition once before


solving.

Finds the minimum number


MIN Not supported by Couenne.
from its arguments.

Finds the maximum number


MAX Not supported by Couenne.
from its arguments.

OpenSolver for Excel / Proudly powered by WordPress

https://opensolver.org/guide-to-solvers/ 7/7

You might also like