• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..24-Feb-2019-

Applications/H24-Feb-2019-69,77852,263

Datasets/H24-Feb-2019-137118

Doc/H07-May-2022-15,79013,061

Examples/H24-Feb-2019-1,161640

MSVisualStudio/H24-Feb-2019-4,6824,609

include/H24-Feb-2019-6,2213,999

scripts/H24-Feb-2019-1,5381,183

src/H24-Feb-2019-77,28359,692

test/H24-Feb-2019-1,6851,346

AUTHORSH A D24-Feb-201943 43

LICENSEH A D24-Feb-201911 KiB215170

Makefile.amH A D24-Feb-20194 KiB11544

Makefile.inH A D24-Feb-201942.9 KiB1,2101,030

READMEH A D24-Feb-201922.6 KiB707464

compileH A D24-Feb-20193.6 KiB14379

configH A D24-Feb-201917.6 KiB397322

config.guessH A D24-Feb-201943.5 KiB1,5171,305

config.subH A D24-Feb-201932 KiB1,6271,483

configureH A D24-Feb-20191 MiB31,34123,813

configure.acH A D24-Feb-201931 KiB973852

depcompH A D24-Feb-201915.6 KiB531330

install-shH A D24-Feb-20199 KiB324189

ltmain.shH A D24-Feb-2019191.8 KiB6,8645,416

missingH A D24-Feb-201910.8 KiB361268

symphony-app.pc.inH A D24-Feb-2019362 1311

symphony-uninstalled.pc.inH A D24-Feb-2019348 1210

symphony.pc.inH A D24-Feb-2019358 1311

README

