I am a student at Wolfram Summer School 2016. This is the project I did about the evolution of the code 1599 cellular automaton.
Introduction to the code 1599 cellular automaton
Code 1599 is a 3-color totalistic cellular automaton. With radius 1, its rule looks like this:
The rule looks very simple. However, when the simple rule combines with simple initial conditions, very complex and interesting behaviors can arise.
This is the patterns produced by code 1599 starting from a single black cell in a uniform white background. What makes this complicated evolving pattern more interesting is that it will eventually turn to repetitive patterns after nearly 10000 steps. We do not know if all initial conditions will eventually die out, or if they do, at what steps. This is the open problem.
In his book A New Kind of Science, Stephen Wolfram described code 1599 as having a "free will" pattern, and used it as an example of his idea of computational irreducibility.
Approaching the problem
In this project, we try to find a way to predict the long-term evolution code 1599 cellular automaton given only very small steps. We accomplished this by separating the status of the cellular automaton into three classes: dead, oscillates and evolving, and using a classifier to make predictions. The features of different status are extracted and represented as tensors. Using the default training set we currently have, the classifier function is able to accurately predict the status after 50000 steps by only looking at the first 1000 steps. Below is some sample test results of the prediction function:
As we can see, not only does the classifier function have a high overall accuracy, but it also makes the right prediction on the rare cases of dead and evolving. So with the default training set. we have a classifier function that can accurately predict the status of the code 1599 after 50000 steps. We might be able to make predictions for larger steps if we use better training set.
We used the prediction function on 534 initial conditions of random sizes ranging from 6 to 41, and get a prediction of 476 oscillates, 53 dead, and 5 cases of evolving. When we examine the 5 evolving initial conditions and run them to longer steps, about 100000, all of them turn to repetitive patterns. This seems to suggest that all evolving patterns will eventually turn to repetitive patterns. However, we cannot make conclusions since our classifier function is only as good as the labeled training set, and more test data is needed.
We have built a prediction function that can accurately predict the long-term behavior of the code 1599 cellular automaton, given only its initial condition run to 1000 steps. Using the default training set we can accurately predict status after 50000 steps. We can predict for larger steps if we provide training set labeled after larger steps. However, the limitation of the prediction function is that it is only as good as the labeled training set, so we cannot make definite conlusions about if all code 1599 evolving patterns will eventually turn to repetitive.
Future Direction - A suprising discovery
When finishing the prediction function, I played around with the rule by expanded the search space to initial conditions with repetitive backgrounds instead of just uniform ones, and I found some very interesting and surprising new patterns that resemble some of the elementary cellular automaton rules.
The next direction of our project would be to understand why using more complex initial conditions we would produce simple patterns resemble elementary rules that are not at all equivalent to code 1599.
- you earned "Featured Contributor" badge, congratulations !
This is a great post and it has been selected for the curated Staff Picks group. Your profile is now distinguished by a "Featured Contributor" badge and displayed on the "Featured Contributor" board.
Great post. Ive read the book and Im learning the wolfram language because I want to study the computational universe in this way. Examples like this motivate me! thanks