PascGalois Zn Help: 2-D Cellular Automata Setup Screen
The setup screen for 2-D Automata is pictured below.
The screen is broken into three sections, options, seed and update rule.
The Options Section
The options section consists of just a couple settings that are needed to define an automaton. When graphing
an infinite automaton you will have only one option to set, the default element, but when you
are graphing a finite automaton you will also see options for wrapping, the size of the grid and the
seed placement.
- The Automata option is simply a selection between generating a finite or infinite
automaton.
- In the Overview of 1-D and 2-D Cellular Automata you saw that
whenever the update rule went "outside" the automaton it used the group identity in
the update calculation. Furthermore, as you will see in the
seed section, if there is a seed entry that is left blank some element must be placed
there as well. This program allows the user to select the element that is to be used
"outside" the automaton and in the blank spaces of the seed entries. This is
the Default element. In most cases you will use either 0 or 1 but the
program does not force this choice. Simply input the element you wish to use as the
default.
- The grid size is the size of the grid used for a finite 2-D automaton, in other words the support
of the automaton.
- If you are creating a finite automaton you can set the update
rule to either wrap or not wrap in either direction and you can set it up to twist the wrap.
The options here are
- No Wrap - No wrapping is done either horizontally or vertically.
- Cyl. Hor. / No Vert. - Horizontally wrapping is done and vertically no wrapping is done. In effect, the automaton
is graphed on a vertical cylinder.
- Cyl. Vert. / No Hor. - Vertically wrapping is done and horizontally no wrapping is done. In effect, the automaton
is graphed on a horizontal cylinder.
- Torus - Wrapping is done both vertically and horizontally. In effect, the automaton
is graphed on a torus.
- Mobius Strip Hor. / No Vert. - Horizontally wrapping is done with a single twist and vertically no wrapping is done.
In effect, the automaton is graphed on a horizontal Mobius strip.
- Mobius Strip Vert. / No Hor. - Vertically wrapping is done with a single twist and horizontally no wrapping is done.
In effect, the automaton is graphed on a vertical Mobius strip.
- Mobius Strip Hor. / Cyl. Vert. - Horizontally wrapping is done with a single twist and vertically wrapping is done.
- Mobius Strip Vert. / Cyl. Hor. - Vertically wrapping is done with a single twist and horizontally wrapping is done.
- Klein Bottle - Wrapping is done with single twists both vertically and horizontally. In effect, the automaton
is graphed on a Klein bottle..
- The seed placement allows you to automatically position the seed grid within the automaton grid. The options
are Upper Left, Upper Right, Lower Left, Lower Right, and Center. For example, say our grid is 10 X 10 and the seed is 2 X 2,
below
then Upper Left would be
Upper Right would be
Lower Left would be
Lower Right would be
and Center would be
The Seed Section
Setting the seed for a 2-D automaton is very similar to setting the seed for a 1-D automaton. The only difference is that
each level consists of a grid of values. The Seed tab looks like,
Each level of the seed represents a time-step of the automaton.
If your update rule goes back only one time-step then you will need
only one level in your seed. If you use more than one previous time-step
in the update you may want to have more than one seed level. Recall that
if the update rule must go outside the automaton (including the seed)
it will use the default element.
You can set the number of rows, columns and levels by the spinners above the
grid. Also the Viewing Level spinner tells you what level you are currently looking at.
The program can take a maximum of 100 rows, 100 columns and 20 levels. Once
the number of rows, columns and levels are selected simply fill in the grid
with the seed elements you wish to use.
The Seed Toolbar
There are five tools for the seed tab.
- The first simply clears the seed grid.
- The second fills the seed grid with random group elements.
- The third checks the syntax of the elements in the seed grid.
- Tools four and five copy the grid contents to the clipboard as either text
or LaTeX code.
The Update Rule Section
Setting the update rule for 2-D automata is similar to that for the 1-D automata.
As with the seed the only difference is that
you are working with levels of grids instead of rows. The Update Rule tab looks like,
The rule is any valid group theoretic expression that uses variable
names for the group elements and integers for the exponents or coefficients. Juxtaposition
is not recognized, you must use a * to denote multiplication.
Powers are denoted by ^ and any negative powers must be put in
parentheses. Variable names can be any string of letters. Numbers, underscores
and special characters are not permitted. For example, the following are
legitimate update rule expressions, a*b, a^2+b, b+a*b^(-1), a*b*a^(-1)*b^(-1),
and a^3+b^(-4). The following are not legitimate expressions,
a^2b and a*b*a^-1*b^-1.
The update grid is how you tell the program where to get the elements that
are to be used in the update formula. There must be one and only one X in the
entire grid and it must be on the last level of the grid, but it may be in any position on that level.
The position of the X tells the program that this is the cell to be updated. The
other entries are names of variables used in the update rule. When the program
generates its data it will start at the X and substitute the respective cell entries
in for the corresponding variables in the formula to determine the value of
the new cell.
The Update Rule Toolbar
There are five tools for the update rule tab.
- The first simply clears the update rule grid.
- The second resets the update rule grid to one of the preset update rules.
- The third checks the syntax of the update rule as well as the syntax of the
constants.
- Tools four and five copy the update rule formula, grid and constants
to the clipboard as either text or LaTeX code.
Related Links: