next up previous contents Back to SYMPHONY Home Page
Next: Sample Applications Up: Customizing SYMPHONY Previous: Unix

Microsoft Windows

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$\backslash$USER$\backslash$ 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 some 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 USER$\backslash$include$\backslash$user.h, adding the appropriate fields to the user_parameter and user_problem structure to store the relevant values.

  2. Now edit the file USER$\backslash$Master$\backslash$user_master.c. Only two function needs to be filled out initially in order to read in your files in a custom data 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$\backslash$LP$\backslash$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 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 up previous contents
Next: Sample Applications Up: Customizing SYMPHONY Previous: Unix
Ted Ralphs
2003-10-16