Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cellular Automata This is week 7 of Biologically Inspired Computing Various credits for these slides, which have in part been adapted from slides by:

Similar presentations


Presentation on theme: "Cellular Automata This is week 7 of Biologically Inspired Computing Various credits for these slides, which have in part been adapted from slides by:"— Presentation transcript:

1

2 Cellular Automata This is week 7 of Biologically Inspired Computing Various credits for these slides, which have in part been adapted from slides by: Ajit Narayanan, Rod Hunt, Marek Kopicki.

3 Cellular Automata CAs have been used for simulating fluid dynamics, chemical oscillations, crystal growth, galaxy formation, stellar accretion disks, fractal patterns on mollusc shells, parallel formal language recognition, plant growth, traffic flow, urban segregation, image processing tasks, etc … So, what are they???

4 Cellular Automata A CA is a spatial lattice of N cells, each of which is one of k states at time t. Each cell follows the same simple rule for updating its state. The cell's state s at time t+1 depends on its own state and the states of some number of neighbouring cells at t. For one-dimensional CAs, the neighbourhood of a cell consists of the cell itself and r neighbours on either side. Hence, k and r are the parameters of the CA. CAs are often described as discrete dynamical systems with the capability to model various kinds of natural discrete or continuous dynamical systems

5 SIMPLE EXAMPLE Suppose we are interested in understanding how a forest fire spreads. We can do this with a CA as follows. Start by defining a 2D grid of `cells’, e.g.: This will be a spatial representation of our forest.

6 SIMPLE EXAMPLE continued Now we define a suitable set of states. In this case, it makes sense for a cell to be either empty, tree, or burning_tree – meaning: empty: no tree here tree: there is a tree here, and it’s healthy burning_tree: there is a tree here, and it’s on fire. When we visualise the CA, we will use colours to represent the states. In these cases; white, green and red seem the right Choices.

7 E.g. here,might be an initial configuration, where the density of trees represents a particular forest we are interested in, or it may be based directly on an aerial view, and we set a randomly chosen tree to be burning.

8 SIMPLE EXAMPLE continued Next we define the neighbourhood structure – when we run our CA, cells will change their state under the influence of their neighbours, so we have to define what counts as a “neighbour”. You’ll see example neighbourhoods in a later slide, but usually you just use a cell’s 9 immediately surrounding neighbours. Let’s do that in this case. Next we decide what the neighbourhood will be like at the boundaries of the grid. E.g. if this was our grid, the blue are the neigbours of the green, but what are the neighbours of the red? Depending on what makes sense in the application, it could be this (fixed boundary) … … or this (wraparound)

9 SIMPLE EXAMPLE continued Next we define the transition rules – here we will use some simple illustrative rules – example rules for a real forest fire model appear later in the slides. For now, these are our rules – they are designed (very very roughly) to align with a timestep being one hour. R1: If a cell is empty, it’s state will stay empty at the next timestep R2: if a cell is burning, then each of its tree neighbours becomes burning at the next timestep with probability 0.2 So, starting with an initially configuration, we simply use these rules to derive a new state for every cell at each timestep.

10 Let’s see that in action. Here is our initial configuration, at timestep 0.

11 Here we are at timestep 1. I have simulated rule 2 with a random number generator somewhere in my brain.

12 Here we are at timestep 2.

13 Here we are at timestep 3. So, what will eventually happen here? What if the forest were more dense? Can you see a way to use CAs for planning new forest planting?

14 How a CA operates: the algorithm When a CA is set up, we decide beforehand, according to the application, what the neighbourhood is, what the wraparound situation is, what the grid dimensions are, and so on. Naturally, this includes deciding what states a cell can be in, what the transition rules are, and also we need an initial state for each cell. This is often randomised appropriately according to background knowledge (e.g. 40% trees, 60% no trees, then choose a single random tree state and set it to on_fire). SYNCHRONOUS CA then operates like this: repeat until finished: 1. for each cell: apply the rules to determine what the cell’s new state will be at the next timestep. 2. Update all cells to be in their new states An ASYNCHRONOUS CA operates like this: repeat until finished: 1. Choose a cell at random. 2. Apply the rules for that cell, and then update it to be in its new state.

15 Synchronous CAs Synchronous CAs can have very interesting properties, depending on the rules. Conway’s “Game of Life” is a famed very simple 2-state synchronous CA, which was formative in the establishment of a new science called Artificial Life. See the transition rules later, and the “Glider” slide (see the animation of that in Slide Show mode) From remarkably simple rules, and a very simple computational system, strange, unpredictable behaviour emerges (it is unpredictable in the sense that no theory exists which can relate the observed CA behaviour to the rules). In particular, with states and rules designed appropriately, structures which self-replicate can emerge – see the “Langton’s loops” slides.

16 Asynchronous CAs BOTH synchronous and asynchronous CAs are able to model natural phenomena – the HIV CA model that comes next is implemented as a synchronous CA – however asynchronous CAs would seem to be a more realistic way to model certain natural systems.

17 Notes on the algorithm What does “apply the rules” mean? In the CA-operation algorithm? Usually it is straightforward – e.g. suppose we have only these two rules: - if the cell is currently in state 1, and >5 neighbours are in state 0, then the cell’s new state is state 0 - in all other cases, the cell’s new state is 1 Then there is never any doubt what a cell’s next state will be, whatever the current state and the states of the neighbours. But, sometimes the rules might be under-specific, and not actually provide for a certain case. Or, they may be in conflict. This is simply something to watch out for – if you design a CA for a specific purpose, then make sure it’s operation is fully specified.

18 An example: a cellular automaton that models the HIV infection process in humans A fairly recent research paper (dos Santos et al) described a simple CA model of how HIV infection develops into AIDS. (find it on google scholar) There are many alternative and so-called `classical’ techniques that try to model the same process – usually this involves differential equations. However, this CA model seems to capture the quantitative dynamics of the infection more convincingly than mathematical models. This is something to do with the fact that CAs effortless combine space and time dynamics. Other techniques tend to have trouble with spatial issues, but clearly CAs are excellent at modelling processes in which the key element is neighbour interactions.

