I was reading a new paper entitle Rethinking the Role of Agent Based Modeling in Archaeology by Cegielski (@Whcegielski) and Rogers [paywall to paper] and I was struck reminiscing about my infatuation with the topic. I used to do a lot of research on ABM and particularly the philosophy of Emergence, but I have drifted away from it in recent years in favor or more quantitative/statistical/inferential methods (I am not sure if that is a suitable differentiation…) This is not to say that I didn’t enjoy every paper/presentation I have seen by the likes of@CDWren, @er_crema, @Iza_Romanowska, and Kholer & Co. Whichever the case, Cegielski and Rogers was a great way to get back into some of the happenings in ABM and I really agree with a lot of what they say. More on that in a future post.
Reading this paper reminded me of my love for Cellular Automata (CA) . I remember waiting with bated breath as Stephan Wolfram’s A New Kind Of Science hit the shelves in 2002 (you often had to physically go to book store back then). I poured over those 1200 pages and tried to figure out that the hell it meant for understanding past human experience (a work in progress). Cellular Automata, L Systems, and Complexity were all that mattered; oh the good old days… Thinking of this, my mind blended by old interest with my new obsession with all things gganimate, and this post was born! I want to implement CA in ggplot and make a gif with gganimate. Enter…
Conways’s Game of Life
Conway’s Game of Life (GOL) is the canonical example of cellular automata and the ideas of the complex being born for simple rules and high variability outcomes based on low variability initial conditions. As stated in Wikipedia, the rules of the game are:
- Any live cell with fewer than two live neighbours dies, as if caused by under-population.
- Any live cell with two or three live neighbours lives on to the next generation.
- Any live cell with more than three live neighbours dies, as if by over-population.
- Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
The GOL is a pretty standard test for coders and comp. sci. folks who what a little challenge. It has been implemented in R many time and therefore, I will steal it to make my life easier. What follows is based on John Ramey’s (@ramhiser) post Conway’s Game of Life in R with ggplot2 and animation. In this post John goes over some GOL basics and then offers his code to do what the title suggests. Thanks to John’s great work, the guts of the code had two functions for computing the GOL grids using the foreach parallel back-end; cool stuff. Then John uses ggplot2 and the animation package, but I reworked most of that to make it work with gganimate.
Better Yet!!! I watch too much TV including the Walking Dead, so I want to make a Game of Zombies! GOL but, with an afterlife…
With the options for various afterlife spans and colorBrewer colors!
Sizes, densities, intervals…