Background on Cellular Automata

Cell automata background

All sciences try to explain larger-scale patterns in terms of interactions of component parts. Embryology tries to explain anatomical patterns by cell-cell signals and other interactions, being repeated over and over.

Computer simulations are often the only way to predict what would be the net effect if cells obey any hypothesis that someone proposes. Intuition is seldom enough to predict results of theories - and never enough to convince critics.

How do you create a computer simulation? Locations in space have to be given numerical values. For example, picture a two-dimensional field of numbers

0001111000   This field of numbers might be part of a simulation of diffusion.
1111221111   For each location, add up the 8 adjacent numbers and divide by 8.
1122222111   Then replace that number with the average of the 8 neighbors.
1123322111   Keep doing that re-calculation over and over.
1234432211   This will accurately simulate diffusion.
A better way is to take the average of the 8 neighbors, compare that result with the number these surround, and change the central number some fraction of the way toward the average of the 8 neighbors. That allows you to compare effects of different diffusion constants, or let these constants vary with direction, or be non-linear. Also, you don't have to use only integer numbers; the real numerical value assigned to a location can be 2.54321, with any number of decimal places; but round-off each number when you write it on the screen. To improve accuracy, your computer program should first recalculate the numbers at all the locations, - then change the numbers before recalculating again.

A higher level of simulation is to assign a three-dimensional location in space to each of your sub-units. This is just like the array of integers shown above, except you have three numbers stored in the computer's memory for each unit. These three numbers are the X component, the Y component, and the Z component. How would you simulate attraction forces between each unit and its 8 closest neighbors? The appropriate recalculation is almost the same as we used for diffusion.

You first calculate the distance between each pair of neighbors, using the Pythagorean formula. In other words, add up the squares of differences in X, Y and Z coordinates, and take the square root of that sum. To simulate attraction forces, your computer program causes X, Y and Z coordinates to get closer together i.e. those coordinates of one unit as compared to its 8 neighbors.

Of course, you also need to write the program such that units pull on each other in the correct directions (Hint: use the sin and cos functions). Then add up the directional components of the pulling forces for all 8 neighbors. For more accuracy, do this recalculation several times, until the resulting movement of the unit's position stabilizes.

Engineers have a name for repeated recalculation locations of parts based on pulling and pushing forces acting between neighboring units. That's called a "Finite Element Method", or a "Finite Element Simulation". Such programs are not as difficult to write as most people think. You could write one, yourself.

The programs you buy might cost thousands of dollars. Worse than that, they have linear proportionalities built into them. Linearity helps the calculations go faster, so the commercial programmers build linearity very deeply into their computer programs, so deep you can't hope to get it out. That makes it impossible for them to predict what will happen when cells pull or push on each other with forces that vary with distance according to any rule that isn't a straight line graph. Many Universities and Medical Schools are now trying to develop programs in "Biomechanical Engineering". They need knowledge like that presented above. To paraphrase a famous quote about war and generals: "Bioengineering is too important for the Biologists to leave it to the Applied Mathematicians."

Now for something simpler: Arrays whose units can have only two values.

00000000	Empty Empty Empty Empty Empty Empty Empty Empty
00011100	Empty Empty Empty Filled  Filled  Filled   Empty Empty
00001100	Empty Empty Empty Empty Filled  Filled   Empty Empty
00111000	Empty Empty Filled  Filled  Filled  Empty  Empty Empty
00011000	Empty Empty Empty Filled  Filled  Empty  Empty Empty 
00000000	Empty Empty Empty Empty Empty Empty  Empty Empty

Simple rules: 	For each square, add up number of "Filled" neighbors.
		If this number is 1,4,5,6,7, or 8, then square becomes empty.
		If this number is 3, then square becomes filled.
		If this number is 2, then square remains unchanged
Keep applying these rules, over and over. (apply the rules to the pattern produced previously by applying the same rules)

Notice that this is what a weather forecasting program does, over and over. (If each location could only have one of two possible temperatures).

This is a Cellular Automaton. It is the ground level: The simplest possible simulation. Therefore, it is important to discover unexpectedly complicated behaviors. This is the necessary first step toward making sense of more complex systems.

This particular set of rules (3 neighbors: become filled; 2 neighbors, stay same) was chosen by the great Mathematician John Conway, as being on the boundary between rules that tend to fill the whole screen and rules that tend to empty the whose screen. These rules are called The Game Of Life. The number of alternative sets of rules is a quarter million.

Is it reasonable for anyone to hope to understand Alzheimer's Disease without first experiencing the behaviors of cellular automata? I don't think so.