SlideShare a Scribd company logo
A Fault tolerant, Parallelizable incremental
approach for real time environments
Steve Wilson
Overview:
What is a cellular automata
How it is related to other automata
What is path finding
Other approaches to pathfinding
Why a new method ?
The cellular approach
Pros and Cons of using cellular automata
Whatisacellularautomata:
Types of “automata”
Whatisacellularautomata:
Types of “automata” or “machines”
Whatisacellularautomata:
Types of automata
Finite state machine
Whatisacellularautomata:
Types of automata
Finite state machine
One or more states
Whatisacellularautomata:
Types of automata
Finite state machine
One or more states
Transition rules
Whatisacellularautomata:
Types of automata
Finite state machine
One or more states
Transition rules
Input
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
One or more states
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
One or more states
Transition rules
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
One or more states
Transition rules
Input
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
One or more states
Transition rules
Input
Stack
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Turing machine
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Turing machine
One or more states
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Turing machine
One or more states
Transition rules
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Turing machine
One or more states
Transition rules
Tape
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Turing machine
Cellular Automata
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Turing machine
Cellular Automata
Two or more states
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Turing machine
Cellular Automata
Two or more states
Transition rules
Whatisacellularautomata:
Types of automata
Finite state machine
Push down automata
Turing machine
Cellular Automata
Two or more states
Transition rules
Neighbor states
Whatisacellularautomata:
Basically
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Cells are connected by “edges”
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Grid
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Grid
Cells are arranged uniformly in a pattern
and connected spatially
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Grid
Subdivision
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Grid
Subdivision
Used extensively in modeling, cells are connected
spatially in a non-uniform manner
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Grid
Subdivision
Synchronized
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Grid
Subdivision
Synchronized
Cells update at the same time based on the previous
state
Whatisacellularautomata:
Basically a Cellular automata is a collection of
connected finite state machines
Subtypes of cellular automata
Graph
Grid
Subdivision
Synchronized
Convergent
Does the automata settle down for all starting states
Whatisacellularautomata:
The Most famous cellular is Conway’s Game of
Life
epic game of life
Whatispathfinding:
Path finding is the simply finding one or more
optimal routes between two or more points
while avoiding obstacles
Whatispathfinding:
Path finding is the simply finding one or more
optimal routes between two or more points
while avoiding obstacles
Used in:
Whatispathfinding:
Path finding is the simply finding one or more
optimal route between two or more points
while avoiding obstacles
Used in:
Design (circuit boards, chips, plumbing)
Whatispathfinding:
Path finding is the simply finding one or more
optimal route between two or more points
while avoiding obstacles
Used in:
Design (circuit boards, chips, plumbing)
Analysis (critical path)
Whatispathfinding:
Path finding is the simply finding one or more
optimal route between two or more points
while avoiding obstacles
Used in:
Design (circuit boards, chips, plumbing)
Analysis (critical path)
Entertainment (goal seeking)
Otherapproaches topathfinding:
Otherapproaches topathfinding:
Backtracking also known as depth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Basically at each branch you “remember” where
you were, and which branch you took
Otherapproaches topathfinding:
Backtracking also known as depth first
Basically at each branch you “remember” where
you were, and which branch you took
When you reach a dead end you go back to the last
branch and take a different path
Otherapproaches topathfinding:
Backtracking also known as depth first
Basically at each branch you “remember” where
you were, and which branch you took
When you reach a dead end you go back to the last
branch and take a different path
If the maze has loops or “cycles” depth first can end
up going in circles
Otherapproaches topathfinding:
Backtracking also known as depth first
Basically at each branch you “remember” where
you were, and which branch you took
When you reach a dead end you go back to the last
branch and take a different path
If the maze has loops or “cycles” depth first can end
up going in circles
This can be prevented by remembering everywhere
you’ve been
Otherapproaches topathfinding:
Backtracking also known as depth first
Basically at each branch you “remember” where
you were, and which branch you took
When you reach a dead end you go back to the last
branch and take a different path
If the maze has loops or “cycles” depth first can end
up going in circles
Prevented by remembering everywhere you’ve
been
Easy to implement recursively
Otherapproaches topathfinding:
Backtracking also depth known first
Otherapproaches topathfinding:
Backtracking also known as depth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Again remembering each branch
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Again remembering each branch
Except at each new intersection, go back to the
untried path closest to the starting point
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
Otherapproaches topathfinding:
Backtracking also known as depth first
Breadth first
A* (A star)
At each intersection select the “best” untried path
(based on a heuristic)
Otherapproaches topathfinding:
A* (A star)
Otherapproaches topathfinding:
A* (A star)
Otherapproaches topathfinding:
A* (A star)
Otherapproaches topathfinding:
A* (A star)
Shortcomingsofexisting methods:
Shortcomingsofexisting methods:
They require both a start and endpoint
Shortcomingsofexisting methods:
They require both a start and endpoint
Potentially slow if the maze is large or there are
many entities finding paths at the same time
Shortcomingsofexisting methods:
They require both a start and endpoint
Potentially slow if the maze is large or there are
many entities finding paths at the same time
Each entity has a separate path multiplying the
amount of memory needed by the number of
entities
Shortcomingsofexisting methods:
They require both a start and endpoint
Potentially slow if the maze is large or there are
many entities finding paths at the same time
Each entity has a separate path multiplying the
amount of memory needed by the number of
entities
Not incremental, partial solutions don’t lead to
meaningful behavior
Shortcomingsofexisting methods:
They require both a start and endpoint
Potentially slow if the maze is large or there are
many entities finding paths at the same time
Each entity has a separate path multiplying the
amount of memory needed by the number of
entities
Not incremental, partial solutions partial
solutions don’t lead to meaningful behavior
Not easily distributed
Shortcomingsofexisting methods:
They require both a start and endpoint
Potentially slow if the maze is large or there are
many entities finding paths at the same time
Each entity has a separate path multiplying the
amount of memory needed by the number of
entities
Not incremental, partial solutions partial
solutions don’t lead to meaningful behavior
Not easily distributed each entity requires a
large amount of information
Whyanewmethod?:
Whyanewmethod?:
Programmers love to reinvent the wheel
Whyanewmethod?:
Programmers love to reinvent the wheel
The new algorithm might be better
Whyanewmethod?:
Programmers love to reinvent the wheel
The new algorithm might be better
To address shortcomings in existing methods
Whyanewmethod?:
Programmers love to reinvent the wheel
The new algorithm might be better
To address shortcomings in existing methods
To learn something
Whyanewmethod?:
Programmers love to reinvent the wheel
The new algorithm might be better
To address shortcomings in existing methods
To learn something (life long learning is
important)
Howdoesthismethodwork?:
Howdoesthismethodwork?:
The states of the automata are as follows
Howdoesthismethodwork?:
The states of the automata are as follows:
‘W’ the cell is a wall
Howdoesthismethodwork?:
The states of the automata are as follows:
‘W’ the cell is a wall
‘G’ the cell is a goal (there can be multiple goals)
Howdoesthismethodwork?:
The states of the automata are as follows:
‘W’ the cell is a wall
‘G’ the cell is a goal
1…10,000 the cell is passable
Howdoesthismethodwork?:
The states of the automata are as follows:
‘W’ the cell is a wall
‘G’ the cell is a goal
1…10,000 the cell is passable
The transitions are:
Howdoesthismethodwork?:
The states of the automata are as follows:
‘W’ the cell is a wall
‘G’ the cell is a goal
1…10,000 the cell is passable
The transitions are:
‘W’ -> ‘W’ Walls don’t change
Howdoesthismethodwork?:
The states of the automata are as follows:
‘W’ the cell is a wall
‘G’ the cell is a goal
1…10,000 the cell is passable
The transitions are:
‘W’ -> ‘W’
‘G’ -> ‘G’ Goals don’t change
Howdoesthismethodwork?:
The states of the automata are as follows:
‘W’ the cell is a wall
‘G’ the cell is a goal
1…10,000 the cell is passable
The transitions are:
‘W’ -> ‘W’
‘G’ -> ‘G’
1…10,000 -> one more than its lowest value
neighbor. Where ‘G’ has a value of zero
Howdoesthismethodwork?:
The passages are initialized to a random
passage value (in the demo initialized to 1 for
clarity)
Howdoesthismethodwork?:
The passages are initialized to a random
passage value
The walls are initialized to ‘W’
Howdoesthismethodwork?:
The passages are initialized to a random
passage value
The walls are initialized to ‘W’
The goals are initialized to ‘G’
Howdoesthismethodwork?:
The passages are initialized to a random
passage value
The walls are initialized to ‘W’
The goals are initialized to ‘G’
The automata is stepped either synchronously
or asynchronously
Howdoesthismethodwork?:
The passages are initialized to a random
passage value
The walls are initialized to ‘W’
The goals are initialized to ‘G’
The automata is stepped either synchronously
or asynchronously
Each entity can simply move to a neighboring
cell with a lower value, going “downhill” to
player
Howdoesthismethodwork?:
A simple example
W W W W W W
W G 9 7 1 W
W W W W W W
Howdoesthismethodwork?:
A simple example
W W W W W W
W G 1 2 8 W
W W W W W W
Howdoesthismethodwork?:
A simple example
W W W W W W
W G 1 2 3 W
W W W W W W
Howdoesthismethodwork?:
A more complicated example
W W W W W W
W 1 9 7 1 W
W 7 W 5 W W
W 8 5 3 G W
W W W W W W
Howdoesthismethodwork?:
A more complicated example
W W W W W W
W 8 2 2 8 W
W 2 W 4 W W
W 6 4 1 G W
W W W W W W
Howdoesthismethodwork?:
A more complicated example
W W W W W W
W 3 3 3 3 W
W 7 W 2 W W
W 5 2 1 G W
W W W W W W
Howdoesthismethodwork?:
A more complicated example
W W W W W W
W 4 4 3 4 W
W 4 W 2 W W
W 8 2 1 G W
W W W W W W
Howdoesthismethodwork?:
A more complicated example
W W W W W W
W 5 4 3 4 W
W 4 W 2 W W
W 8 2 1 G W
W W W W W W
Howdoesthismethodwork?:
A more complicated example
W W W W W W
W 5 4 3 4 W
W 4 W 2 W W
W 8 2 1 G W
W W W W W W
Howdoesthismethodwork?:
Demo Here:
Prosandcons:
Pros:
The cellular automata can be shared by entities
Pros:
The cellular automata can be shared by entities
Easily distributed
Pros:
The cellular automata can be shared by entities
Easily distributed
Each cell only needs to know about its closest
neighbors
Pros:
The cellular automata can be shared by entities
Easily distributed
Each cell only needs to know about its closest
neighbors
The cells don’t need to update synchronously
Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Entities will naturally move out of dead ends even
before the path information fully propagates
Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Fault tolerant
Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Fault tolerant
A passage can be blocked to reflect changes in the
maze
Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Fault tolerant
A passage can be blocked to reflect changes in the
maze
Goals can be moved
Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Fault tolerant
If a passage is blocked, or the goal moves
Goals can be moved
Continue to use the existing automata as it updates
Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Fault tolerant
If a passage is blocked, or the goal moves
Goals can be moved
Continue to use the existing automata as it updates
Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Fault tolerant
If a passage is blocked, or the goal moves
Continue to use the existing automata as it updates
Unreachable areas are easily detected
Cons:
Cons:
Requires enough memory to hold the search
space
Cons:
Requires enough memory to hold the search
space
For a single entity takes more processing than
other methods
Inclosing:
This Cellular Automata provides an incremental,
fault tolerant, performant pathfinding solution
References:
Ascani, E (2011, October 4). Epic Game of Life. Retrieved April 4, 2016, from
https://www.youtube.com/watch?v=C2vgICfQawE
Codd, E. F. (1968). Cellular automata [Http://dl.acm.org/citation.cfm?id=1098682]. New York:
Academic Press. Retrieved April 4, 2016.
DeAngelis, M. (2016, February 29). Cat Maze Disguised as Bookshelves. Retrieved April 4, 2016, from
http://www.cluttermagazine.com/news/2016/02/cat-maze-disguised-bookshelves
Gardner, M. (1983). Wheels, life, and other mathematical amusements (Chp 20-22). New York: W.H.
Freeman.
Levy, S. (1993). Artificial life: A report from the frontier where computers meet biology. New York:
Vintage Books.
Pajot, T. (n.d.). Printed Circuit Board. Retrieved April 4, 2016, from
http://www.123rf.com/photo_10607345_printed-circuit-board.html

More Related Content

PPTX
UFT-1.pptx
PPTX
Visual regression with applitools eyes
PPTX
CELLULAR AUTOMATA TRAFFIC FLOW MODEL
PDF
Cellular Automata
PPT
Cellular automata by Devdutta Chakrabarti
PDF
A New Security Level for Elliptic Curve Cryptosystem Using Cellular Automata ...
PDF
1D/2D Cellular Automata Modeling with Modelica
UFT-1.pptx
Visual regression with applitools eyes
CELLULAR AUTOMATA TRAFFIC FLOW MODEL
Cellular Automata
Cellular automata by Devdutta Chakrabarti
A New Security Level for Elliptic Curve Cryptosystem Using Cellular Automata ...
1D/2D Cellular Automata Modeling with Modelica

Viewers also liked (17)

PDF
Hacking JavaScript Games - Cellular Automata
PDF
Cellular Automata- Dengue Fever
PPTX
Cellular automata
PDF
Block Emulation and Computation in One-dimensional Cellular Automata: Breakin...
PDF
Automata Invasion
PPTX
online payment system using Steganography and Visual cryptography
DOCX
Visual Cryptography Industrial Training Report
PPTX
Visual cryptography
PDF
Finite automata
PPT
cellular automata as a test pattern generator and output response compactor f...
PPTX
Scene Text Detection on Images using Cellular Automata
PPTX
Cellular automata
PPTX
Cellular automata : A simple Introduction
PPTX
Visual Cryptography
PPTX
steganography using genetic algorithm along with visual cryptography for wire...
PDF
Automata
Hacking JavaScript Games - Cellular Automata
Cellular Automata- Dengue Fever
Cellular automata
Block Emulation and Computation in One-dimensional Cellular Automata: Breakin...
Automata Invasion
online payment system using Steganography and Visual cryptography
Visual Cryptography Industrial Training Report
Visual cryptography
Finite automata
cellular automata as a test pattern generator and output response compactor f...
Scene Text Detection on Images using Cellular Automata
Cellular automata
Cellular automata : A simple Introduction
Visual Cryptography
steganography using genetic algorithm along with visual cryptography for wire...
Automata
Ad

Similar to Cellular Automata for Pathfinding (20)

PDF
Ai popular search algorithms
PPTX
Maze-Solving Algorithmhgggggggs (1).pptx
PPT
AI-search-metodsandeverythingelsenot.ppt
PPTX
AI UNIT 2 PPT AI UNIT 2 PPT AI UNIT 2 PPT.pptx
PPT
m3-searchAbout AI About AI About AI1.ppt
PPTX
Maze-Solving-Alhghgghgorithhggggggms.pptx
PPTX
Maze Problem Presentation
PPT
Chapter3 Search
PDF
Pathfinding - Part 3: Beyond the basics
PPTX
Lec#2
PPTX
Artificial Intelligence Problem Slaving PPT
PPTX
AI_03_Solving Problems by Searching.pptx
PPT
problem solving for AI and Machine Learning
DOCX
Searching techniques
PPTX
Bidirectional graph search techniques for finding shortest path in image base...
PPTX
PPTX
Unit-2 for AIML including type of searches
PPT
Jarrar.lecture notes.aai.2011s.ch3.uniformedsearch
Ai popular search algorithms
Maze-Solving Algorithmhgggggggs (1).pptx
AI-search-metodsandeverythingelsenot.ppt
AI UNIT 2 PPT AI UNIT 2 PPT AI UNIT 2 PPT.pptx
m3-searchAbout AI About AI About AI1.ppt
Maze-Solving-Alhghgghgorithhggggggms.pptx
Maze Problem Presentation
Chapter3 Search
Pathfinding - Part 3: Beyond the basics
Lec#2
Artificial Intelligence Problem Slaving PPT
AI_03_Solving Problems by Searching.pptx
problem solving for AI and Machine Learning
Searching techniques
Bidirectional graph search techniques for finding shortest path in image base...
Unit-2 for AIML including type of searches
Jarrar.lecture notes.aai.2011s.ch3.uniformedsearch
Ad

Cellular Automata for Pathfinding