A* Data Structures and Heuristics Flashcards

1
Q

Ways of improving pathfinding performance

A

A* data structures
Heuristics for pathfinding
A* variants for pathfinding

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Types of data structures we can use on the Open and Closed lists of A*

A

List ordered by F-Value
Array where we can use binary search
Priority Heap

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Priority Heap defenition

A

Binary tree where all nodes are ordered in relation with their parent

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Define Insertion on Priority Heap

A

Insert element on next available position (left to right)

Heapify Bottom up

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Insertion Complexity on Priority Heap

A

O(log n)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Define Extract on Priority Heap

A

Replace root with most bottom-right value

Heapify Top Down

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Extract Complexity on Priority Heap

A

O(log n)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

When should we use Node Array A*?

A

When we want to trade memory for speed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What should we do different on Node Array A* compared to A*?

A

Create an array with node records for all nodes in the graph before the algorithm begins
Number nodes using sequential integers
Give an adittional feature to the nodeRecord called Category (unvisited, open, closed)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Why is Node Array A* faster?

A

Testing if a node is in open or closed is very fast
Closed List is not needed
Open list is now ordered by F value

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Fill definition

A

Number of nodes considered by the search algorithm but are not part of the shortest path

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Examples of heuristics for open spaces

A
Euclidean distance
Manhatan distance (where diagonall movements are not allowed)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are good ways to Solve Ties in the Open List?

A

Prefer nodes with lowest heuristic value
Slightly increase the value of the heuristic
Prefer recent nodes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

For indoors levels should we use traditional distance heuristics or cluster based heuristics?

A

Cluster based heuristics

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Define Cluster Heuristics

A

Group nodes in clusters

Clusters represent regions of the level highly interconnected

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How does Floodfill Clustering work for clustering creation?

A

1- Find the top leftmost tile that is not in a cluster
2- Fill to the right until: Area opens upward/Reaching a non-free tile
3- Check borders: If border shrinks after a first grow/Stop at regrow
4- Repeat from 1

17
Q

Define Cluster Table Heuristic

A

Create a table with distances between clusters

18
Q

Problems with Cluster Table Heuristic

A

A* will explore all nodes in a cluster before exploring the next cluster
If cluster sizes are small we mitigate this problem but we have much more pre-processing to do

19
Q

Examples of Heuristics for room based maps

A

Dead-End Heuristic

Gateway Heuristic

20
Q
A