The setup screen for the 1-D Automata looks like,
The screen is broken up into three sections, an options section, the seed section and the update rule 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 number of columns to use and the seed placement.
Each row 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 row in your seed. If you use more than one previous time-step in the update you may want to have more than one seed row. 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 and columns by the spinners above the
grid. The program can take a maximum of 20 rows and 100 columns. Once
the number of rows and columns are selected simply fill in the grid
with the seed elements you wish to use. For example, say we are working
in Z5, infinite automaton, our alignment is set to column, our
default element is the identity and we want the following seed.
We would change the number of rows and columns of the seed table to three
each and input the data so that our table looks like,
Once we graphed this we get the following. Note that the blank cells
in the seed table have been changed to 0, the identity element in Z5.
If we change the alignment to pin and regraph the automaton we get the following.
It looks the same except that in the pin alignment the top is pushed over a bit.
There are five tools for the seed toolbar.
The update rule is set, by default, to the Pascal's Triangle update rule. So if you never use an update rule other than Pascal's Triangle you have no need to alter this information. On the other hand, if you wish to experiment with other update rules here is how the updating system is set up.
The rule is any valid ring theoretic expression that uses variable names for the elements and integers for the exponents and constant multipliers. 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 row of the grid, but it may be in any column.
The position of the X tells the program that this is the cell to be updated. The
other table 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. For example, say we are working with Z5, infinite
automaton, using a column alignment, a seed of just a single 1 and the following
update rule.
From the grid, when we are updating a cell we will take the element from the last row and one cell to the left and substitute that element in for a in the update formula and we will take the element from the last row and one cell to the right and substitute that element in for b in the update formula. We then evaluate the formula and place the result in the X cell.
Graphing the first several rows of this automaton gives the following image.
Note that each cell is the sum (mod 5) of the elements to its NW and NE.
There are five tools for the update rule tab.