wiki:WikiStart

Version 128 (modified by tkr, 5 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 four 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.
  • Through a number of different modeling languages: AMPL, GMPL, GAMS, PuLP (see below).

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 either FLOPC++, an algebraic modeling language based on C++, or PuLP, a python-based modeling language. It can also be called through AMPL or GAMS using the links using the Optimization Services project. For more information on supported platforms, links to dependent projects, current version, and more, click here

Latest Releases

  • The latest stable version of SYMPHONY is SYMPHONY-latest-stable.png.
  • The latest release version of SYMPHONY is SYMPHONY-latest-release.png.
  • Click here to see the current change log.
  • See current testing status here.

Supported Platforms

  • GNU/Linux (gcc, 32- and 64-bit)
  • Microsoft Windows
    • CYGWIN (w/ gcc and cl compilers, 32- and 64-bit)
    • MinGW (w/ gcc and cl compilers, 32- and 64-bit)
    • Visual C++
  • Mac OSX (gcc and clang)

Download and Install

The easiest way to get pre-compiled binaries for various platforms is to get them as part of the COIN Optimization Suite. These binaries are the most regularly updated and there are installers available for Windows as well. Due to license incompatibilities, pre-compiled binaries lack some functionality and are not available for the distributed parallel version of SYMPHONY. If binaries are not available for your platform for the latest version and you would like to request them to be built and posted, feel free to let us know on the mailing list or by posting a ticket.

Source code can be obtained either by

  • Downloading a snapshot of the source code for the latest release version of SYMPHONY from the SYMPHONY source code download page, or
  • Checking out the latest stable source using a subversion client.

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.

cd
svn checkout https://projects.coin-or.org/svn/SYMPHONY/releases/5.5.7 SYMPHONY-5.5.7
cd SYMPHONY-5.5.7
./configure
make
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 version 10 available in the MSVisualStudio directory. First, obtain the source code using either a Windows subversion client (see the COIN-OR FAQ) or download a snapshot. In MSVC++ Version 10, open the solution file and build the SYMPHONY project. 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.

Development News

December 17, 2013

  • SYMPHONY 5.5.7 has been released.
    • More updates to build harness
    • Click here to see the diff with release version 5.5.6.

November 23, 2013

  • SYMPHONY 5.5.6 has been released.
    • More updates to build harness
    • Click here to see the diff with release version 5.5.5.

November 12, 2013

  • SYMPHONY 5.5.5 has been released.
    • More updates to build harness
    • Click here to see the diff with release version 5.5.4.

October 21, 2013

  • SYMPHONY 5.5.4 has been released.
    • Fix memory leak
    • Delete superfluous header file
    • More updates to build harness
    • Click here to see the diff with release version 5.5.3.

October 18, 2013

  • SYMPHONY 5.5.3 has been released.
    • Updates to build harness
    • Click here to see the diff with release version 5.5.2.

October 15, 2013

  • SYMPHONY 5.5.2 has been released.
    • Fix problems with Visual Studio project files
    • Update to build tools
    • Minor bug fixes
    • Click here to see the diff with release version 5.5.1.

August 3, 2013

  • SYMPHONY 5.5.1 has been released.
    • Fix bug that caused all user applications to crash
    • Click here to see the diff with release version 5.5.0.

July 16, 2013

  • SYMPHONY 5.5.0 has been released.
    • First release in the 5.5 series.
    • Improvements to preprocessing
    • Improvements to heuristics
    • Improvements to MSVC++ support
    • Bug fixes
    • Significant performance gains

June 28, 2013

  • SYMPHONY 5.4.8 has been released.
    • Updates to MSVC++ files (applications now use property sheets and VRP app file is fixed).
    • Other fixes for build tools.
    • Click here to see the diff with release version 5.4.7.

January 28, 2013

  • SYMPHONY 5.4.7 has been released.
    • Updates to documentation
    • Click here to see the diff with release version 5.4.6.

December 15, 2012

  • SYMPHONY stable version 5.5 has been released.
    • Click here to see the diff with stable version 5.4.

December 15, 2012

  • SYMPHONY 5.4.6 has been released.
    • More fixes to allow use of CPLEX as LP solver
    • Fixes to interface with GMPL
    • Click here to see the change set for this release.

August 9, 2012

  • SYMPHONY 5.4.5 has been released.
    • Fixes to allow use of CPLEX as LP solver
    • Fixes to interface with GMPL
    • Click here to see the change set for this release.

February 10, 2011

  • SYMPHONY 5.4.4 has been released.
    • Fixes for build system
    • Other minor fixes
    • Click here to see the change set for this release.

November 4, 2011

  • SYMPHONY 5.4.3 has been released.
    • Updates to documentation.
    • Fix to allow box-constrained integer programs.
    • Fix for GMPL integration
    • Fix for readline versions
    • Click here to see the change set for this release.

October 16, 2011

  • SYMPHONY 5.4.2 has been released.
    • Updates to MSVC++ version 10 files
    • Click here to see the change set for this release.

September 20, 2011

  • SYMPHONY 5.4.1 has been released.
    • Addition of MSVC++ version 9 files
    • Click here to see the change set for this release.

July 18, 2011

  • SYMPHONY 5.4.0 has been released.
    • License has been changed to the EPL
    • Support for MSVC++ version 10 added
    • Support for BuildTools version 0.7 to incorporate recent enhancements, including proper library versioning in Linux, prohibiting installation of private headers, etc.
    • Enhancements to unit testing.
    • Updating externals to new stable versions of dependent projects.
    • Minor bug fixes

Archived news


Licensing and Authors

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

The code is currently maintained by Ted Ralphs, Menal Guzelsoy, and Ashutosh Mahajan 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.


Acknowledgements

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.

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or the state of Texas.== News ==

Attachments (1)

Download all attachments as: .zip