10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work...
-
Upload
sabrina-fausett -
Category
Documents
-
view
226 -
download
0
Transcript of 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work...
![Page 1: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/1.jpg)
10.2 Diffusion and Cellular Automata
![Page 2: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/2.jpg)
Simulating Motion: Cellular Automata
• If all we have to work with is a grid of cells (spreadsheet), how can we simulate a random walk?
• Moving a value from one cell to an adjacent cell is simulated by changing the contents of the cells over time:
time t time t +1
![Page 3: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/3.jpg)
The Wave
![Page 4: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/4.jpg)
Aside: The Wave/Particle Duality
• We tend to think of “true” motion as movement of an object from one location to another, and the wave phenomenon as an illusion of motion.
• But at the most fundamental level, energy and matter behave like both a particle (object) and a wave….
![Page 5: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/5.jpg)
Aside: The Wave/Particle Duality
Double-slit experiment (Young 1801):Light must be a wave, because interference produces more than two bands on screen.
Photoelectric effect (Thomson 1899):Light must consist of particles, becauselight waves knock electrons out of ametal plate.
![Page 6: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/6.jpg)
Cellular Automata
• A cellular automaton (plural automata) is a dynamical model discrete in space, time, and state (possible values, typically just 0 and 1).
• CA has a grid of cells, and a set of transition rules describing what happens to a cell based on its own state and the state of its neighbors.
• Simplest CA are one-dimensional….
![Page 7: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/7.jpg)
1D Cellular Automata
Sample rule: Look at a cell and its left and right neighbors. Change the cell according to the following table:
![Page 8: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/8.jpg)
ExCellular Automata
• Each row is the state of the CA at a particular time step.
• First row has random values:= IF(RAND()>0.5, 1, 0)
• Subsequent rows have rule:=IF( OR (AND( A1=1,B1=1,C1=1), AND (A1=1,B1=0,C1=0), AND (A1=0,B1=0,C1=0)), 0, 1)
![Page 9: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/9.jpg)
ExCellular Automata
• Drag second row, second column rightward to next-to-last• Keep first and last columns (boundary conditions) constant• Drag second row down 60 or 70 rows• Use Conditional Formatting / Color Scales to color cells
based on values• Zoom out to view whole display• Hit F9 key to restart with new initial conditions• Experiment with other rules:
![Page 10: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/10.jpg)
Diffusion: Cellular Automata in Nature
![Page 11: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/11.jpg)
Diffusion: Cellular Automata in Nature
![Page 12: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/12.jpg)
2D Cellular Automata
![Page 13: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/13.jpg)
Diffusion
• Diffusion refers to any process in which a substance or property spreads from one region to another: transfer of heat, spread of dye in a liquid, motion of ants outward from a nest, etc.
Diffusion has traditionally been modeled using differential equations / systems dynamics – averages over large regions of individuals.
Modern advances in computing power allow us to use cellular automata to model diffusion at the level of individual ants, molecules, etc.
![Page 14: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/14.jpg)
Diffusion & Cellular Automata
We will study diffusion via cellular automata.
With Excel, this becomes difficult:
![Page 15: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/15.jpg)
Cellular Automata in Matlab
So we will use Matlab to study CA:Industry standard
Performs operations on entire table at once (no click-and-drag)
Programs look much like pseudocode in textbook
Free, open-source version called Octave
![Page 16: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/16.jpg)
Application: Spreading of Fire
![Page 17: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/17.jpg)
Initializing the System
“Forest” is an n x n grid (lattice) of cells.
Each cell is either empty (0) has a tree (1) or has a burning tree (2).
n
n
• probTree = probability of tree in cell
• probBurning = probability that the tree is burning
![Page 18: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/18.jpg)
Cell Initialization Algorithm (Pseudocode)
if a random number is less than probTree
if another random number is less than probBurning
assign 2 to the cell // tree is burning
else
assign 1 to the cell // tree is not burning
else
assign 0 to the cell // no tree
![Page 19: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/19.jpg)
Cell Initialization (Matlab)
grid = zeros(n); % N x N grid of zeros
rand1 = rand(n); % N x N random in [0,1)
rand2 = rand(n);
grid(rand1 < probTree) = 1;
grid(rand1 < probTree & rand2 < probBurning) = 2;
![Page 20: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/20.jpg)
Cell Initialization (Matlab)
pcolor(grid)
axis square
![Page 21: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/21.jpg)
Updating Rules
We determine a cell’s new state at time t + 1 based on its current state (at time t ) and the state of the neighbors in its von Neumann neighborhood (N, S, E, W):
N
S
W Esite
![Page 22: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/22.jpg)
Updating Rules
• If cell is empty, it stays empty at t + 1
• If a cell has a burning tree, the tree is gone at t + 1
• If a tree is adjacent to a burning tree, it catches fire with a probability (1 – probImmune)
• A tree may also catch fire by being struck by lightning: probLightning
![Page 23: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/23.jpg)
Applying a Function to Each Grid Point
• i indexes row; j indexes column
Problem: what to do at boundaries?
(i, j)
(i-1, j)
(i+1, j)
(i, j+1)(i, j-1)
![Page 24: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/24.jpg)
Absorbing Boundary Conditions
Cells beyond perimeter are inactive (nothing west of column 1, nothing east of column n, nothing north of row 1, nothing south of row n).
![Page 25: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/25.jpg)
Periodic Boundary Conditions
Column 1 and column n are neighbors.
![Page 26: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/26.jpg)
Periodic Boundary Conditions
Row 1 and row n are neighbors.
![Page 27: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/27.jpg)
Periodic Boundary Conditions
This makes the space a torus.
![Page 28: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/28.jpg)
Periodic Boundary Conditions In Matlab
Matlab’s circshift function does this for us:
>> a = [1 2 3; 4 5 6; 7 8 9]
a =
1 2 3 4 5 6 7 8 9
>> circshift(a, [0 1]) % W neighbors
ans =
3 1 2 6 4 5 9 7 8
![Page 29: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/29.jpg)
Translate Updating Rules to Matlab
• If cell is empty, it stays empty at t + 1
% no action necessary
![Page 30: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/30.jpg)
Translate Updating Rules to Matlab
• If a cell has a burning tree, the tree is gone at t + 1
newgrid(oldgrid == 2) = 0;
![Page 31: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/31.jpg)
Translate Updating Rules to Matlab
• If a tree is adjacent to a burning tree, it catches fire with a probability (1 – probImmune)
n = length(oldgrid); % length of one side
havetree = oldgrid == 1;
susceptible = rand(n) < (1 - probImmune);
nfire = circshift(oldgrid, [1 0]) == 2;
sfire = circshift(oldgrid, [-1 0]) == 2;
efire = circshift(oldgrid, [0 -1]) == 2;
wfire = circshift(oldgrid, [0 1]) == 2;
adjacent = nfire | sfire | efire | wfire;
newgrid(havetree & adjacent & susceptible) = 2;
![Page 32: 10.2 Diffusion and Cellular Automata. Simulating Motion: Cellular Automata If all we have to work with is a grid of cells (spreadsheet), how can we simulate.](https://reader035.fdocuments.in/reader035/viewer/2022062300/56649d835503460f94a69092/html5/thumbnails/32.jpg)
Translate Updating Rules to Matlab
• A tree may also catch fire by being struck by lightning: probLightning
newgrid(havetree & (rand(n) < probLightning)) = 2;