#Creator: drawtiling.c
#Vax file
#Title: Fortress of order 4
8 16
AAVVAA
AVVAAVVA
AAVVAAVVAAVVAA
AVVAAVVAAVVAAVVA
VAAVVAAVVAAVVAAV
VVAAVVAAVVAAVV
VAAVVAAV
VVAAVV
All of the # lines are comments, ignored by vaxrandom but useful for
reference. The first line under the comments contains the maximum
number of rows and columns to allocate for the region. If these
numbers are too small, vaxrandom will not allocate enough space for
the matching and will return an error. If the numbers are larger than
the number of rows and columns, it is fine with vaxrandom; vaxrandom
will allocate more space than needed. The VAX characters behave in the standard way. X matches all four directions, A all directions except up, V all directions except down, < all directions except left, and > all directions except right.
Vaxrandom uses the standard Propp-Wilson algorithm by first making a perfect matching using a breadth first search and a max-flow algorithm. It reports right away if the region does not permit a perfect matching. It then computes the maximum and minimum matchings of the region and finally it raises and lowers cycles in the matchings so that the two matchings coalesce. The algorithm starts with an initial number of timesteps (remembering the random coin flips it used), and if the lower and upper matchings didn't coalesce, it goes back twice as far into the past and tries again. It continues until it succeeds.
| -vax | outputs a random perfect matching in ASCII form using brackets and AV to denote edges. This is the default. |
| -ps | outputs a random perfect matching as a postscript file. |
| -height | outputs a height function of a random perfect matching where the height of each vertex is the number of times a cycle with that vertex has been raised. The height at a vertex is -1 if the vertex is outside the region. This option is not used much anymore. |
| -seed [value] | uses the specified value as the initial random seed. This allows for the reproducibility of experiments. One bit of caution though is the seed depends on what platform you are using. |
| -initial [value] | starts the Propp-Wilson algorithm using [value] timesteps back in to the past. The default is 128. |
| -minonly | doesn't compute a random matching; only outputs the minimum matching |
| -maxonly | doesn't compute a random matching; only outputs the maximum matching |
| -showcycles | doesn't compute a random matching; only outputs the index of each cycle of the graph. Used for debugging. |
| -report | print a progress report of the
Propp-Wilson algorithm giving output like
Starting at time -128, at time -32, max is 76, min is 22, difference is 54.which shows the initial value of t, the current value of t, and the volume under the upper and lower height functions and their difference. The upper and lower matchings have coupled when their volumes are equal and the difference is 0. By looking at the report, we can see if the Propp-Wilson algorithm is close to finishing or if there is a long way to go. This is useful when computing random perfect matchings of large regions that are expected to take a long time. |
| -time | Gives the time that the Propp-Wilson reached certain points in the computation. This is also useful for large regions that are expected to take a long time. |
| -bound [value] | starts with the upper matching, randomly flips cycles for value time steps (not using Propp-Wilson) and outputs the final state of the matching. Note this does not yield a random perfect matching. |
| -version | outputs the current working version of vaxrandom. |
| -help | outputs a brief help message on how to use vaxrandom. |
athena% drawtiling -fortress 4 > fort4
athena% vaxrandom fort4
Matching 88 vertices end mark V
......................................................................
This is vaxrandom version 3.01.
The initial seed was -1954326176.
Random matching generated after 128 time steps.
#Matching
#Creator: vaxrandom.c
#Platform: sun4
#Title: Fortress of order 4
#Seed: -1954326176
#Random matching made in 128 timesteps
8 16
<><><>
A<>A<><>
A<>V<>V<>A<>AA
AV<>A<>A<>V<>VVA
VA<>VAAV<><><>AV
V<>AVVAA<>A<>V
V<>VVAAV
<><>VV
This output is a random matching of the fortess shown earlier.