Stallmann, Brglez, Ghosh: Example Illustrating Use of Scripts

Suppose you wanted to recreate the test data, experiments, and organization of results that led to Fig. 9(c) in the paper - ratio of tr03 and tr06 on random trees. Further details on the scripts are provided in README (or index) files in the directories containing them: scripts_generate, scripts_execute, and scripts_evaluate.

First make sure that you've taken one of the post-installation suggestions to put all our binaries into your path when needed. For example, you might say (if you're in the top-level directory and your binaries are installed in the bin subdirectory)

   setenv PROGRAM_DIRECTORY $cwd/bin
Then generate the data. Go into the scripts_generate directory and run either
   ./sbg_gen_a1            # generate all random bigraphs with a = 1
(this has been edited so that ranks 6, 7, and 8 are not generated since these would take too long) or
   ./sbg_gen_abd -d 1 # generate all random bigraphs with a = 1 (default), d = 1
   ./sbg_gen_abd -d 1.001 # generate all random bigraphs with d = 1.001
   ./sbg_gen_abd -d 1.01  # generate all random bigraphs with d = 1.01
   ./sbg_gen_abd -d 1.1   # generate all random bigraphs with d = 1.1
   ./sbg_gen_abd -d 2     # generate all random bigraphs with d = 2
   ./sbg_gen_abd -d 0     # generate all random bigraphs with d = infinity
Note: the exact same data can be regenerated in one of two ways: (a) save the seed file before running the script and restore the saved seed file before running the same script again, or (b) look at the dot file of the first graph generated, in this case GB_1_rnd1_01/GB_1_rnd1_01_0001.dot in the data subdirectory, and create a seed file from the seed given in the comment.

You can create a file that contains seeds for recreating each individual data directory (for easy replication of results), by running the sbg_harvest_seeds script. In this case, you would say

   ./sbg_harvest_seeds 'GB_1_rnd*_0[1-5]' SEEDS

Then run all the standard treatments on the classes just generated (only tr03 and tr06 are needed, but it's easier and fairly quick to do all). Go into scripts_execute (cd ../scripts_execute) and run

   ./sbg_run_all 'GB_1_rnd*_0[1-5]'
All the execution scripts are silent (except for the output files produced to summarize the results of each treatment) and this will take about half an hour on a Sparc 5 Ultra (less on a newer machine). See the description of naming conventions to make sense of GB_1_rnd*_0[1-5] ("balanced" graphs with a=1, random with any dimension, ranks 1 to 5).

Collect and summarize the results by going into scripts_evaluate (cd ../scripts_evaluate) and running

   ./sbg_summaries 'GB_1_rnd*_0[1-5]' 
This creates a SUMMARY_<class directory> file for each random tree class in the processed directory.

Finally, create the data table for the figure by running (also in scripts_evaluate)

   ./sbg_tree_ratios tr03 tr06
to produce the file GT_tr03_tr06 in the processed directory. There will be two error messages from fgrep because summary files for dimension infinity (rnd0) were not generated by the earlier script. First column of processed/GT_tr03_tr06 gives number of edges. The remaining columns report the ratios between number of crossings for the two treatments, each column representing a different tree type (the difference is only in the dimension d).
Matthias Stallmann ( Matt_Stallmann@ncsu.edu)
Last modified: Tue Sep 28 11:49:59 EDT 2004