Posted Sunday November 20 2022.
Here’s a nice thing I learned: Conway’s Game of Life can be represented coupled map lattice! Here’s how (in Python3): define the following 3x3 array of floats, the convolution kernel,
= [
K 1, 1, 1],
[1, 8, 1],
[1, 1, 1]
[ ]
This corresponds to a coupling parameter = 1/2 in the coupled map lattice. Next define the nonlinear activation function,
def f(u: int) -> int:
if u == 3 or u == 10 or u == 11:
return 1
else:
return 0
The idea is that we are given an array U
of 1s and 0s, which is the state of Game of Life, and at each point we count up the number of live neighbors, +8 if the center is alive and +0 otherwise, and store these values in a new array V
of the same shape. This corresponds to the Game of Life as follows:
You can represent other cellular automata like this too - see arXiv.1809.02942. I realized this after playing around with neuralpatterns.io (flashing colors warning) that lets you choose the kernel and activation function in-browser.