Minion search visualiser
--------------------------------------------------

Visualises a Minion search tree by displaying the domains/assignments of the
variables in a matrix.


Requiremenents
----------------------------------------

Haskell (tested with GHC 6.8) with Parsec and the gtk2hs GTK bindings. HUnit if
you want to run the unit tests. Cabal is recommended for the build.


Use
----------------------------------------

To build, run
runghc Setup.hs configure
runghc Setup.hs build
or compile it manually if you prefer.

The first commandline parameter is the number of columns to display, the second
one is the number of rows.

After you've started the program, you can select an input file by clicking the
open file icon. It expects to read the output of "minion -dumptree
yourproblem.minion". It parses the Minion output and puts each domain listed at
a search node into a cell of the grid, starting in the top left cell and moving
right, down. If there're more or fewer domains than there're cells, some domains
won't be displayed or cells will be empty -- there'll be no warning or error
message.

You can start, pause and step the animation with the controls in the toolbar.

Run the "main" function in Test.hs to run the unit tests.


Tweaks
----------------------------------------

You can tweak the display by editing the variables at the top of
MinionVisualiser.hs --
"offset" is the distance between a grid line and the contents of the cell.
"margin" is the height of the area below the grid where the number of the node
         is displayed plus the height of the toolbar.
"colWidth" is the width of a column in pixels.
"rowHeight" is the height of a row in pixels.
"delay" is the delay between displaying the domains at a search node and moving
        on to the next node in microseconds.

The standard display should work properly for variables with domains of
single-digit integers. If your domains are larger than that, you will have to
increase colWidth.


For any questions or suggestions email larsko@cs.st-andrews.ac.uk.
