Version 38 (modified by tkr, 13 years ago) (diff)


Welcome to the SYMPHONY development home page

SYMPHONY is an open-source solver for mixed-integer linear programs (MILPs) written in C. It can be used in three different main modes:

  • As a callable library through either the native C interface or through the Osi.
  • As an interactive solver using a command-line interface.
  • As a framework to build customized solvers for specific problem classes.

SYMPHONY can be executed in either parallel (distributed or shared memory) or sequential modes and has a number of advanced features that make it unique, including the ability to

  • solve biobjective MILPs,
  • warm start the solution procedure, and
  • perform basic sensitivity analyses.

SYMPHONY links to a number of other COIN projects for additional functionality, including:

  • Clp (the default solver for LP relaxations)
  • Osi (an interface to alternative solvers for solving LP relaxations)
  • Cgl (for cut generation)
  • CoinUtils (for reading in MPS files and various utilities)

SYMPHONY can utilize the libraries of GLPK to read GMPL files (a subset of AMPL) or can be called using FLOPC++, an algebraic modeling language based on C++.


  • SYMPHONY 5.1.0 has been released! For information on this release see the README
  • Pre-compiled binaries are now available.
  • Please note that issues have been reported with compilation of version 5.1.0 on Solaris and using the automatic configure scripts with the Micrsoft compiler under CYGWIN. These issues will be addressed in the forthcoming release 5.1.1.


The current stable version of SYMPHONY is 5.1 and the current release is SYMPHONY 5.1.0.

Pre-compiled binaries for various platfrms are available from the SYMPHONY binary download page. Note that only the sequential version of the SYMPHONY generic MILP solver and callable library are available in pre-compiled for. Due to license incompatibilities, these binaries are lacking some functionality. To develop or use a SYMPHONY application, it is still necessary to obtain the source code.

Source code can be obtained either by

The recommended method is to use subversion because it makes it easier to obtain updates.

Quick Start Guide for Unix-like Environments

In a Unix-like environment (such as Linux or CYGWIN), the following commands may be used to obtain and build SYMPHONY from source using SVN in most cases.

svn checkout SYMPHONY-5.1
make install

Optionally, once could also execute make test to run SYMPHONY's unit test. For much more detailed information on custom builds (such as the parallel version), see the INSTALL file or the User's Guide.

Quick Start Guide for Microsoft Visual C++ Users

For Microsoft Visual C++ users, there project files for various version of MSVC++ available in the Win32 directory. First, obtain the source code using either a Windows subversion client (see the COIN-OR FAQ) or download a snapshot. In MSVC++ Version 6, either open the workspace file or type the following commands at a Windows command prompt in the Win32/v6 directory

msdev symphony.dsw /make "all - debug"

The code should build out of the box with default settings. The procedure for other version of MSVC++ shold be similar. For much more detailed information on custom builds (such as the parallel version), see the INSTALL file or the User's Guide.

Documentation and Tutorials

Getting More Help

  • There is a SYMPHONY user's mailing list for discussion. Please visit the mailing list home to join or view the archives.

Licensing and Authors

SYMPHONY is written in C and is distributed as open source code under the Common Public License (CPL). It is available from the COIN-OR initiative. The primary authors of the code are

The code is currently maintained by Ted Ralphs and Menal Guzelsoy at the COR@L Lab at Lehigh University.

Note that this site is a Wiki, which allows users to modify the content to correct typos, add information, or share their experience and tips with other users. You are welcome to contribute to this project webpages. To edit these pages or submit a trouble ticket, you must first register and login.

Attachments (1)

Download all attachments as: .zip