source: trunk/README @ 237

Last change on this file since 237 was 237, checked in by forrest, 13 years ago

for ampl

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1To build Cbc see INSTALL file
2
3To use Cbc you need the Cbc, Cgl, Coin and Osi libraries.  You
4will probably need Clp as well.
5
6If you are using Clp as your solver then you can make the unitTest and standalone executable by doing
7
8make solve in this directory.  This creates an executable solve.
9
10solve takes various options - try solve and then ? to get some idea of what you can do.
11solve file will do branch and bound if file is integer mps file and will do dual if non-integer mps file
12options start with - (although the code will also try without -) e.g.
13
14solve file -cuts root -solve will import file and do branch and bound with cuts only at root
15
16- by itself goes to interactive mode.
17
18If you wish to use the Cbc solver from AMPL there is a bit of work involved.  You
19will need to uncomment COIN_ampl in Makefiles/makefile.location - and also
20download the ampl glue code - see Makefiles/Makefile.location for http.  Then solve
21will assume it is being called from AMPL if the first two arguments are xxx.nl -AMPL.
22Of course "solve" is not a good name (cbc is much better but already used) so copy
23"solve" to "cbc" in ampl accessible path.
24Options may be set by e.g. option cbc_options "cuts=off log=0"
25No keywords are recognized by ampl parsing so above format should be used.
26All options are as found by "cbc(solve) " and then ?
27Current ugliness is that ampl glue code assumes "=" (on undefined keywords) so to maximize you
28would have to say "maximize=".  I will add to AMPL keywords if this interface gets much use.
29
30If you are not using Clp then fewer options are available -
31make the unitTest and standalone executable by doing
32
33make unitTest in this directory.  This creates an executable cbc.
34
35Running cbc gives you some hints.  Just do
36
37cbc -
38 
39and then try ? or setting various stuff.
40
41On Linux cbc can do file completion and line editing. 
42
43There are samples in ./Samples.  Use make DRIVER=xxxxxx where xxxxxx.cpp is driver file to
44create an executable - testit.
45
46The two simplest samples are:
47
48sample.cpp  This is a simple program to read an mps file.and solve the
49                integer problem.
50
51sample2.cpp.  This is the benchmark driver for the competition.  It overrides
52                the default branching methods and adds a (mildly useless)
53                heuristic.  It is intended to show you how to add your
54                own methods.  See CbcCompareUser.hpp for how to modify
55                choice of node from tree.  See CbcBranchUser.?pp for
56                how to modify which variable is chosen at a node.  For
57                more complex stuff such as new types of branches see
58                CbcBranchBase and CbcBranchActual in directory Cbc.
59                To see how to add heuristics see CbcHeuristicUser.?pp.
60
61                To add cut generators - define them as in Cgl and then just
62                add them as in sample2.cpp
63
64                The script "runtimes" in Samples directory will
65                run some or all of test set.  The version checked in
66                does some - just take off # to run.  An optional time
67                in minutes can be passed.
68
69
70
Note: See TracBrowser for help on using the repository browser.