Back to SYMPHONY Home Page
Next: How to Use This
Up: Introduction
Previous: Introduction
Introducing SYMPHONY 5.0
Welcome to the SYMPHONY user's manual. Whether you are a new user or simply
upgrading to version 5.0, this manual will help you get started with what we
hope you will find to be a very useful framework for solving mixed-integer
linear programs either using the generic tools provided or by developing a
custom branch, cut, and price algorithm. There have been some very significant
developments since the last version of SYMPHONY was released. IN particular,
SYMPHONY is now a callable library with an interface whose look and feel is
similar to other popular solvers. This change allows SYMPHONY to be used in a
variety of new and powerful ways that were not possible before. For existing
users, there have been a few minor changes to the API needed to make SYMPHONY
thread-safe. Code written for previous versions of SYMPHONY will have to be
ported. Instructions for porting from previous version are contained in the
file SYMPHONY-5.0/README-5.0. As always, these changes have
undoubtedly introduced bugs. There are now an even larger number of
configurations in which SYMPHONY can be used and we have tested many of them,
but it is simply not possible to test them all. Please keep this in mind and
report all bugs that you find. Among the new enhancements and features are:
- SYMPHONY is now a C callable library with an interface whose look and
feel is similar to other popular solvers. This interface works for SYMPHONY's
built-in generic MILP solver, as well as any customized algorithm developed by
implementing one or more of SYMPHONY's user callback functions. The interface
is exactly the same for both sequential and parallel versions of the code.
- The callable library also has a C++ interface conforming to COIN-OR's
Open Solver Interface standard for accessing LP and MILP solvers.
- SYMPHONY has been made thread-safe in order to allow multiple
environments to be opened within a single executable.
- It is now possible to stop SYMPHONY during the solution process and then
restart the computation later, even after modifying the problem data. The user
can also save warm start information outside the solver environment and then
reload it later into a different environment, in much the same way as can be
done with a simplex-based linear programming solver. This allows the user to
efficiently implement procedures, such as those for multi-criteria
optimization, in which a series of similar MILPs must be solved.
- Along with the ability to perform warm starts, the user call also define
permanent cut pools that persist between solver calls. This is useful for
situations in which a series of MILPs needs to be solved and the cuts
generated during one solution call are still valid during later calls.
- SYMPHONY now has the ability to enumerate the efficient solutions of a
bicriteria MILP if the user specifies a second objective function. This is
done using a new algorithm described in [33] and takes advantage of the
warm starting capabilities of SYMPHONY.
- SYMPHONY has a very rudimentary to perform sensitivity analysis for
MILP. This capability is till very much in the development stages, but is
present in version 5.0.
Next: How to Use This
Up: Introduction
Previous: Introduction
Ted Ralphs
2004-11-11