Version 63 (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++.


  • Click here to see the current change log.
  • See current testing status here.

December 22, 2006

  • SYMPHONY 5.1.3 has been released. This is a minor patch fix including support for compiling static executables and improved signal-catching behavior.
  • Click here to see the change set for this release.

December 11, 2206

  • SYMPHONY 5.1.2 has been released. This is a minor patch fix that just updates externals. No binaries will be released.
  • Click here to see the change set for this release.

December 9, 2006

  • SYMPHONY 5.1.1 has been released. This release includes support for
    • Compilation under the solaris operating system, with both Sun cc and gcc compilers, and on x86 architectures.
    • Compilation with the MSVC++ compiler cl using the GNU autotools under CYGWIN.
    • Compilation with the Microsoft nmake utility.
    • Compilation of the unit test in the MSVC++ IDE.
    • Compilation of the SYMPHONY Osi solver interface with the MSVC++ IDE.
  • This new release also includes updates to the User's Manual.
  • Click here to see the changeset for this release.

November 29, 2006

  • The stable version now includes support for compilation under Solaris with x86 processors, as well as support for automatic configuration and build with the Microsoft Visual C++ compiler under CYGWIN.
  • Release 5.1.1 will contain these fixes and is due out soon.

November 9, 2006

  • SYMPHONY 5.1.0 has been released! For information on this release see the README file.
  • 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.

Supported Platforms

  • GNU/Linux
  • Microsoft Windows
    • CYGWIN
    • MinGW
    • Visual C++
  • Mac OSX
  • Solaris


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

Pre-compiled binaries for various platforms 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 are 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 8, either open the solution file or type the following commands at a Windows command prompt in the Win32/v8 directory

devenv symphony.sln /make "all - debug"

The code should build out of the box with default settings. The procedure for other version of MSVC++ should 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 Additional Information

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.

The development of this software was partially supported by NSF grants DMS-9527214, DMI-0534862, and DMI-0522796, as well as Texas ATP Grant 97-3604-010.

Attachments (1)

Download all attachments as: .zip