artificial intelligence for gamingtschwarz/coen129/ppt/pathfinding.pdfpathfinding graphs algorithm:...
TRANSCRIPT
![Page 1: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/1.jpg)
Pathfinding
Artificial Intelligence for gaming
![Page 2: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/2.jpg)
Group AI
Pathfinding
Execution Management
Strategy
Character AIWorld
Inter
face
Animation Physics
Decision Making
Movement Pathfinding
![Page 3: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/3.jpg)
Pathfinding Graphs
� Pathfinding does not work directly on Geometry
� Simplification:
� Abstraction of movement possibilities in a graph
![Page 4: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/4.jpg)
Pathfinding Graphs
� Nodes: Important places
� Sometimes just rooms
� Sometimes different places in a single room
� Preview:
� For tactical planning, need to
Edges: Connections through which we can travel� Edges: Connections through which we can travel
� Weights: Costs of traveling through a certain
connection
� General assumption for developing algorithms:
� Weights are positive numbers
![Page 5: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/5.jpg)
Pathfinding Graphs
� If travelling costs depend on the direction:
� Use a directed graph
� All algorithms support directed graphs
3
22 2
2
2
2
3
22
3
3
3
41
![Page 6: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/6.jpg)
Pathfinding Graphs
� Representation of (directed, weighted) graphs
� Adjacency List
� Adjacency Matrix
� List of edges
2
2
3a
a: [(c,3), (d,4)] 04300
5
2
2
2
e
34
b c
d
a: [(c,3), (d,4)]
b: [(a,2), (c,2)]
c: [(e,5)]
d: [(b,3), (c,4)]
e: [(a,2),(d,2)]
02002
00430
50000
00202
04300
4
![Page 7: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/7.jpg)
Pathfinding Graphs
� Dijkstra Algorithm
� Input: Weighted, directed graph, starting and ending
vertex
� Output: A minimum path between starting and ending
vertex
� Definition: Costs of a path is the sum of the weights� Definition: Costs of a path is the sum of the weights
![Page 8: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/8.jpg)
Pathfinding Graphs
� Disjkstra Algorithm
� Informal Description:
� Processes nodes one-by-one, starting with the starting node
� Whenever a node is visited, puts neighboring node not yet
visited into a list of “seen” nodes
� Maintains a list of costs to reach each nodes.� Maintains a list of costs to reach each nodes.
� Whenever a node is visited:
� Update all costs when visiting through the node
![Page 9: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/9.jpg)
Pathfinding Graphs
� Example:� Seen = [b]
� Costs in b = 0
5
2
2
2
3
34
b
a
c
4
Costs = 0
2
2
e
3
d
![Page 10: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/10.jpg)
Pathfinding Graphs
� Example:
� Go to all the edges
leaving b
� Mark the target nodes as
seen
� Give the target nodes 5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
� Give the target nodes
costs equal to the weight
of the edge
� Mark node b as done
2
2
e
3
d
Costs = 2
![Page 11: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/11.jpg)
Pathfinding Graphs
� Example:
� Pick the node with lowest
costs in the seen set
� We break tie by picking a
� Repeat what we did for b
� Go to all edges leaving a5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
� Go to all edges leaving a
� The edge to d put d into the
seen list and gives it costs
2+4
2
2
e
3
d
Costs = 2
Costs = 6
![Page 12: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/12.jpg)
Pathfinding Graphs
� Example:
� Processing a
� The edge to c goes to a
node already seen
� In this case, we need to
compare the costs through 5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
compare the costs through
a (costs of a + weight of
edge) to the costs
previously obtained (in this
case 2).
� We give it the minimum
costs 2 = min(5,2)
2
2
e
3
d
Costs = 2
Costs = 6
![Page 13: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/13.jpg)
Pathfinding Graphs
� Example:
� Now we can mark a as
done
5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
2
2
e
3
d
Costs = 2
Costs = 6
![Page 14: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/14.jpg)
Pathfinding Graphs
� Example:
� The seen list has two
elements, c and d
� c has minimum costs, so
we use it5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
2
2
e
3
d
Costs = 2
Costs = 6
![Page 15: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/15.jpg)
Pathfinding Graphs
� Example:
� Processing c
� There is an edge to e,
which places e in the seen
list with costs 2+55
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
2
2
e
3
d
Costs = 2
Costs = 6
Costs = 7
![Page 16: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/16.jpg)
Pathfinding Graphs
� Example:
� We select d in the seen
list
5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
2
2
e
3
d
Costs = 2
Costs = 6
Costs = 7
![Page 17: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/17.jpg)
Pathfinding Graphs
� Example:
� We select d in the seen
list
5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
2
2
e
3
d
Costs = 2
Costs = 6
Costs = 7
![Page 18: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/18.jpg)
Pathfinding Graphs
� Example:
� We have an edge to a
� However, a is already
done
� Because of the way we
select from the seen list, 5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
select from the seen list,
we know that we cannot
beat the costs to get to a
by going through e
� Because we know that the
costs to go to a is lower
than the costs to go to e
2
2
e
3
d
Costs = 2
Costs = 6
Costs = 7
![Page 19: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/19.jpg)
Pathfinding Graphs
� Example:
� We process the edge to d
� The alternative costs to d
is 9, so we do not change
the costs in d
� We now can mark e as 5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
� We now can mark e as
done 2
2
e
3
d
Costs = 2
Costs = 6
Costs = 7
![Page 20: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/20.jpg)
Pathfinding Graphs
� Example:
� There is only d left in the
seen list
� All other nodes are done
� Can stop5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
2
2
e
3
d
Costs = 2
Costs = 6
Costs = 7
![Page 21: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/21.jpg)
Pathfinding Graphs
� Example:
� We know the costs of
going to d
� But we do not know how
to get there.
� Solution:5
2
2
2
3
34
b
a
c
4
Costs = 0
Costs = 2
� Solution:
� Decorate each node with
the predecessor when
updating the costs.
2
2
e
3
d
Costs = 2
Costs = 6
Costs = 7
![Page 22: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/22.jpg)
Pathfinding Graphs
� Algorithm for Dijkstra1. Seen = [Start]
2. While Seen:
3. current = minimum([seen])
4. seen.remove(current); done.add(current)
5. for edge in current.edgesOut:
6. newVertex = edge.getFinish()
7. if newVertex not in seen and not in processed:
8. seen.append(newVertex)
9. newVertex.costs = current.costs + edge.weight
10. newVertex.predecessor = current
11. elif newVertex in seen:
12. altCosts = current.costs + edge.weight
13. if altCosts < newVertex.costs:
14. newVertex.costs = alt.costs
15. newVertex.predecessor = current
![Page 23: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/23.jpg)
Pathfinding Graphs
� Problems with Dijkstra
� Dijskstra looks at every edge
� Can stop Dijkstra when the goal edge has a costs smaller
than any of the nodes in the seen category, i.e. when we
process the goal
� But this does not mean that we do not have to look at lots � But this does not mean that we do not have to look at lots
of nodes
![Page 24: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/24.jpg)
Pathfinding Graphs
� Example:Goal
Start
![Page 25: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/25.jpg)
Pathfinding Graphs
� Example:Goal
Start
![Page 26: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/26.jpg)
Pathfinding Graphs
� Example:Goal
Start
![Page 27: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/27.jpg)
Pathfinding Graphs
� Example:Goal
Start
![Page 28: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/28.jpg)
Pathfinding Graphs
� Example:Goal
Start
![Page 29: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/29.jpg)
Pathfinding Graphs
� It might take processing lots of “obviously”
uninteresting nodes before we can process the goal
node
� Dijkstra works well to find minimum paths to all
nodes, but not so well for finding a minimum path to
a specific nodea specific node
![Page 30: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/30.jpg)
Implementing Dijkstra
� Graph data structure:� List of vertices
� For each vertex, a list of weighted edges
� Each edge is defined by a weight and a destination
� Lists data structure:� Lists data structure:
� Need to find the minimum cost node in the seen list
� Use priority queue
� In Python: module queue has PriorityQueue
� Defining edges:
� To use PriorityQueue, need to define a class Vertex, with sorting methods __le__, __ge__
![Page 31: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/31.jpg)
Implementing Dijkstra
� Algorithm
� Initialize lists:
� Seen contains starting node
� Done is empty
while not seen.empty()
current = seen.get()current = seen.get()
if current = goal:
#create path from information
for edge in current.edges():
vertex = edge.getDestination()
if vertex not in done:
# update vertex,
![Page 32: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/32.jpg)
Pathfinding Graphs
� A*
� Uses bounds in order to eliminate uninteresting branches
� Is very interesting for any search problem that can be
described with a graph
� Is a very generic algorithm used in gaming also for
strategic planning by avatars.strategic planning by avatars.
![Page 33: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/33.jpg)
Pathfinding Graphs
� A* Idea
� Use a heuristic to estimate the costs of a node to the goal
� Similar to Dijkstra
� Use value of node to select from seen list
Estimate 120Costs 78
Value 198
![Page 34: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/34.jpg)
Pathfinding Graphs
� In path-finding, the heuristics can be related to bird-
flight distance
![Page 35: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/35.jpg)
Pathfinding Graphs
� A*: Stopping Rule
� In Dijkstra:
� Stop when the minimum cost in the Seen-list is larger than the
current costs to the goal
� In A*:
� Goal node has smallest estimated costs in the Seen-list� Goal node has smallest estimated costs in the Seen-list
� To be sure, need established smallest costs
![Page 36: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/36.jpg)
Pathfinding Graphs
� Algorithm:
� Tree algorithm:
� Nodes characterized by location (original graph node) and costs
to get there.
� Additionally evaluated by costs estimate
![Page 37: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/37.jpg)
Romania with step costs in km
![Page 38: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/38.jpg)
A* search example
![Page 39: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/39.jpg)
A* search example
![Page 40: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/40.jpg)
A* search example
![Page 41: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/41.jpg)
A* search example
![Page 42: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/42.jpg)
A* search example
![Page 43: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/43.jpg)
A* search example
![Page 44: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/44.jpg)
Admissible heuristics
� A heuristic h(n) is admissible if for every node n,
h(n) ≤ h*(n), where h*(n) is the true cost to reach
the goal state from n.
� An admissible heuristic never overestimates the
cost to reach the goal, i.e., it is optimisticcost to reach the goal, i.e., it is optimistic
� Example: hSLD(n) (never overestimates the actual
road distance)
� Theorem: If h(n) is admissible, A* using TREE-
SEARCH is optimal
![Page 45: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/45.jpg)
Optimality of A* (proof)
� Suppose some suboptimal goal G2 has been generated and is in the
fringe. Let n be an unexpanded node in the fringe such that n is on a
shortest path to an optimal goal G.
�
� f(G2) = g(G2) since h(G2) = 0
� g(G2) > g(G) since G2 is suboptimal
� f(G) = g(G) since h(G) = 0
� f(G2) > f(G) from above
![Page 46: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/46.jpg)
Optimality of A* (proof)
� Suppose some suboptimal goal G2 has been generated and is in the fringe. Let nbe an unexpanded node in the fringe such that n is on a shortest path to an optimal goal G.
�
� f(G2) > f(G) from above
� h(n) ≤ h^*(n) since h is admissible
� g(n) + h(n) ≤ g(n) + h*(n)
� f(n) ≤ f(G)
�
Hence f(G2) > f(n), and A* will never select G2 for expansion
![Page 47: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/47.jpg)
Consistent heuristics� A heuristic is consistent if for every node n, every successor n' of n
generated by any action a, �
h(n) ≤ c(n,a,n') + h(n')
� If h is consistent, we have�
f(n') = g(n') + h(n') f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') ≥ g(n) + h(n) = f(n)
� i.e., f(n) is non-decreasing along any path.�
� Theorem: If h(n) is consistent, A* using GRAPH-SEARCH is optimal�
![Page 48: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/48.jpg)
Optimality of A*
� A* expands nodes in order of increasing f value
� Gradually adds "f-contours" of nodes
� Contour i has all nodes with f=fi, where fi < fi+1
![Page 49: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/49.jpg)
Pathfinding Graphs
� Heuristic selection
� Heuristic always too low
� A* takes longer to run
� Heuristic sometimes overestimates
� A* can produce wrong result
� Might still be OK for gaming� Might still be OK for gaming
![Page 50: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/50.jpg)
Pathfinding Graphs
� Heuristics selection
� Euclidean distance
� Admissible heuristic (always underestimates)
� In an indoor environment, can lead to long run-times
� Cluster heuristic
� Groups nodes in clusters
� Can be automatic, but is often provided by level design� Can be automatic, but is often provided by level design
� Look-up table gives smallest distance between members of two different clusters
� Heuristic:
� If start and end node are in the same cluster: Euclidean distance
� Otherwise, use minimum distance between points in both clusters
� Trade-off for choosing cluster size
� Clusters small � Large lookup table
� Clusters big � Inaccurate
![Page 51: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/51.jpg)
World Representation
� Needed to translate from level design to graph
representation
� Generation:
� Manual
� Automatic
� Validity:� Validity:
� If graph tells avatar to move from region A to region B then it
should be possible to reach any point in B from any point in A
� Validity is not always enforced
![Page 52: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/52.jpg)
World Representation
Poor quantization
But wall avoidance results in
useful path
Bad quantization
Path ends up in dead end
![Page 53: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/53.jpg)
World Representation
� Tiling
� Tile-based graphs are generated automatically
� Validity problems can arise if tiles are only partially blocked
Example of an invalid blockage
![Page 54: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/54.jpg)
World Representation
� Dirichlet Domains
� aka Voronoi poygons
� Tiles the plane into regions defined by “characteristic points”
� Regions made up of the points nearest to a points nearest to a characteristic point
� In general: do not give valid tiling
� Are popular because they can be automatically generated
![Page 55: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/55.jpg)
World Representation
� Points of visibility
� Observation: Optimal path has inflection points at convex
vertices in the environment
� Generate points at convex vertices
� If avatars have girth, move away from vertex
![Page 56: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/56.jpg)
World Representation
![Page 57: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/57.jpg)
World Representation
� Points of Visibility Graph
� Edges between points
� If one can be seen from the other
� Cast rays
� Can be taken to represent the centers of Dirichlet domain
� Can generate too many points� Can generate too many points
![Page 58: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/58.jpg)
World Representation
Vertices in a bloated visibility graph
![Page 59: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/59.jpg)
World Representation
� Division Schemes
� Games can have floor polygons (designed by level artist)
as regions
� Each polygon becomes a graph
� Difficult for artists to maintain validity
� Very popular� Very popular
� Pathengine middleware
![Page 60: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/60.jpg)
World Representation
� Additional information
� Graph vertex can represent more than just a position
� Example: Ship
� Cannot turn sharply
� Vertex represents position and orientation
![Page 61: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/61.jpg)
World Representation
� Cost functions
� Usually, cost function (edge weight) represents distance
� Can represent costs of moving
� Moving through swamp takes more time, P
![Page 62: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/62.jpg)
Path Smoothing
� Paths generated by path-finding can be erratic
� Path smoothing gives more believable paths
![Page 63: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/63.jpg)
Path Smoothing
� Algorithm
� Starting with the third node, cast a ray towards the
beginning node, the second node, P
� If ray goes not through, add the node to the smoothed
path node list
� Generates a reasonable smooth path, but not all possible � Generates a reasonable smooth path, but not all possible
ones
![Page 64: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/64.jpg)
Hierarchical Pathfinding
� Idea:
� Clustering:
� Group nodes into clusters
� Clusters for nodes of a higher level graph
� Continue
� Pathfinding:� Pathfinding:
� Find path on highest level
� For each super-node, find path inside super-node
� continue to lowest level
![Page 65: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/65.jpg)
Hierarchical Pathfinding
![Page 66: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/66.jpg)
Hierarchical Pathfinding
![Page 67: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/67.jpg)
Hierarchical Pathfinding
![Page 68: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/68.jpg)
Hierarchical Pathfinding
![Page 69: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/69.jpg)
Hierarchical Pathfinding
![Page 70: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/70.jpg)
Hierarchical Pathfinding
� Advantages
� Pathfinding in small graphs: Quick
� Disadvantages
� Distance between clusters are hard to measure
![Page 71: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/71.jpg)
Hierarchical Pathfinding
� Distance between clusters:
� Depends on from where you enter the cluster
� Using this information destroys advantages of hierarchical
pathfinding
� Heuristics
Minimum distance� Minimum distance
� Maximin distance
� Average minimum distance
![Page 72: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/72.jpg)
Hierarchical Pathfinding
� Minimum distance
� Distance(A,B) = min{|a-b|, a∈A, b∈B}
� Maximin distance
� For each incoming link into B and for each outgoing link
from B:
Calculate distance within B from incoming to outgoing link� Calculate distance within B from incoming to outgoing link
� Add the maximum of these distance to the cost of the incoming
link
![Page 73: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/73.jpg)
Hierarchical Pathfinding
� Maximin distance
AA
![Page 74: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/74.jpg)
Hierarchical Pathfinding
� Maximin distance: Inlink A � B
A
D
B
A
C
![Page 75: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/75.jpg)
Hierarchical Pathfinding
� Maximin distance: Inlink A � B
� Find anchor points for incoming and outgoing links
DB
A
C
![Page 76: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/76.jpg)
Hierarchical Pathfinding
DB
� Maximin distance: Inlink A � B� Find anchor points for incoming and outgoing links
� Calculate minimum distance between anchor points for A
A
C
![Page 77: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/77.jpg)
Hierarchical Pathfinding
DB
� Maximin distance:
� Add maximum of these distances to the costs of the inlink
A
C
![Page 78: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/78.jpg)
Hierarchical Pathfinding
� Average Minimum Distance
� Add the average distance between anchor points to the
costs of the inlink
� Minimum distance:
� connections within the cluster are free
Maximin distance� Maximin distance
� connections within the cluster are taken to be the
maximum possible
� Average Minimum Distance
� Is a compromise
![Page 79: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/79.jpg)
Open Goal Pathfinding
� Goal nodes are not necessarily unique
� e.g.: Avatar needs to find ammunition
� Ammunition dumps at various locations
� Pathfinding needs to give path to the nearest point with
ammunition
� A* heuristic is problematic� A* heuristic is problematic
� Assume nearest goal point is blocked
� A* uses the distance to nearest goal point in its heuristic
� A* will not investigate nodes in direction of alternative goal post
until late
![Page 80: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/80.jpg)
Hierarchical Pathfinding
� Dynamic pathfinding
� Situation can change
� Pathfinding needs to run again
� D* algorithm
� Similar to A*, but updates costs in the open node when the
environment changesenvironment changes
� Stentz, Anthony (1995), "The Focussed D* Algorithm for Real-
Time Replanning", In Proceedings of the International Joint
Conference on Artificial Intelligence: 1652–1659,
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.82
57
![Page 81: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/81.jpg)
Adaptive A*
� A* can use lots of memory
� IDA*
� Starts with a cut-off value
� Explores path only if they are below the cut-off value
� Uses A* heuristics to determine nodes that should be
consideredconsidered
� SMA*
� Uses a fixed limit on the number of “open” nodes
![Page 82: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/82.jpg)
Continuous Time Pathfinding
� Pathfinding task can change quickly, but predictably
� Example: Police car in a freeway chase
� Other cars move at constant speed in same lane, police car changes lanes and speeds
� Solution:
� Limit problem heuristically� Change lanes as soon as possible� Change lanes as soon as possible
� Move in current lane to potential lane change as quickly as possible
� Create a graph where each node corresponds to a possible situation
� Connections: � Lane change nodes: Time required to change lanes at current speed
� Boundary node: Travel in same lane as fast as possible, but brake before slamming into preceding car
� Safe opportunity nodes: Car travels in same lane as fast as possible until a point where a lane change can be made
� Unsafe opportunity nodes: Same, but do not brake in order not to slam in the preceding car.
![Page 83: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/83.jpg)
Movement Planning
� Extensions of nodes taking into account different
types of motion
� Animation defines different types of movement
� Only certain speeds / rotations can be represented
� Create a movement graph
� Each node represents
� position
� velocity
� possible animations
� Connections only if there is an animation
![Page 84: Artificial Intelligence for gamingtschwarz/COEN129/PPT/Pathfinding.pdfPathfinding Graphs Algorithm: Tree algorithm: Nodes characterized by location (original graph node) and costs](https://reader030.vdocument.in/reader030/viewer/2022040902/5e743ee7f2c8dc46de159a32/html5/thumbnails/84.jpg)
Footfall
� Movement graph where a node corresponds to a
certain foot setting