Web Resources for Students of Mathematical Programming, Optimization, and Operations Research

John W. Chinneck
Systems and Computer Engineering
Carleton University
Ottawa, Canada 


On-line Solvers (free):

NEOS: The Network-Enabled Optimization System.  An on-line system for submitting and solving various kinds of optimization problems, including LP, MIP, NLP, etc.

Online Programs and Interactive Sites: A guide to some pertinent web resources.

Optimization as an Internet Resource: web page with numerous useful links to web resources for optimization.

AMPL online : Create AMPL files off-line, then up-load and solve them at this site. A variety of solvers can be selected, including MINOS, SNOPT, Lancelot and others. Limited to 300 variables and 300 constraints and 30 seconds of execution time.


Downloadable Modelling Systems Which Include Solvers (free for student use):

AMPL: Student editions of the AMPL modelling system for various platforms. Download solvers for the AMPL system from here.

LINDO: Student editions of LP , NLP, and MILP solvers, plus the LINGO modelling language. Limited to 150 constraints and 300 variables. Windowed interface. The classic LINDO is easy to use and suitable for homework assignments.  Look for it on the downloads page: a manual is also available there.

Maximal: Student edition of the Maximal Software modelling system (MPL) coupled with a student edition of the CPLEX LP/MILP solver. Windowed interface. Limited to 300 variables and 300 constraints.

AIMMS: Student edition of the AIMMS modeling system and solvers for linear programming, mixed-integer programming, nonlinear programming and mixed-integer nonlinear programming.


Free and Open Source Linear Programming Codes:

CLP: https://projects.coin-or.org/Clp

QSOPT: http://www.isye.gatech.edu/~wcook/qsopt/

SOPLEX: http://soplex.zib.de/

GLPK: http://www.gnu.org/software/glpk/.  GLPK is also available embedded in Octave, a free and open source MATLAB clone, at http://www.gnu.org/software/octave/.

Free and Open-source Mixed-Integer Linear Programming Codes:

CBC: https://projects.coin-or.org/Cbc. CBC is a MIP framework that works with the CLP LP solver.

GLPK: http://www.gnu.org/software/glpk/glpk.html. MIP capability is built into GLPK. GLPK is also available embedded in Octave, a free and open source MATLAB clone, at http://www.gnu.org/software/octave/.

LP_SOLVE: http://lpsolve.sourceforge.net/. MIP capability is built into the LP_SOLVE.

MINTO: http://coral.ie.lehigh.edu/~minto/.  MINTO is a MIP framework which requires that a separate LP solver be attached.

SCIP: http://scip.zib.de/.  SCIP is a MIP framework which requires that a separate LP solver be attached. SCIP also incorporates many concepts from constraint programming.

SYMPHONY: http://www.coin-or.org/projects/SYMPHONY.xml.  SYMPHONY is a MIP framework that works with the CLP LP solver.

Solver Comparisons:

See Hans Mittelmann's benchmarks comparing commercial and non-commercial solvers in many categories to find the one that will work best for you.


Tutorials, Textbooks, Problem Sets:

Practical Optimization: A Gentle Introduction: Draft chapters from textbook. Covers linear programming and a bit of networks.

Advice on formulating linear programs by using building blocks called formulettes.

The linear programming FAQ page.  Includes pointers to software, test models, etc.

The nonlinear programming FAQ page. Includes pointers to software, test models, etc.

The glossary of mathematical programming terms, many not found in standard dictionaries of mathematics.

Spreadsheet Optimization: By Frontline Systems, which markets add-in solvers for Microsoft Excel.

Optimization Modelling: By Maximal Software, which markets the MPL language and attached solvers.

JE Beasley's Tutorial questions and solutions.  See also Beasley's past exams without solutions.

Bob Vanderbei's online LP book and exercises.

Carnegie-Mellon course notes and problem sets.


Other Useful Tools (free for student use):

MINOS(IIS): A modified version of MINOS which can solve LPs, and which includes special routines for analyzing infeasible LPs. Limited to 300 constraints and 300 variables. MPS file input only, which is not as convenient as a modelling language.

MProbe: for analyzing nonlinear functions of high dimension, e.g. for convexity and concavity, range of function values, constraint effectiveness, etc.


Author's homepage.

Last revised: September 27, 2011.