19 This graph is from real patient data; notice the two very different timescales on the x axis. Black is HIV-infected cells, white is healthy cells; after initial infection, HIV spreads rapidly but then subsides rapidly within weeks, after the immune system launches an initial assault which kills most of the virus. However, the virus stays around and gradually wears down the immune system in a process that can take several years. At a particular point, the density of infected cells overtakes that of healthy cells (here it is at the 8 year point); this is the onset of AIDS. Mathematical models either get the first 10 weeks correct and make a mess of the rest, or vice versa. A properly configured CA, however, can reproduce both.

20 dos Santos HIV CA: details Rule 1 - If an H cell has at least one I1 neighbour, or if has at least 2 I2 neighbours, then it becomes I1. Otherwise, it stays healthy. Rule 2 – An I1 cell becomes I2 after 4 time steps (simulated weeks). (to operate this the CA maintains a counter associated with each I1 cell). Rule 3 - An I2 cell becomes D. Rule 4 – A D cell becomes H, with probability ; I1, with probability ; otherwise, it remains D A cell can be in one of 4 states: Healthy (H), Infected1 (I1), Infected2 (I2), Dead (D) There are just four rules, about what happens to a cell in the Next timestep.

21 Notes on the HIV CA A 2D grid is used, which seems to need to be at least 400 by 400 in order to model the dynamics appropriately. Initially, a certain very small proportion of cells are randomly set to be I1. Each rule is designed based on simple but sensible notions of the biological mechanism. The probability parameters in the rules are guessed within reasonable and plausible limits based on known data. Note the counter in rule 2 – operating such a counter goes outside the `pure’ CA operation algorithms presented earlier. However, this can be simulated within the pure algorithm simply by having more states and new and different rules. (how?). But it is common practice to simplify things by using such mechanisms where appropriate. Put another way, a pure CA is computationally `complete’ – it can do anything; but in many modelling tasks it is simpler to make it impure.

