Back to SYMPHONY Home Page
Next: Microsoft Windows
Up: Developing a New Application
Previous: Developing a New Application
Developing a simple branch and bound solver can be done quite quickly using
the template provided in the SYMPHONY/Template/
directory. The simplest approach is to develop a sequential application,
sharing a single user data structure among all the modules. Using this
approach, an application can be developed by filling in only a few simple
functions. Here are four simple steps to get up and running.
- Set the variable USERROOT in the makefile to be
$(ROOT)/Template and type "make". Assuming that the make
file has already been modified appropriately, as described in Section
8.2, this should successfully compile the template
code, although it will not run until it is modified as described below.
- Decide what run-time parameters you might need and what data has
to be stored to describe your instance. Edit the file
Template/include/user.h, adding the appropriate fields to the
user_parameter and user_problem structure to store the
relevant values.
- Now edit the file Template/Master/master_user.c. If you choose
to have all variables in the base set (a good starting point), the only
function that really needs to be filled out initially is user_io(),
where you can read in the instance data. Note that the name of the file to
read the instance data from can be specified on the command line using the
"-F" switch. Also, check out the function
user_set_base().
- Edit the file Template/LP/lp_user.c. The function
user_create_lp() must be filled out. This is the most important
function, as it sets up the initial LP relaxation in each search node.
Now compile by by typing ``make'' (assuming that the make
file has already been modified appropriately). That's it! You should now have
a working branch and bound solver. Next you can work on filling in more
advanced functions and adding cutting planes.
Next: Microsoft Windows
Up: Developing a New Application
Previous: Developing a New Application
Ted Ralphs
2003-05-29