SolverStudio is a free Excel plug-in developed at the University of Auckland [1] that supports optimization and simulation modelling in a spreadsheet using an algebraic modeling language. It is popular in education, [2] the public sector [3] and industry for optimization users because it uses industry-standard modelling languages and is faster than traditional Excel optimisation approaches. [4]
SolverStudio adds a text editor to Excel that is used to create a text-based optimization (or simulation) model using a modelling language such as PuLP, AMPL, GAMS or Julia/JuMP. SolverStudio also provides a tool for naming data on a spreadsheet (and specifying indices for this data), allowing the data to be used in the model. When the model is run, the system automatically reads input data from the spreadsheet and provides it to the model, and then writes the model results back to the spreadsheet.
SolverStudio works with a range of commercial and open source modelling systems. By default, it uses PuLP, an open-source Python COIN-OR modelling language. A second open-source Python option is Pyomo which supports non-linear and stochastic programming and provides access to a larger range of solvers. Another supported linear and non-linear modelling option is Julia/JuMP.
SolverStudio also makes the two popular commercial modelling languages, AMPL and GAMS available to Excel users. SolverStudio allows models written using these languages to be solved on the user's own PC, or in the cloud using NEOS. [5]
The GNU clone of AMPL, GMPL (GNU MathProg Language) is included with SolverStudio.
SolverStudio includes the open-source COIN-OR CMPL modelling language, and the Python-based SimPy simulation language. SolverStudio supports general programming using both Python and IronPython, allowing these programming languages to be used to script Excel using the standard VBA interfaces.
The GNU Linear Programming Kit (GLPK) is a software package intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the form of a callable library. The package is part of the GNU Project and is released under the GNU General Public License.
AMPL is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing . It was developed by Robert Fourer, David Gay, and Brian Kernighan at Bell Laboratories. AMPL supports dozens of solvers, both open source and commercial software, including CBC, CPLEX, FortMP, MOSEK, MINOS, IPOPT, SNOPT, KNITRO, and LGO. Problems are passed to solvers as nl files. AMPL is used by more than 100 corporate clients, and by government agencies and academic institutions.
IBM ILOG CPLEX Optimization Studio is an optimization software package.
The general algebraic modeling system (GAMS) is a high-level modeling system for mathematical optimization. GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems. The system is tailored for complex, large-scale modeling applications and allows the user to build large maintainable models that can be adapted to new situations. The system is available for use on various computer platforms. Models are portable from one platform to another.
SNOPT, for Sparse Nonlinear OPTimizer, is a software package for solving large-scale nonlinear optimization problems written by Philip Gill, Walter Murray and Michael Saunders. SNOPT is mainly written in Fortran, but interfaces to C, C++, Python and MATLAB are available.
Computational Infrastructure for Operations Research (COIN-OR), is a project that aims to "create for mathematical software what the open literature is for mathematical theory." The open literature provides the operations research (OR) community with a peer-review process and an archive. Papers in operations research journals on mathematical theory often contain supporting numerical results from computational studies. The software implementations, models, and data used to produce the numerical results are typically not published. The status quo impeded researchers needing to reproduce computational results, make fair comparisons, and extend the state of the art.
Algebraic modeling languages (AML) are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation. One particular advantage of some algebraic modeling languages like AIMMS, AMPL, GAMS, Gekko, MathProg, Mosel, and OPL is the similarity of their syntax to the mathematical notation of optimization problems. This allows for a very concise and readable definition of problems in the domain of optimization, which is supported by certain language elements like sets, indices, algebraic expressions, powerful sparse index and data handling variables, constraints with arbitrary names. The algebraic formulation of a model does not contain any hints how to process it.
JModelica.org is a commercial software platform based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. The platform is maintained and developed by Modelon AB in collaboration with academic and industrial institutions, notably Lund University and the Lund Center for Control of Complex Systems (LCCC). The platform has been used in industrial projects with applications in robotics, vehicle systems, energy systems, CO2 separation and polyethylene production.
Open energy system models are energy system models that are open source. However, some of them may use third party proprietary software as part of their workflows to input, process, or output data. Preferably, these models use open data, which facilitates open science.
LINDO is a software package for linear programming, integer programming, nonlinear programming, stochastic programming and global optimization.
Pyomo is a collection of Python software packages for formulating optimization models.
JuMP is an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language. JuMP is used by companies, government agencies, academic institutions, software projects, and individuals to formulate and submit optimization problems to third‑party solvers. JuMP has been specifically applied to problems in the field of operations research.
Artelys Knitro is a commercial software package for solving large scale nonlinear mathematical optimization problems.
The NEOS Server is an Internet-based client-server application that provides free access to a library of optimization solvers. Its library of solvers includes more than 60 commercial, free and open source solvers, which can be applied to mathematical optimization problems of more than 12 different types, including linear programming, integer programming and nonlinear optimization.