![]() ![]() ![]() |
Publications
by Stephen Wolfram |
Some Writings
and Speeches |
Posted to the NKS Forum
March 29, 2005
Read Forum Thread
A few weeks ago I spent a week doing another small burst of lecturing. I
was supposed to be visiting architecture schools (which was rather
interesting, but that's a different story). But a lot of other venues got
added too...
The last talk on the last day was a mathematics colloquium at Rutgers.
And being quite tired, I wanted to do something envigorating. So I
decided to try a live computer experiment.
The topic I picked was one I'd been curious about for a while: what rates
of growth can patterns produced by 1D cellular automata have?
Something like rule 30 grows by one cell on each side at each step. Rule
45 effectively grows by half a cell on the left. And, at least with k
colors, it's fairly easy to find rules that grow at fixed rational rates
of n/k cells/step.
The "power" cellular automaton on page 614 (corresponding to taking powers of 3 in base 6)
grows at Log[6, 3] cells/step. And I expect that various logs of
algebraic numbers and so on should appear in CA growth rates.
But looking through the book, one also sees examples of rules that grow
sporadically, sometimes eventually stopping altogether (e.g. the k=3, r=1
totalistic code 1599 on pages 70 and 740; see also
page 754).
But what about rules that go on growing forever? What forms of growth can
they have?
It's easy to see that for a range-r rule, the maximum distance reached
after t steps is r t, corresponding to growth at a fixed rate of r
cells/step. But other cases are certainly possible.
For example, rule 225 (see page 58) has Sqrt[t] growth.
It's fairly easy to see that the minimum rate at which the pattern from a
k-color cellular automaton can grow is Log[k, t]. (I think this was first
pointed out to me by Richard Phillips at the 2003 NKS Summer School.)
But I suspect there are all sorts of growth rates possible.
So what are they?
Well, following standard NKS methodology, the first thing is to do an
experiment. And the obvious first experiment is to look through the
simplest cellular automata, and see what growth rates they have.
And this is what I embarked on doing at my Rutgers live experiment.
Before I got started someone asked "how could this not have been
investigated before; it's such an obvious thing?". "Well", I said,
"that's something great about NKS: there are so many obvious questions
that have never been investigated before". I went on to try to explain
that coming up with obvious questions may not be quite as easy as it
seems. It requires clear thinking to come up with something that's really
simple---and the right thing to investigate.
Still, with this out of the way, we got down to experimenting.
It was an interesting dynamic. The room was full mostly of older math
professors---for whom this was a very alien experience.
In general, academic mathematicians tend to avoid saying anything unless
they can prove that what they're going to say is correct. So the live
experiment started with a rather silent---and in some cases rather
skeptical---audience.
I started off looking at the elementary cellular automata.
I defined:
LHEdge[ru_, t_] :=
If[Length[#] > 0, #[[1, 1]], 0] &[Position[#, 1, 1, 1]] & /@
CellularAutomaton[ru, {{1}, 0}, t, {All, All}]
as a way to pick out the position of the left-hand edge of the pattern.
Then I did:
Union[Table[-Differences[LHEdge[i, 20]], {i, 0, 255, 2}]]
to look at all elementary cellular automata that leave the background
invariant.
The result was a list of 6 elements, all corresponding to either no
growth, or growth at exactly 1 cell/step.
OK, so now the question was: what should we look at next?
I decided to keep the number of colors fixed at 2, but to increase the
number of neighbors: in effect to look not at k=2, r=1 CAs, but instead at
k=2, r=3/2 ones.
There are 2^2^4, or 65536 of these.
I decided to live dangerously, and just look at all of them.
So I typed:
Union[Table[-Differences[LHEdge[{i, 2, {{-1}, {0}, {1}, {2}}}, 20]], {i, 0,
2^16 - 1, 2}]]
At first, I was getting a little worried, and I started to tell a
distracting story to pass the time. But before too long my laptop did its
thing, and a result came back.
The list was of length 595.
I started explicitly plotting some of the elements of the list.
Most showed one or another kind of periodicity.
The first one that didn't was rule 10008.
And that one looked remarkably complicated.
A plot of the edge (10008edge.gif) looked quite jagged. And the whole
cellular automaton evolution (10008evol.gif) looked pretty random---like
rule 30.
![]() | ![]() |

