Another trick point concerns boundary conditions. Since in a practical computer one can use only a finite array of cells, one must decide how the rule is to be applied to the cells at each end of the array.

A New Kind of Science, p. 866

It is indeed a trick point. To get a pure pattern of a ruleset, the number of rows and the width of the pattern must be able to fit within the finite array available. This can be a problem if the goal is to run hundreds or thousands of rows.

There are two constraints on the running of a pattern. The first is the number of rows to run for any pattern. Certain patterns, such as those in Results Group 00 and 01, don't require many rows to understand how the pattern is developing and will develop. Others, such as the pattern generated by Ruleset 124, could go on forever without repeating.

The number of rows to run is a calculated decision based on how much of the pattern to study and what computing resources are available. The second constraint, the width of the pattern, is more problematic because it impacts directly on the outcome of the pattern generation. Ideally there would be sufficient width for the specified number of rows, but if there isn't, the rows need to be truncated. While specifying a number of rows limits the total size of the pattern, it does not affect the accuracy of the pattern in the last row run. Constraining the width of a pattern, however, does have an impact on the accuracy of the pattern compared to its pure state.

The problem starts with the cells in the second row of a pattern. The rules require a predecessor and two neighbors but the cell at either end of the second row has only a precesessor and one neighbor as shown below. There is enough information to determine the rule affecting the cells in the middle (indicated by the number and color in the cell) but there's not enough information to determine the rule for the ends. If this problem isn't resolved, the pattern will continue to shrink to nothing in an inverted trianglar pattern, each row getting smaller and smaller.

S | ||||||||||

?? | 0 | 0 | 0 | 1 | 2 | 4 | 0 | 0 | 0 | ?? |

The resolution of the problem is to pad each row with an extra cell at the ends. In this next diagram, the first row is padded with two cells which are shown in light blue. With this padding, there is sufficient information to determine the rule affecting the two end cells on the second row. Now the second row will require padding so there is enough information to determine the rules affecting the end cells of the third row. The padding cells on the second row are in light red:

S | ||||||||||||

0 | 0 | 0 | 0 | 1 | 2 | 4 | 0 | 0 | 0 | 0 |

While that solves the basic problem, the trick is determining what it is we should use to pad the rows. The solution to the first row is pretty easy. In the classical game, with a single seed, all the other cells in the first row are equivalent to passive cells, so we add another passive cell to either end. For the rest of the rows there is not enough information to specify with certainty whether the padded cells should be designated active or passive. The best we can do is make a best guess.

Some of the ways to pad the rows are discussed below. In the following diagrams, the A-A and B-B pairs indicate which cell from the pattern is used to for each padded cell.

**01. Speadsheet:** When I started running my own patterns in a spreadsheet, my approach was to use the last cell from the row before. It seemed like a good idea. The result is an edge that acts like a quasi mirror, throwing a reflection of cells back into the grid to interact with the main pattern.

A | S | B | ||||||||||

A | 0 | 0 | 0 | 0 | 1 | 2 | 4 | 0 | 0 | 0 | 0 | B |

**02. Periodic or Wrap Around:** This is the method Worlfram uses. The value of the last cell right is used to pad the left side, and the value of the last cell on the left pads the right side. The effect is similar to generating the patterns on the surface of a tube or column.

S | ||||||||||||

A | B | 0 | 0 | 0 | 1 | 2 | 4 | 0 | 0 | 0 | A | B |

**03. Duplicative:** This is the opposite of the Wrap Around. The value of the last cell on the right is used to pad the right side, and the value of the last cell on the left pads the left side. This also results in the pattern continuing within the confines of the boundary without a great deal of perturbation.

S | ||||||||||||

A | A | 0 | 0 | 0 | 1 | 2 | 4 | 0 | 0 | 0 | B | B |

There are two other alternatives:

**04. Passive:** The ends are padded with passive cells.

**05. Active:** The ends are padded with active cells.

The avowed intent of the periodic boundary is to mimic the condition of a pattern being wrapped around a cylinder. This is supposed to emulate to some degree the infinite spread of the ideal grid and does a fairly good job of preserving the integrity of the pattern, especially when anamolies are ignored. The other four are consciously flat 2D representations which do not pretend to preserve an ideal condition.

Some researchers complain that boundary conditions introduce disorganization into the elemntary patterns. Since I spend a great deal of my time studying the anamolies, I see the constraints as necessary and real, adding another level of complexity to the cellular outcome.

Home

Prev: Rules Ignored and Unused

Next: Rulesets 073 and 109