1SYMPHONY Version 5.6.16 README
2=============================
3
4Welcome to SYMPHONY. SYMPHONY is distributed under the Eclipse Public License
5and is freely redistributable. All source code and documentation is Copyright
62000-2015 by Ted Ralphs and others. This README may be redistributed freely.
7
8DOCUMENTATION
9=============
10
11If you have downloaded a source distribution, LaTex source for the full
12documentation is available in the SYMPHONY/Doc/ subdirectory. Quick start
13guides and pointers to other on-line documentation can be found at the project
14Wiki:
15
16https://projects.coin-or.org/SYMPHONY
17
18The on-line version of the manual is available here:
19
20http://www.coin-or.org/SYMPHONY/man-5.6/
21
22What follows is a very brief and possibly out-of-date quick summary of
23installation and usage. Please see the documentation for more details.
24
25******************************************************************************
26*                              INSTALLATION                                  *
27******************************************************************************
28
29Binaries for most platforms are available for download from Bintray:
30
31https://bintray.com/coin-or/download/SYMPHONY
32
33If you downloaded a source distribution and would like instructions on
34building SYMPHONY or you downloaded a binary distribution and would like to
35know how to install it, please see the INSTALL file.
36
37*******************************************************************************
38*                             USING SYMPHONY                                  *
39*******************************************************************************
40
41****************** Using SYMPHONY from the command line **********************
42
43To use SYMPHONY as a generic solver, type the executable name on the command
44line, followed by one or more of the command-line switches. On the
45command-line, there is one required switch---you must specify the location of
46the input file by using either "-F 'filename'" (MPS file or automatic
47detection with file extension) or "-L 'filename'" (LP format). If the "-D"
48switch is also present, the file will be assumed to be a GMPL model file with
49the data file specified after the "-D" switch. In LINUX, the following command
50would solve the instance "sample.mps"
51
52symphony -F sample.mps
53
54The remaining switches are used to set SYMPHONY's native parameters on the
55command line. Below is a list of these parameters. This list can also be
56obtained by executng
57
58symphony -h
59
60Note that all SYMPHONY parameters are denoted by a lowercase letter. Many
61other parameters can be set with the use of a parameter file (specified with
62-f). These parameters are listed in the SYMPHONY user's manual.
63
64symphony [ -FL file ] [ -f parameter_file_name ]
65        [ -hd ] [-a 0/1] [-b 0/1 ] [-s cands] [-l 0/1] [ -q 0/1 ] [ -r 0/1]
66        [-j 0/1 ] [ -e n ] [ -i iters ] [ -t time ] [ -g gap ] [ -n nodes ]
67        [ -u ub ] [ -p procs ] [ -k rule ] [ -v level ] [ -c rule ]
68        [ -m max ] [ -z n ] [-o tree_out_file] [-w 0/1]
69
70
71        -F model: model should be read in from file 'model'
72                  (MPS format is assumed unless -D is also present)
73        -L model: LP format model should be read in from file 'model'
74        -D data: model is in AMPL format and data is in file 'data'
75        -T dir: run test with MIPLIB3 models
76        -h: help
77        -f file: read parameters from parameter file 'file'
78        -d: stop at first feasible solution
79        -a 0/1: whether to use primal heuristics
80        -b 0/1: whether to use reliability branching
81        -s cands: use at most 'cands' candidates for strong branching
82        -l 0/1: whether to impose a limit on strong branching time
83        -q 0/1: whether or not to tighten root bounds
84        -r 0/1: whether or not to do reduced cost tightening
85        -j 0/1: whether or not to generate cgl cuts
86        -w 0/1: whether or not to use hot starting in strong branching
87        -e n: set pre-processing level to 'n'
88        -i iters: allow a max of 'iters' iterations in presolve
89        -t time: set wallclock time limit to 'time'
90        -g gap: set gap limit to 'gap'
91        -n nodes: set node limit to 'nodes'
92        -u ub: use initial upper bound 'ub'
93        -p procs: allow 'procs' additional threads or processors
94        -k i: use node selection rule 'i'
95        -v n: set verbosity to level 'n'
96        -c i: use rule 'i' to compare candidates
97        -m max: allow a max of 'max' cuts to enter per iteration
98        -z n: set diving threshold to 'n'
99        -o file: output vbc-like tree information to file 'file'
100
101************ Using the SYMPHONY interactive optimizer ************************
102
103To use SYMPHONY's Interactive shell, run the executable name without any
104command line arguments. Then type "help" or "?" to see a list of available
105commands which are as follows for this version:
106
107	load      : read a problem in mps or ampl format
108	solve     : solve the problem
109	lpsolve   : solve the lp relaxation of the problem
110	set       : set a parameter
111	display   : display optimization results and stats
112	reset     : restart the optimizer
113	help      : show the available commands/params/options
114
115	quit/exit : leave the optimizer
116
117So, if you want to load and solve an ampl/gmpl file, you will need to type
118"load sample.mod sample.dat" and then "solve".
119
120************************ Using the callable library **************************
121
122To use SYMPHONY as a generic callable library, compile SYMPHONY as described
123above. The library that is created along with the solver itself can be linked
124to using the API described in the user's manual. For examples of using the
125callable library in this way, see the Examples/ subdirectory.
126
127*******************************************************************************
128*                      DEVELOPING CUSTOM APPLICATIONS                         *
129*******************************************************************************
130
131To customize SYMPHONY by implementing the custom callback functions, simply
132modify the files in the SYMPHONY/Applications/USER/ subdirectory, as described
133in the user's manual and follow the compilation procedures in the file
134SYMPHONY/Applications/USER/README. There are a number of sample applications
135available as examples of how to do this kind of development with SYMPHONY.
136These include solvers for the matching problem, the set partitioning problem
137(simple and advanced versions), the vehicle routing and traveling salesman
138problems, and the mixed postman problem. These applications are distributed as
139separate packages and can be downloaded from http://www.branchandcut.org.
140There is a white paper that guides the user through the development of the
141matching solver.
142
143*******************************************************************************
144*                         CURRENT TESTING STATUS                              *
145*******************************************************************************
146
147SYMPHONY can now be used in a very large number of possible configurations and
148we simply aren't able to test them all. Below is a rough idea of the testing
149status of various configurations to date. If you need a certain configuration,
150I would be happy to help you get it running. Please let me know.
151
152LP INTERFACES
153=============
154
155**The native interfaces for OSL and CPLEX have now been deprecated**
156**Only LP solvers with OSI interfaces are supported**
157
158Well tested: CPLEX, CLP (through the Open Solver Interface)
159
160Well tested, but have some stability or other issues: GLPK
161
162Compiled, but not well tested: SPX
163
164TESTED CONFIGURATIONS
165=====================
166
167SEQUENTIAL
168
169Known configurations that build and pass unit test
170
171Sequential configurations are now automatically built and tested on Linux, OS X, and Windows using
172 * [Travis-CI](https://travis-ci.org/coin-or/symphony)
173 * [Appveyor](https://ci.appveyor.com/project/tkralphs/symphony)
174
175SHARED MEMORY PARLLEL (OpenMP)
176
177Builds and passes unit test with gcc 4 and 5 and CLP on LINUX.
178
179DISTRIBUTED MEMORY PARALLEL (PVM)
180
181Known configurations that build and pass unit test
182
183- gcc 4.* on LINUX with PVM 3.4
184
185APPLICATIONS
186============
187
188SYMPHONY (used as a generic MILP solver): Well tested.
189
190MATCH (matching): Tested, but not very extensively.
191
192MPP (mixed postman problem): Tested, but not very extensively.
193
194VRP (vehicle routing problem): Well tested.
195
196CNRP (capacitates network routing problem): Well tested.
197
198MCKP (multi criteria knapsack problem): Well tested.
199
200SPP (set partitioning problem): Tested, but not very extensively.
201
202SPP+CUTS (set partitioning problem with cutting planes): Tested, but not very
203extensively.
204
205CUT GENERATORS
206==============
207
208Cut generators are supplied by the Cut Generation Library (CGL). The cut
209generators that are turned on by default have been well tested. Two cut
210generators that are part ofthe CGL are turned off by default because of known
211issues. These are lift and project cuts and the simple rounding cuts. The
212generator for Gomory cuts works well, but has somenumerical issues. We found a
213few cases where the optimal solution was not found when using the Gomory cut
214generator, especially in combination with CPLEX. If the solver is not
215performing as it should, try turning off some of the cut generators to see if
216that fixes the problem.
217
218EXTERNAL COIN-OR LIBRARIES
219==========================
220
221See the Depdencies file for a list of the external COIN-OR libraries on which
222SYMPHONY depends.
223
224*******************************************************************************
225*                                 SUPPORT                                     *
226*******************************************************************************
227
228LIST SERVE
229
230There is a list serve for SYMPHONY users. To subscribe, go to
231http://list.coin-or.org/mailman/listinfo/coin-symphony
232
233AUTHORS
234
235SYMPHONY was jointly developed by Ted Ralphs (ted@lehigh.edu) and Laci Ladanyi
236(ladanyi@us.ibm.com). Menal Guzelsoy (menal.guzelsoy@gmail.com) and Ashutosh
237Mahajan (amahajan@iitb.ac.in.edu) have been instrumental in development since
238version 5.0.
239
240BUG REPORTS
241
242To report a bug please file a ticket at
243
244https://projects.coin-or.org/SYMPHONY/newticket
245
246Please note the version of SYMPHONY you are using when filing the ticket.
247
248ACKNOWLEDGEMENTS
249
250SYMPHONY was developed with support from
251
252* National Science Foundation (Grants CMMI-1435453, CMMI-0728011, DMI-0522796, DMI-0534862, DMS-9527124, CMMI-1130914)
253* Texas ATP Grant 97-3604-010
254* Cornell University
255* Lehigh University
256* Zuse Institute Berlin
257* Research Campus Modal "Mathematical Optimization and Data Analysis
258Laboratories" funded by the German Federal Ministry of Education and Research
259(BMBF Grant 05M14ZAM) and by the DFG SFB/Transregio 154
260
261WHAT'S NEW
262==========
263
264# Release 5.6.16
265  * Fix problem with appveyor configuration
266
267# Release 5.6.15
268  * Fix for configuration issue with OpenMP when building with Visual Studio
269    compiler under Msys2
270  * Fix for bugs in PVM version
271  * Fix for bugs in computing lower bounds
272  * Fix for compilation error with gcc 6
273  * Other minor fixes
274  * Enabling binary uploads with BinTray
275
276# Release 5.6.14
277  * Fixing small bug with re-setting environment in user applications.
278  * Fixing some memory errors arising with applications when extra variables are used.
279  * Fixing small bug with tracking variable indices in branching.
280  * Moving code inside critical block to prevent memory access errors in shared memory parallel mode.
281  * Added switches for turning hot starting on and off
282  * Updates to documentation
283  * Small fixes
284  * Added support for Travis and Appveyor
285
286# Release 5.6.13
287  * Release to update externals and pick up bug fixes in other projects
288
289# Release 5.6.12
290  * Fixed function for determining duals and reduced costs.
291  * Making it possible to build with cut validity checking enabled.
292  * Fixed bug with re-using of environment for new instances.
293  * Added parameter that allows saving of LP relaxations for debugging.
294  * Added function for writing LP files.
295  * Fixed bug that arose when we fixed a variable in strong branching (now, we keep going with LP loop when this happens).
296  * Fixed long-standing bug that arose when child 0 could be pruned while generating children.
297
298# Release 5.6.11
299  * Updated externals
300
301# Release 5.6.10
302  * Fixed bug with using more the 1 process in PVM
303  * Print to stderr on ctrl-c
304  * Fixed double free with prep level < 1
305
306# Release 5.6.9
307  * Fixed memory leak
308  * Fixed double free when nodes are retained in memory after pruning
309  * Added ability to access solution pool after solve to retrieve additional suboptimal solutions.
310  * Updates to documentation
311
312# Release 5.6.7
313  * Fix to dependency linking.
314  * Fix for installation with ```DESTDIR```
315
316# Release 5.6.7
317  * Fixes to distributed parallel (PVM) version.
318  * Enable primal heuristics in distributed version.
319  * Update externals to most recent stables.
320  * Make dependency linking default.
321
322# Release 5.6.6:
323
324 * Disabling pre-processor for multicriteria instances.
325
326# Release 5.6.5:
327
328 * Added explicit dependence on libgomp, which is needed for linking with
329compilers that don't supprt OpenMP (clang on OS X)
330
331# Release 5.6.4:
332
333 * Fix to pkgconfig file to add flags for OpenMP.
334
335 * Fixes for documentation.
336
337 *  More fixes for dependency linking.
338
339# Release 5.6.3:
340
341 * Fixes to applications to allow some preprocessing, which is needed for
342some primal heuristics to work.
343
344 * Fixes to preprocessor settings so that the minimal amount of preprocessing
345is always done.
346
347 *  Fixes to some methods so they still work preprely even when preprocessing is
348not done.
349
350 *  Fixes to pre-processor for applications that construct the LP relaxation
351algorithmically.
352
353 * Fix to pkgconfig file for applications.
354
355 * Fix for dependency linking.
356
357 * Other small bug fixes.
358
359# Release 5.6.2:
360
361 * Updates and fixes to manual and documentation files.
362
363 * Fixes for configuring with PVM.
364
365 *  Fixes to allow dependency linking with the application library.
366
367 *  Bug fix for reliability branching.
368
369 * Bug fix for addition of column cuts
370
371 * Updates to externals to fix bugs in dependent projects.
372
373# Release 5.6.1:
374
375 * Small fixes for OpenMP
376
377# Release 5.6.0:
378
379 * Major re-design of shared memory parallel mode for increased efficiency and stability.
380
381 * Fixes for distributed memory parallel version (PVM)
382
383 *  Fixes for bicriteria version
384
385# Release 5.5.7:
386
387 * More updates to build harness
388
389# Release 5.5.6:
390
391 * More updates to build harness
392
393# Release 5.5.5:
394
395 * More updates to build harness
396
397# Release 5.5.4:
398
399 * Fix memory leak
400 * Delete superfluous header file
401 *  More updates to build harness
402
403# Release 5.5.3:
404
405 * More updates to build harness
406
407# Release 5.5.2:
408
409 * Fix problems with Visual Studio project files
410 * Update to build tools
411
412# Release 5.5.1:
413
414 * Fix bug that caused all user applications to crash
415
416# Release 5.4.8:
417
418 * Updates to MSVC++ files (applications now use property sheets and VRP app file is fixed).
419 * Other fixes for build tools.
420
421# Release 5.4.7:
422
423 * Updates to documentation
424
425# Release 5.5.0:
426
427 * Improvements to preprocessing
428 * Improvements to heuristics
429 * Improvements to MSVC++ support
430 * Bug fixes
431 * Significant performance gains
432
433# Release 5.4.6:
434 * More fixes to allow use of CPLEX as LP solver
435 * Fixes to interface with GMPL
436
437# Release 5.4.5:
438
439 * Fixes to allow use of CPLEX as LP solver
440 * Fixes to interface with GMPL
441
442# Release 5.4.4:
443
444 * Fixes for build system
445 * Other minor fixes
446
447# Release 5.4.3:
448
449 * Updates to documentation.
450 * Fix to allow box-constrained integer programs.
451 *  Fix for GMPL integration
452 *  Fix for readline versions
453
454# Release 5.4.2:
455
456 * Updates to MSVC++ version 10 files
457
458# Release 5.4.1
459
460 * Addition of MSVC++ version 9 files
461
462# Release 5.4.0:
463
464 * Change license to EPL.
465
466 * Support for MSVC++ version 10 added.
467
468 *  Support for BuildTools version 0.7 to incoorporate recent enhancements, including proper library versioning in Linux, prohibiting installation of private headers, etc.
469
470 *  Enhancements to unit testing.
471
472 * Updating externals to new stable versions of dependent projects.
473
474# Release 5.3.4:
475
476 * Fixes to the shared memory parallel version (OpenMP). It is now pretty
477stable, though some minor memory conflict conditions may arise (infrequently).
478
479 * Fixes to allow all applications to build and run properly.
480
481 *  Updates to documentation.
482
483# Release 5.3.3:
484
485 * Fixes to the build system.
486
487# Release 5.3.2:
488
489 * Fixes to the build system.
490
491# Release 5.3.1:
492
493 * Fixes to the build system.
494
495# Release 5.3.0:
496
497 * Major changes to the build system to allow buinding against installed
498binaries, provide pkg-config support, etc.
499
500# Release 5.2.4:
501
502 * Fixes to restore functionality of the bicriteria solution capability.
503
504 * Fixes to examples.
505
506# Release 5.2.3:
507
508 * Updates to manual.
509
510 * Added hooks to enable the use of VRPH (https://projects.coin-or.org/VRPH) within the VRP solver.
511
512# Release 5.2.2:
513
514 * Bug fix release.
515
516# Release 5.2.1:
517
518 * Bug fix release.
519
520# Release 5.2.0:
521
522 * SYMPHONY has a preprocessor now.
523
524 * Feasibility pump primal heuristic implemented.
525
526 *  Reliability branching is now the default branching strategy.
527
528 *  Several new statistics now part of default output.
529
530 * Correct setting of granularity of objective function value by calculating
531   GCD of coefficients.
532
533 * Several changes in management of valid inequalities, quality checks and
534   detection of duplicacy.
535
536 * Minor changes in management of LP solver interface.
537
538 * Several small bug-fixes and improvements.
539
540# Release 5.1.10:
541
542 * New dependencies.
543
544# Release 5.1.9:
545
546 * New dependencies.
547
548# Release 5.1.8:
549
550 * Introduced use of LP hot starting.
551
552 * Improved management of cut generation.
553
554 *  Updated externals
555
556 *  Minor bug fixes
557
558# Release 5.1.7:
559
560 * Minor bug fixes
561
562# Release 5.1.6:
563
564 * Only a single header file (symphony.h) needs to be installed and user
565applications only need to be able to find this one header file.
566
567 * Fixes to MSVC++ project files.
568
569 *  Removed dependence on qsortucb routines.
570
571# Release 5.1.5:
572
573 * Added support for automatic download and build of Glpk (for reading of GMPL
574files).
575
576 * Minor bugs fixed and compiler warnings eliminated.
577
578 *  Updates to MS Visual Studio files.
579
580 *  Added short installation verification test.
581
582# Release 5.1.4:
583
584 * Added ability to read files in LP format.
585
586 * Additional configuration options.
587
588 *  Support for new classes of cutting planes.
589
590 *  Improved algorithm control mechanism.
591
592 * Improved output format and additional output options.
593
594 * Improved signal handling.
595
596 * Shared memory parallel version tested with OpenMP in Linux and Windows.
597
598 * Added release configuration to MSVC++ build files.
599
600 * Improved warm starting.
601
602 * Fixes for configuration with SoPlex and Xpress.
603
604 * Fixed configuration on PowerPC architectures.
605
606# Release 5.1.3:
607
608 * Support for building static executables in Unix-like environments.
609
610 * Improved signal-catching behavior in Unix-like environments.
611
612 *  Updated documentation.
613
614# Release 5.1.2:
615
616 * Update of externals.
617
618 * Updated documentation.
619
620# Release 5.1.1:
621
622 * Fixes for building in the Solaris operating system.
623
624 * Fixes for using the GNU autotools to build with the cl compiler.
625
626 * Fixes for sym.mak file in order to allow building with MSVC++ nmake utility.
627
628 *  Fixes for building the unit test in the MSVC++ IDE.
629
630 * Updated documentation
631
632# Release 5.1.0:
633
634 * SYMPHONY now has an interactive optimizer that can be used through a
635command shell. In both the sequential and parallel configurations, the user
636can set parameters, load and solve instances interactively, and display
637results and statistics (see below).
638
639 * SYMPHONY now supports automatic configuration using the new COIN-OR build
640system and the GNU autotools.Using autotools utilities, it is now possible to
641build SYMPHONY in most operating systems and with most common compilers
642compilers without user intervention.
643
644 * Both the distributed and shared memory parallel configurations are now
645fully debugged, tested, and supported. The user can now build and execute
646custom SYMPHONY applications in parallel, as well as solving generic MILPs in
647parallel "out of the box."
648
649 * There are now additional options for warm starting. The user can trim the
650warm starting tree before starting to resolve a problem. More specifically,
651the user can decide to initiate warm starting with a predefined partition of
652the final branch-and-cut tree resulting from a previous solution procedure.
653This partition can include either a number of nodes created first during the
654solution procedure or all of the nodes above a given level of the tree.
655
656 * The COIN-OR repository, the current host of SYMPHONY has recently undergone
657some significant improvements of its own that have resulted in improved
658services to users. These include:
659
660   * SYMPHONY has a new development Web site, where users can submit trouble
661     tickets, browse the source code interactively, and get up-to-date
662     information on development. The address of the new site is
663     https://projects.coin-or.org/SYMPHONY.
664
665   * SYMPHONY is now hosted using subversion, a version control system with
666     features vastly improved over CVS, the previous hosting software. This
667     has required some reorganization and renaming of the header files.
668
669   * SYMPHONY is now more tightly integrated with other COIN-OR projects. Due
670     to improved procedures for producing stable releases, it will now be much
671     easier for us to determine the exact version of SYMPHONY and all other
672     COIN projects you are using when you report a bug.
673
674   * SYMPHONY is now distributed with all COIN software needed to build a
675     complete solver. Previously, other COIN softrware packages had to be
676     downloaded and installed separately.
677
678 * Two features have been deprecated and are no longer supported:
679
680   * The native interfaces to OSL and CPLEX are now deprecated and no longer
681supported. These solvers can be called through the COIN-OR OSI interface.
682
683   * Column generation functionality has also been officially deprecated. For
684     now, there are a number of other software packages that offer better
685     functionality than SYMPHONY for implementing branch and price algorithms.
686
687 * CHANGES TO THE USER INTERFACE (FROM SYMPHONY 5.0)
688
689   * There was one minor change to the user callback API from version 5.0 to
690     5.1. The user can now execute a primal heuristic in the
691     user_is_feasible() callback and return the solution to SYMPHONY. The API
692     for the user_is_feasible() subroutine is now
693     ```C
694     int user_is_feasible(void *user, double lpetol, int varnum, int *indices,
695		          double *values, int *feasible, double *objval,
696		          char branching, double *heur_solution)
697     ```
698Any feasible solution can be passed (in dense format) through the last
699argument to this function.
700
701   * Several new subroutines were added to the callable library API.
702
703   * The name of the header file containing the SYMPHONY API has been changed
704     from ```symphony_api.h``` to ```symphony.h``` (though the former has been
705     retained for backword compatibility purposes).
706
707