Créer une présentation
Télécharger la présentation

Télécharger la présentation
## Cellular Automata

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Cellular Automata**Biologically Inspired Computing Various credits for these slides, which have in part been adapted from slides by: Ajit Narayanan, Rod Hunt, Marek Kopicki.**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 ofnatural discrete or continuous dynamical systems**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.**SIMPLE EXAMPLE continued**Now we define a suitable set of states. In this case, it makes sense for a cell to be either empty, ok_tree, or fire_tree – meaning: empty: no tree here ok_tree: there is a tree here, and it’s healthy fire_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.**A fairly dense forest with a couple of trees**on fire -- maybe from lightning strikes**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 8 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.**CA Rules**Now, the main thing: how do we update the states at the next time step? We use sensible rules. E.g. • If a tree is not on fire, and has n neighbours on fire, it catches fire next step with probabilty n/8. • If a tree has been on fire for 3 steps, it dies**CA Rules:**• A small number of sensible rules, for any given suitable application, usually leads to convincing behaviour. • Every CA rule says: A cell in state X changes to a cell of state Y if certain neighbourhood conditions are satisfied • What about the “tree on fire dies after three steps rule?” This can be easily modelled with “pure” CA rules. How? • CAs are increasingly used to simulate a wide number of complex systems, to see “what would happen if…”, and generally investigate the effects of various strategies**See HIV CA demo –**4 states: Healthy, Infected1, Infected2, Dead 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**Some additional things about CAs**A simple 1D CA to illustrate these points: States 0 and 1: Wraparound 2D array of 30 cells Rules: if both neighbours are 1, become 1; if both neighbours are 0, become 0; otherwise, stay the same. Synchronous update: most CAs operate this way. Each cell’s new state for time t+1 is worked out in parallel based on the situation at t. Start: 101001010001101000101010010001 T=1 : 110000000001110000010100000001 T=2 : 110000000001110000001000000001**Some additional things about CAs**Asynchronous update: Sometimes applied in preference – it is arguably a more valid way to simulate some systems. Here, at each time step, one cell is chosen at random and updated. Start: 101001010001101000101010010001 T=1 : 101001000001101000101010010001 T=2 : 101001000001101000101010010001 T=3 : 111001000001101000101010010001 T=4 : 111001000001101000101010000001 T=5 : etc ... Clearly if there are n cells, then n timesteps in an asynchronous CA corresponds to the 1 timestep of a synchronous CA.**Rules for a cell’s state transitions are usually defined**in terms of the cell’s neighbourhood. E.g. this is the Moore neighbourhood: The common approach in 2D is to treat the CA surface as a Toroid This just means wraparound in the way indicated by the blue and green neighbourhoods illustrated Boundary conditions But what about cells on the edge?**Types of neighbourhood**Many more neighbourhood techniques exist - see http://cell-auto.com and follow the link to ‘neighbourhood survey’**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 Classes of cellular automata (Wolfram)**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.**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.**Is it alive?**• http://www.bitstorm.org/gameoflife/ • Compare it to the definitions…**Langton’s Loops**• CA are a main part of the research area “Artificial Life”. A common definition of “life” involves that the living organism(s) must be capable of self-reproduction. Langton’s “Loops” achieve that. • Characteristics • 8 states, 2D Cellular automata • Needed CA grid of 100 cells • Self Reproduction into identical copy • A simple set of rules produces self-reproducing “organism” – a deep connection between Life and Computation.**Langton’s Loop**0 – Background cell state 3, 5, 6 – Phases of reproduction 1 – Core cell state 4 – Turning arm left by 90 degrees 2 – Sheath cell state state 7 – Arm extending forward cell state**There remains debate and interest about the `essentials of**life’ issue with CAs, but their main BIC value is as modelling techniques. We’ve seen HIV – here are some more examples. 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**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**Here’s the number 2 million**• Fish: red; sharks: yellow; empty: black**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.**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**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)**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)**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**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**Shark Random Death: Before**I Sure Hope that the random number chosen is >.031**Shark Random Death: After**YES IT IS!!! I LIVE **Results**• Next several screens show behavior over a span of 10,000+ generations**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’