Cellular Automata + Reaction-Diffusion Systems

Slides:



Advertisements
Similar presentations
Game of Life Rules and Games Linh Tran ECE 573. What is Life? Life is just one example of a cellular automaton, which is any system in which rules are.
Advertisements

Cellular Automata (Reading: Chapter 10, Complexity: A Guided Tour)
1 Chapter 13 Artificial Life: Learning through Emergent Behavior.
CELLULAR AUTOMATON Presented by Rajini Singh.
CELLULAR AUTOMATA Derek Karssenberg, Utrecht University, the Netherlands LIFE (Conway)
Today’s Plan Introduction to Artificial Life Cellular Automata
Cellular Automata Orit Moskovich
Cellular Automata Avi Swartz 2015 UNC Awards Ceremony.
Introduction At the heart of the growth of a multi-cellular organism is the process of cellular division… … aka (in computing) self-replication.
Nawaf M Albadia Introduction. Components. Behavior & Characteristics. Classes & Rules. Grid Dimensions. Evolving Cellular Automata using Genetic.
Parallelization: Conway’s Game of Life. Cellular automata: Important for science Biology – Mapping brain tumor growth Ecology – Interactions of species.
Governor’s School for the Sciences Mathematics Day 14.
Indiana GIS Conference, March 7-8, URBAN GROWTH MODELING USING MULTI-TEMPORAL IMAGES AND CELLULAR AUTOMATA – A CASE STUDY OF INDIANAPOLIS SHARAF.
Governor’s School for the Sciences Mathematics Day 13.
Course material – G. Tempesti Course material will generally be available the day before the lecture Includes.
1 Cellular Automata and Applications Ajith Abraham Telephone Number: (918) WWW:
1 Chapter 13 Artificial Life: Learning through Emergent Behavior.
The Game of Life A simulation of "life". From simple rules, complex behavior arises Rules –A cell that is alive and has fewer than two live neighbors dies.
Activity 2-1: The Game of Life
Introduction to Lattice Simulations. Cellular Automata What are Cellular Automata or CA? A cellular automata is a discrete model used to study a range.
Playing God: The Engineering of Functional Designs in the Game of Life Liban Mohamed Computer Systems Research Lab
Cellular Automata Spatio-Temporal Information for Society Münster, 2014.
CELLULAR AUTOMATA A Presentation By CSC. OUTLINE History One Dimension CA Two Dimension CA Totalistic CA & Conway’s Game of Life Classification of CA.
Cellular Automata Martijn van den Heuvel Models of Computation June 21st, 2011.
Model Iteration Iteration means to repeat a process and is sometimes referred to as looping. In ModelBuilder, you can use iteration to cause the entire.
Cellular Automata. John von Neumann 1903 – 1957 “a Hungarian-American mathematician and polymath who made major contributions to a vast number of fields,
The Science of Complexity J. C. Sprott Department of Physics University of Wisconsin - Madison Presented to the First National Conference on Complexity.
The Northern Lights: Demonstrations. Programmability Overview A major aspect of our project is programmability- it is an interactive display medium, the.
Cellular Automata Introduction  Cellular Automata originally devised in the late 1940s by Stan Ulam (a mathematician) and John von Neumann.  Originally.
Cellular Automata Martijn van den Heuvel Models of Computation June 21st, 2011.
Pedro R. Andrade Münster, 2013
Intro to Life32. 1)Zoom to 10 That will allow you to see the grid and individual cells.
Conway’s Game of Life Jess Barak Game Theory. History Invented by John Conway in 1970 Wanted to simplify problem from 1940s presented by John von Neumann.
Instructor: Mircea Nicolescu Lecture 7
1 1 2 What is a Cellular Automaton? A one-dimensional cellular automaton (CA) consists of two things: a row of "cells" and a set of "rules". Each of.
Intro to Life32.
Artificial Life and Emergent Behavior
Chaotic Behavior - Cellular automata
Spatio-Temporal Information for Society Münster, 2014
L – Modeling and Simulating Social Systems with MATLAB
Pedro Ribeiro de Andrade Münster, 2013
Pedro R. Andrade Münster, 2013
A Cellular Automata Approach to Population Modeling
Illustrations of Simple Cellular Automata
Computational methods in physics
Complex Systems Engineering SwE 488 Artificial Complex Systems
Remember that our objective is for some density f(y|) for observations where y and  are vectors of data and parameters,  being sampled from a prior.
EE/CSE 576 HW 1 Notes.
Alexei Fedorov January, 2011
Cellular Automata.
Pedro R. Andrade Münster, 2013
Spatio-temporal information in society: cellular automata
Hiroki Sayama NECSI Summer School 2008 Week 2: Complex Systems Modeling and Networks Cellular Automata Hiroki Sayama
Ionut Trestian Northwestern University
Motion illusion, rotating snakes
EE/CSE 576 HW 1 Notes.
2D Array and Matrix.
Excursions into Logic Based Computation using Conway’s Game of Life
Reaction & Diffusion system
The Engineering of Functional Designs in the Game of Life
Artificial Life and Emergent Behavior
Northwestern University
Modeling Pattern Formation in Skin Diseases by a Cellular Automaton
EECS 110: Lec 12: Mutable Data
Von Neumann’s Automaton and Viruses
Activity 2-1: The Game of Life
Cellular Automata (CA) Overview
Modeling Rainfall using a Cellular Automata
ECE/CSE 576 HW 1 Notes.
2D Array and Matrix Application: Game of Life
Presentation transcript:

