Wednesday, May 02, 2007

Memory Lane

When I started my thesis, it wasn't on distributed constraint satisfaction. At least, not to the degree it is now. It was originally focused on parallelised constraint satisfaction. As part of my research into parallelised constraint satisfaction I did some work on hypertree decomposition. I've recently decided to include that back in my thesis. It's quite the trip back down memory lane to look at the program I wrote so many years ago. It was only ever used by me, yet had an interactive mode with online help.

$ ./red-decomp 

Interactive mode. Type 'help' for a list of available commands
--------------------------------------------------------------

decomp> help

Commands can be given as arguments to this program, prefixed by a '-'.
Alternatively, interactive mode is used by supplying no arguments.

Available commands are:
  build <s> <v> [ <c2> <c3> ... <cn> ]
     Generates a problem with random seed s, v variables,
     c2 extra binary constraints, c3 extra ternary
     constraints, etc.
  generate [ <v> [ <c> [ <s> ] ] ]
     Generates a problem with v variables, c extra
     constraints, and random seed s.
  write [ <filename> ]
     Writes a problem description to a file.
     If no filename is given then stdout is used.
  read [ <filename> ]
     Reads a problem description from a file.
     If no filename is given then stdin is used.
  decompose [ <w> [ <v> ] ]
     Constructs a hypertree decomposition graph for
     the current problem, with maximum width w.
     If v is supplied it sets the verbosity level.
  extract [ <filename> [ <filename> ] ]
     Extracts a hypertree decomposition from the
     above graph, and writes it in dot format to
     the first filename. If two filenames are given
     all hypertree decompositions (as a directed graph)
     is written to the second file.
  print [ <filename> ]
     Prints the decomposition graph. If a filename is
     given the graph is written to the file.
  statistics [ <filename> ]
     Writes statistics about the decomposition, like
     problem sizes, CPU times, etc. If a filename is
     given then the information is written to the file.
  test [ <filename> ]
     Writes the statistics in a really brief form
     useful for when conducintg experiment.

Pity that I forgot to document which version of the program actually worked...

No comments: