next up previous contents Back to SYMPHONY Home Page
Next: Microsoft Windows Up: Customizing SYMPHONY Previous: Customizing SYMPHONY

Unix

Developing a simple branch and bound solver that can read in instance data in a custom format is straightforward using the template provided in the SYMPHONY-4.0/USER/ 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 steps to make the most common custom modifications.

  1. Decide what run-time parameters you might need and what data has to be stored to describe your instance. Edit the file SYMPHONY-4.0/USER/include/user.h, adding the appropriate fields to the user_parameter and user_problem structure to store the relevant values.

  2. Now edit the file SYMPHONY-4.0/USER/Master/user_master.c. Only two function needs to be filled out initially in order to read in your data files in a custom format. The function user_io() is where you can read in the instance data, if it is in something other than MPS format (a TSPLIB file, for example). Note that the name of the file to read the instance data from can be specified on the command line using the -F option by default. Also, you'll probably need to modify the user_initialize_root_node() function to set up the root node.

  3. Edit the file USER/LP/user_lp.c. The function user_create_subproblem() must be filled out. This is the most important function, as it sets up the initial LP relaxation in each search node.

  4. You may also want to add some problem-specific cutting planes by modifying the user_find_cuts() function.

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 up previous contents
Next: Microsoft Windows Up: Customizing SYMPHONY Previous: Customizing SYMPHONY
Ted Ralphs
2003-10-16