This document describes a cellular automata approach to pathfinding. It begins by defining types of automata and explaining that a cellular automata is a collection of connected finite state machines. It then discusses existing pathfinding algorithms like backtracking, breadth-first search, and A* and their shortcomings. The document proposes a new cellular automata method where passage cells take on values based on their lowest-value neighbors, allowing entities to move downhill towards goals. It provides examples of how this approach works and notes pros like distributed processing and incremental updates.
1. A Fault tolerant, Parallelizable incremental
approach for real time environments
Steve Wilson
2. 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
28. 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
30. 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
32. 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
33. 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
36. Whatispathfinding:
Path finding is the simply finding one or more
optimal routes between two or more points
while avoiding obstacles
Used in:
37. 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)
38. 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)
39. 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)
43. 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
44. 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
45. 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
46. 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
53. 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
69. 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
70. 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
71. 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
72. 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
77. Whyanewmethod?:
Programmers love to reinvent the wheel
The new algorithm might be better
To address shortcomings in existing methods
To learn something
78. 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)
84. 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:
85. 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
86. 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
87. 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
91. 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
92. 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
106. Pros:
The cellular automata can be shared by entities
Easily distributed
Each cell only needs to know about its closest
neighbors
107. 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
108. Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
109. 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
110. Pros:
The cellular automata can be shared by entities
Easily distributed
Incremental the automata can be iterated
between frames
Fault tolerant
111. 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
112. 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
113. 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
114. 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
115. 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
120. 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