22 Now give it a try A previous student implemented the dos Santos HIV CA in java – Find that linked from my teaching page; compile with javac *.java and the run with java Main Then choose “Run”, obviously, from the menu. Blue cells are healthy, yellow are I1 and red are I2 – each update is one week. Notice craziness (but qualitatively correct dynamics) in the first Few weeks – then, notice the onset of AIDS at around the 8 year point. If it doesn’t happen, then just try it again. Naturally you can view the code and see how the rules are Implemented. (I don’t suggest that this is exemplary java though)

23 Here are some well-known types of neighbourhood Many more neighbourhood techniques exist - see http://cell-auto.com and follow the link to ‘neighbourhood survey’ http://cell-auto.com

24 Classes of cellular automata (Wolfram) You recall we said that SYNCHRONOUS CAs had rather interesting properties, and were central to the research field of “Artificial Life” – these classes of CAs, defined by Steve Wolfram, are about such CAs – basically, depending on the transition rules, you tend to get one of these four types of behaviour. Class 4 is where the special things are. Class 1: after a finite number of time steps, the CA tends to achieve a unique state from nearly all possible starting conditions (limit points) Class 2: the CA creates patterns that repeat periodically or are stable (limit cycles) – probably equivalent to a regular grammar/finite state automaton Class 3: from nearly all starting conditions, the CA leads to aperiodic-chaotic patterns, where the statistical properties of these patterns are almost identical (after a sufficient period of time) to the starting patterns (self-similar fractal curves) – computes ‘irregular problems’ Class 4: after a finite number of steps, the CA usually dies, but there are a few stable (periodic) patterns possible (e.g. Game of Life) - Class 4 CA are believed to be capable of universal computation

25 John Conway’s Game of Life 2D cellular automata system. Each cell has 8 neighbors - 4 adjacent orthogonally, 4 adjacent diagonally. This is called the Moore Neighborhood.

26 Simple rules, executed at each time step: –A live cell with 2 or 3 live neighbors survives to the next round. –A live cell with 4 or more neighbors dies of overpopulation. –A live cell with 1 or 0 neighbors dies of isolation. –An empty cell with exactly 3 neighbors becomes a live cell in the next round.

27 Is it alive? http://www.bitstorm.org/gameoflife/ Compare it to the definitions…

28 Glider (animated – see this in slideshow mode) – if you happen to have the initial configuration right, this is what happens

29 Sequences

30 More Sequence leading to Blinkers Clock Barber’s pole

31 A Glider Gun

32 0 – Background cell state3, 5, 6 – Phases of reproduction 1 – Core cell state4 – Turning arm left by 90 degrees 2 – Sheath cell state state 7 – Arm extending forward cell state Langton’s loops; a synchronous CA that leads to self-replicating structures

33 Loop Reproduction

34 Loop Death

