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:
Post a Comment