src/SYMPHONY/README.md

SYMPHONY Version 5.6.10 README

Welcome to SYMPHONY. SYMPHONY is distributed under the Eclipse Public License and is freely redistributable. All source code and documentation is Copyright 2000-2015 by Ted Ralphs and others. This README may be redistributed freely.

DOCUMENTATION

If you have downloaded a source distribution, LaTex source for the full documentation is available in the SYMPHONY/Doc/ subdirectory. Quick start guides and pointers to other on-line documentation can be found at the project Wiki:

https://projects.coin-or.org/SYMPHONY

The on-line version of the manual is available here:

http://www.coin-or.org/SYMPHONY/man-5.6/

What follows is a very brief and possibly out-of-date quick summary of installation and usage. Please see the documentation for more details.

INSTALLATION

If you downloaded a source distribution and would like instructions on building SYMPHONY or you downloaded a binary distribution and would like to know how to install it, please see the INSTALL file.

USING SYMPHONY

Using SYMPHONY from the command line

To use SYMPHONY as a generic solver, type the executable name on the command line, followed by one or more of the command-line switches. On the command-line, there is one required switch---you must specify the location of the input file by using either "-F 'filename'" (MPS file or automatic detection with file extension) or "-L 'filename'" (LP format). If the "-D" switch is also present, the file will be assumed to be a GMPL model file with the data file specified after the "-D" switch. In LINUX, the following command would solve the instance "sample.mps"

symphony -F sample.mps

The remaining switches are used to set SYMPHONY's native parameters on the command line. Below is a list of these parameters. This list can also be obtained by executng

symphony -h

Note that all SYMPHONY parameters are denoted by a lowercase letter. Many other parameters can be set with the use of a parameter file (specified with -f). These parameters are listed in the SYMPHONY user's manual.

symphony [ -FL file ] [ -f parameter_file_name ]
        [ -hd ] [-a 0/1] [-b 0/1 ] [-s cands] [-l 0/1] [ -q 0/1 ] [ -r 0/1]
        [-j 0/1 ] [ -e n ] [ -i iters ] [ -t time ] [ -g gap ] [ -n nodes ]
        [ -u ub ] [ -p procs ] [ -k rule ] [ -v level ] [ -c rule ]
        [ -m max ] [ -z n ] [-o tree_out_file]


        -F model: model should be read in from file 'model'
                  (MPS format is assumed unless -D is also present)
        -L model: LP format model should be read in from file 'model'
        -D data: model is in AMPL format and data is in file 'data'
        -T dir: run test with MIPLIB3 models
        -h: help
        -f file: read parameters from parameter file 'file'
        -d: stop at first feasible solution
        -a 0/1: whether to use primal heuristics
        -b 0/1: whether to use reliability branching
        -s cands: use at most 'cands' candidates for strong branching
        -l 0/1: whether to impose a limit on strong branching time
        -q 0/1: whether or not to tighten root bounds
        -r 0/1: whether or not to do reduced cost tightening
        -j 0/1: whether or not to generate cgl cuts
        -e n: set pre-processing level to 'n'
        -i iters: allow a max of 'iters' iterations in presolve
        -t time: set wallclock time limit to 'time'
        -g gap: set gap limit to 'gap'
        -n nodes: set node limit to 'nodes'
        -u ub: use initial upper bound 'ub'
        -p procs: allow 'procs' additional threads or processors
        -k i: use node selection rule 'i'
        -v n: set verbosity to level 'n'
        -c i: use rule 'i' to compare candidates
        -m max: allow a max of 'max' cuts to enter per iteration
        -z n: set diving threshold to 'n'
        -o file: output vbc-like tree information to file 'file'

Using the SYMPHONY interactive optimizer

To use SYMPHONY's Interactive shell, run the executable name without any command line arguments. Then type "help" or "?" to see a list of available commands which are as follows for this version:

    load      : read a problem in mps or ampl format
    solve     : solve the problem
    lpsolve   : solve the lp relaxation of the problem
    set       : set a parameter
    display   : display optimization results and stats
    reset     : restart the optimizer
    help      : show the available commands/params/options  

    quit/exit : leave the optimizer

So, if you want to load and solve an ampl/gmpl file, you will need to type "load sample.mod sample.dat" and then "solve".

Using the callable library

To use SYMPHONY as a generic callable library, compile SYMPHONY as described above. The library that is created along with the solver itself can be linked to using the API described in the user's manual. For examples of using the callable library in this way, see the Examples/ subdirectory.

DEVELOPING CUSTOM APPLICATIONS

To customize SYMPHONY by implementing the custom callback functions, simply modify the files in the SYMPHONY/Applications/USER/ subdirectory, as described in the user's manual and follow the compilation procedures in the file SYMPHONY/Applications/USER/README. There are a number of sample applications available as examples of how to do this kind of development with SYMPHONY. These include solvers for the matching problem, the set partitioning problem (simple and advanced versions), the vehicle routing and traveling salesman problems, and the mixed postman problem. These applications are distributed as separate packages and can be downloaded from http://www.branchandcut.org. There is a white paper that guides the user through the development of the matching solver.

CURRENT TESTING STATUS

SYMPHONY can now be used in a very large number of possible configurations and we simply aren't able to test them all. Below is a rough idea of the testing status of various configurations to date. If you need a certain configuration, I would be happy to help you get it running. Please let me know.

LP INTERFACES

The native interfaces for OSL and CPLEX have now been deprecated Only LP solvers with OSI interfaces are supported

Well tested: CPLEX, CLP

Well tested, but have some stability or other issues: GLPK

Compiled, but not well tested: SPX

TESTED CONFIGURATIONS

SEQUENTIAL

Known configurations that build and pass unit test

SHARED MEMORY PARLLEL (OpenMP)

Builds and passes unit test with gcc 4.* and CLP on LINUX.

DISTRIBUTED MEMORY PARALLEL (PVM)

Known configurations that build and pass unit test

APPLICATIONS

CUT GENERATORS

Cut generators are supplied by the Cut Generation Library (CGL). The cut generators that are turned on by default have been well tested. Two cut generators that are part ofthe CGL are turned off by default because of known issues. These are lift and project cuts and the simple rounding cuts. The generator for Gomory cuts works well, but has somenumerical issues. We found a few cases where the optimal solution was not found when using the Gomory cut generator, especially in combination with CPLEX. If the solver is not performing as it should, try turning off some of the cut generators to see if that fixes the problem.

EXTERNAL COIN-OR LIBRARIES

See the Depdencies file for a list of the external COIN-OR libraries on which SYMPHONY depends.

SUPPORT

LIST SERVE

There is a list serve for SYMPHONY users. To subscribe, go to http://list.coin-or.org/mailman/listinfo/coin-symphony

AUTHORS

SYMPHONY was jointly developed by Ted Ralphs (ted@lehigh.edu) and Laci Ladanyi (ladanyi@us.ibm.com). Menal Guzelsoy (menal.guzelsoy@gmail.com) and Ashutosh Mahajan (amahajan@iitb.ac.in.edu) have been instrumental in development since version 5.0.

BUG REPORTS

To report a bug please file a ticket at

https://projects.coin-or.org/SYMPHONY/newticket

Please note the version of SYMPHONY you are using when filing the ticket.

CHANGELOG

Release 5.6.10

Release 5.6.9

Release 5.6.8

Release 5.6.7

Release 5.6.6:

Release 5.6.5:

Release 5.6.4:

Release 5.6.3:

Release 5.6.2:

Release 5.6.1:

Release 5.6.0:

Release 5.5.7:

Release 5.5.6:

Release 5.5.5:

Release 5.5.4:

Release 5.5.3:

Release 5.5.2:

Release 5.5.1:

Release 5.4.8:

Release 5.4.7:

Release 5.5.0:

Release 5.4.6:

Release 5.4.5:

Release 5.4.4:

Release 5.4.3:

Release 5.4.2:

Release 5.4.1

Release 5.4.0:

Release 5.3.4:

Release 5.3.3:

Release 5.3.2:

Release 5.3.1:

Release 5.3.0:

Release 5.2.4:

Release 5.2.3:

Release 5.2.2:

Release 5.2.1:

Release 5.2.0:

Release 5.1.10:

Release 5.1.9:

Release 5.1.8:

Release 5.1.7:

Release 5.1.6:

Release 5.1.5:

Release 5.1.4:

Release 5.1.3:

Release 5.1.2:

Release 5.1.1:

Release 5.1.0:



Try the lpsymphony package in your browser

Any scripts or data that you put into this service are public.

lpsymphony documentation built on Nov. 8, 2020, 5:57 p.m.