This is also a very very old post. It’s mostly here on this blog for personal reasons and entertainment puroses.
This is a migrated post from Wordpress so the formatting is sub optimal
A "new" take on the cellular automaton
Introduction
In this post ill give a short introduction to a new little cellular automaton I made up. I am fully aware that this is most likely nothing new at all (EDIT: I have been informed that this type of automaton is what is called a second order automaton). But I have had a lot of fun developing the model, implementing it and studying the results. This model which I call a look back automaton is a variation of a simple one dimensional cellular automaton. I have found some of the patterns that I observed to be very fascinating a lot of them exhibit very intricate patterns and in a some of them its easy to identify specific parts corresponding to certain reactions and in some others I have observed one rule that spontaneously gave rise to the pattern you get from binary addition. But most importantly some of the rules generate truly beautiful patterns that one could easily sell as art to some really stupid person with no taste at all.
The Java program can be found here
Overview
This model differs from the traditional one dimensional CA (from here on we will abbreviate cellular automaton by CA) in one key aspect. As the next state of a cell in a traditional CA depends only on the cells current state and that of it neighbors. But in the look back the new state of the cell depends on the current configuration of the neighborhood and the configuration of the neighborhood in the previous step/steps.
Nothing is stated regarding the size of the neighbor hood or how many steps in to the past one looks or even weather or not any previous states are "skipped". Although from here on I will only study the case for a nearest neighbor (r = 1) and a look back length of one. The number of possible rules as to be expected are 2^(2^r\*l) so for the case of the most trivial look back automaton the number of rules are 2^64 which is significantly larger than the 256 types of elementary CA that exists.
As you will see later on in the examples section most of the rules generated by the look back automaton are similar in behavior to those generated by your standard one dimensional CA although some of the patterns differ greatly construction and appearance.
Implementation
I have written an implementation of this automaton in Java using a very straightforward approach. Since there exists only a finite number of different configurations of the neighborhood and thus only a finite number of transformation rules for each configuration is possible. The easiest and most straight forward one of these is the case where there exists only two states for each cell. The rule can then be represented by a binary number that corresponds to a unique lookup table in a fairly trivial way.This is easily expandable for as system of arbitrary configurations but the implementation will be somewhat trickier.
I have chosen to let the field that hold the cells to be cyclic. The system then just needs to be given a startup configuration for the field and then one just applies the transformation rules for each cell in the last row of the field to obtain the configuration of the next row.
Examples
[caption id=”attachment_171” align=”aligncenter” width=”500”] This is just very esthetically pleasing and also quite intricate.[/caption]
[caption id=”attachment_172” align=”aligncenter” width=”500”] This rule shows several different interesting patterns.[/caption]
[caption id=”attachment_173” align=”aligncenter” width=”500”] This rule spontaneously give rise to a pattern corresponding to addition.[/caption]
You can find more examples here.
Further development
Since there exists a 2^64 number of rules for the most trivial look back configuration it would be very nice to have some reliable algorithm to search through these rules with some algorithm that can in a somewhat reliable classify the different rules according to awesomeness. I have actually made some progress devising such a algorithm but I still have some work left to do and I think that if the algorithm turns out be useful it might warrant an dedicated post.