Cellular Automata + Reaction-Diffusion Systems Reference: http://www.karlsims.com/rd.html

Part I: Cellular Automata History: Discovered by Stanislaw Ulam and John Von Neumann in 1940 Used in Mathematics, Physics, Cellular Biology (imo) kind of a cool toy project. Basic Idea: A rectangular grid of cells Each cell can either be alive (1) or dead (0) Simple state transitions determine the state of this cell in the next generation. Usually based on the state of the neighbors. Von-Neumann Neighborhood (4 neighbors) Moore Neighborhood (8 neighbors) Usually “wrapped” (a toroidal universe)

Examples Conway’s Game of Life is the classic example 1 => 0 if less than 2 live neighbors (under-population) 1 => 0 if more than 3 live neighbors (over-population) 0 => 1 if exactly 3 live neighbors (birth) State remains the same otherwise. https://bitstorm.org/gameoflife/ A good example of emergent behavior Wireworld is another cool one 4 states: 0=empty, 1=head, 2=tail, 3=wire 1 => 2 3 => 1 if there are 1-2 neighbors that are in state 1. 2 => 3 https://en.wikipedia.org/wiki/Wireworld

Implementation Creating a (partial) copy is important Visualizing See why? Visualizing One pixel per cell Maybe scale up?

Part II: Reaction-Diffusion Systems Based on Turing’s “Chemical Basis of Morphogenesis” [1952] http://www.dna.caltech.edu/courses/cs191/paperscs191/turing.pdf [tangent: Turing’s life] Attempts to simulate the chemical basis for patterns in nature Fingerprints Coral folding Zebra stripes …

Basic Idea (gross simplification) A system containing two chemicals / organisms: A and B A is gradually converted to B. B eventually dies off (at a rate of kill-rate) A is regularly injected into the system (feed-rate) Both A and B diffuse to neighboring cells Uses a Laplacian operator This is the big difference with cellular automata We simulate on a toroidal rectangular grid Moore Neighborhood (7 neighbors) Wrap-around Each cell holds two values: A and B (generally 0.0 – 1.0)

Math! 𝐴 ′ =𝐴+ 𝐷 𝐴 ∗ 𝛻 2 𝐴−𝐴 𝐵 2 +𝑓∗ 1−𝐴 ∗∆𝑡 𝐵 ′ =𝐵+ 𝐷 𝐵 ∗ 𝛻 2 𝐵+𝐴 𝐵 2 − 𝑘+𝑓 ∗𝐵 ∗∆𝑡 Key: A’ and B’ are the new values of A & B after update They should generally be very close to [0.0 – 1.0] I had to clamp them – occasionally they would go outside range. A and B are the current values of A & B before update DA and DB are the diffusion rates for A and B [0.0 – 1.0] f = feed-rate for A [0.0 – 1.0] k = kill-rate for B (0.0 – 1.0) Δt is a rate (smaller = slower, bigger = faster) 𝛻 2 𝐴 and 𝛻 2 𝐵 are the 2-d Laplacian operator (next slide) The “breakdown” on http://www.karlsims.com/rd.html is very helpful -- I’ll repeat and add to it here…

2D laplacian A scalar which looks at the current concentration of either A or B in a small neighborhood. Calculates a new value which is slightly more like the neighbors. Pass this convolution kernel over all cells. Make sure you do it on a copy (just like CA) If calculating 𝛻 2 𝐴, just use the A values. For example if the cells held… 0.05∗0.8+0.2∗0.6+0.05∗0.2+0.2∗0.1−1.0∗0.5+0.2∗0.3+0.05∗0.4+0.2∗0.2+0.05∗0.1=−𝟎.𝟏𝟖𝟓 x x - 1 x - 2 x + 1 x + 2 y - 2 y - 1 y y + 1 y + 2 Laplacian convolution kernel Sample cell neighborhood 0.8 0.6 0.2 0.1 0.5 0.3 0.4

Visualizing the results I just used A (A=0=black, A=1=white) Many other people use a gradient https://pmneila.github.io/jsexp/grayscott/ You could also use A and B for two channels (red and green, maybe). Some people also use a 3d-effect https://www.youtube.com/watch?v=8dTmUr5qKvI

My Result #1 & #2 Result #1 Result #2 DA = 1.0 DB = 0.5 f = 0.055 k = 0.062 Initially, A=1,B=0 everywhere except a small patch where A=0, B=1. https://youtu.be/l5PuXBvgLmc Result #2 Just like #1, but I load an image, setting A=red, B=(1.0-red) https://youtu.be/8H_9DdIIU_k

Non-uniform values You can get much more interesting results if you vary the 4 parameters non-uniformly over the image Often by loading an image. Perhaps with: E.g. Keep all other values as before, but make the feed-rate vary per-pixel using the red channel of an image. Result Feed-rate = “bill.png”; kill-rate = “giraffe.png” diffA = 0.9; diffB = 0.15; Seed = checkerboard (30px) https://youtu.be/F2cGd5QhyuA