Back to SYMPHONY Home Page
Next: Advanced Development
Up: Developing a New Application
Previous: Unix
Developing a simple branch and bound solver can be done quite quickly using
the template provided in the
SYMPHONYTemplate 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.
- First open the workspace SYMPHONY-3.0.1WIN32template.dsw and modify for your
local setup, as described in Section 8.2. Note that
you will also have to delete the file vrp.lib from the symphony
project and add template.lib. It should build right away, although it
won't run until modified as described below.
- First, decide what run-time parameters you might need and what data has
to be stored to describe your instance. Edit the file
Templateincludeuser.h, adding the appropriate
fields to the user_parameter and user_problem structure to
store the relevant values.
- Now edit the file
TemplateMastermaster_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 TemplateLPlp_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 build again and you have a working branch and bound solver! Next you can
work on filling in more advanced functions and adding cutting planes. See the
documentation for more information on this.
Next: Advanced Development
Up: Developing a New Application
Previous: Unix
Ted Ralphs
2003-05-29