We will be picking up where the previous post left off. As a brief summary, we are attempting to replicate the results of *Evolving Cellular Automata with Genetic Algorithms* (Mitchell, Crutchfield and Das 1996), dealing with the density classification task for 1D binary cellular automata (CAs). To put it simply, we are trying to design a ruleset such that the final configuration of a cellular automaton after *M* iterations is either all 1s or all 0s depending on which class was more common in the initial state. The caveat is that each cell in the universe can only make its decision based on the three neighbours to the left and right.

Recently I finished reading *Complexity: A Guided Tour*, by Melanie Mitchell, which reminded me a lot of *Gödel, Escher Bach* (indeed, the book is dedicated to Douglas Hofstadter). It has reminded me that **emergence** is an incredibly fascinating concept – simple individual units somehow coming together to result in complex behaviour that cannot really be explained in terms of the components. In this post, we analyse the emergent behaviour of a cellular automaton and attempt to use it to solve a simple problem.

You may have heard a mathematician or physicist (or more likely your maths teacher) describe mathematics as *beautiful*. What could they mean by this? There is just something mysteriously attractive about the purity, complexity, interconnectedness, and underlying truth of it all (“Beauty is truth,
truth beauty” - Keats).

**a python approach to XKCD’s Social Seating problem**

In this short post, I explain how to implement Conway’s Game of Life in python, using numpy arrays and matplotlib animations. I emphasise intuitive code than performance, so it could be a useful starting point for somebody to understand the logic before implementing a more efficient version.

Read more...