35 There remains debate and interest about the `essentials of life’ issue with CAs, but their main BIC value is as modelling techniques. Modelling Sharks and Fish: Predator/Prey Relationships Bill Madden, Nancy Ricca and Jonathan Rizzo Graduate Students, Computer Science Department Research Project using Department’s 20-CPU Cluster We’ve seen HIV – here are some more examples.

36 This project modeled a predator/prey relationship Begins with a randomly distributed population of fish, sharks, and empty cells in a 1000x2000 cell grid (2 million cells) Initially, –50% of the cells are occupied by fish –25% are occupied by sharks –25% are empty

37 Here’s the number 2 million Fish: red; sharks: yellow; empty: black

38 Rules A dozen or so rules describe life in each cell: birth, longevity and death of a fish or shark breeding of fish and sharks over- and under-population fish/shark interaction Important: what happens in each cell is determined only by rules that apply locally, yet which often yield long-term large-scale patterns.

39 Do a LOT of computation! Apply a dozen rules to each cell Do this for 2 million cells in the grid Do this for 20,000 generations Well over a trillion calculations per run! Do this as quickly as you can

40 Rules in detail: Initial Conditions Initially cells contain fish, sharks or are empty Empty cells = 0 (black pixel) Fish = 1 (red pixel) Sharks = –1 (yellow pixel)

41 Rules in detail: Breeding Rule Breeding rule: if the current cell is empty If there are >= 4 neighbors of one species, and >= 3 of them are of breeding age, »Fish breeding age >= 2, »Shark breeding age >=3, and there are <4 of the other species: then create a species of that type »+1= baby fish (age = 1 at birth) »-1 = baby shark (age = |-1| at birth)

42 Breeding Rule: Before EMPTY

43 Breeding Rule: After

44 Rules in Detail: Fish Rules If the current cell contains a fish: Fish live for 10 generations If >=5 neighbors are sharks, fish dies (shark food) If all 8 neighbors are fish, fish dies (overpopulation) If a fish does not die, increment age

45 Rules in Detail: Shark Rules If the current cell contains a shark: Sharks live for 20 generations If >=6 neighbors are sharks and fish neighbors =0, the shark dies (starvation) A shark has a 1/32 (.031) chance of dying due to random causes If a shark does not die, increment age

46 Shark Random Death: Before I Sure Hope that the random number chosen is >.031

47 Shark Random Death: After YES IT IS!!! I LIVE

48 Spring 2005JR47 Sample Code (C++): Breeding

49 Results Next several screens show behavior over a span of 10,000+ generations

50 Spring 2005BM49 Generation: 0

51 Spring 2005BM50 Generation: 100

52 Generation: 500

53 Generation: 1,000

54 Generation: 2,000

55 Generation: 4,000

56 Generation: 8,000

57 Generation: 10,500

58 Long-term trends Borders tended to ‘harden’ along vertical, horizontal and diagonal lines Borders of empty cells form between like species Clumps of fish tend to coalesce and form convex shapes or ‘communities’

59 Variations of Initial Conditions Still using randomly distributed populations: –Medium-sized population. Fish/sharks occupy: 1/16 th of total grid Fish: 62,703; Sharks: 31,301 –Very small population. Fish/sharks occupy: 1/800 th of total grid Initial population: Fish: 1,298; Sharks: 609

60 Generation 10020001000 40008000 Medium-sized population (1/16 of grid)

61 Very Small Populations Random placement of very small populations can favor one species over another Fish favored: sharks die out Sharks favored: sharks predominate, but fish survive in stable small numbers

62 Gen. 100 40006000 8000 1500 10,00012,00014,000 Ultimate welfare of sharks depends on initial random placement of fish and sharks Very Small Populations

63 Very small populations Fish can live in stable isolated communities as small as 20-30 A community of less than 200 sharks tends not to be viable

64 Forest Fire Model (FFM) During each time step the system is updated according to the rules: Forest Fire Model is a stochastic 3-state cellular automaton defined on a d-dimensional lattice with L d sites. Each site is occupied by a tree, a burning tree, or is empty. 1.empty site  tree with the growth rate probability p 2.tree  burning tree with the lightning rate probability f, if no nearest neighbour is burning 3.tree  burning tree with the probability 1-g, if at least one nearest neighbour is burning, where g defines immunity. 4.burning tree  empty site

65 The application

66 Simulation forest density 45% fire is not visible The average cluster size is small in comparison to lattice size L.

67 Simulation forest density 60% first signs of fire Forest density reaches the critical value 59% - the percolation threshold for square lattice. The average cluster size goes to infinity for infinite lattice size.

68 Simulation Fire spreads quickly burning down all connected tree clusters. A variety of global structures emerges. The whole process repeats and after some time forest reaches the steady state in which the mean number of growing trees equals the mean number of burning trees.

69 Next time L systems


Download ppt "Cellular Automata This is week 7 of Biologically Inspired Computing Various credits for these slides, which have in part been adapted from slides by:"

Similar presentations


Ads by Google