Download presentation
Presentation is loading. Please wait.
Published byMalcolm Griffin Modified over 9 years ago
2
P ROBLEM Write an algorithm that calculates the most efficient route between two points as quickly as possible.
3
I NTRODUCTION TO A LGORITHMS S EARCHING & F INDING Improving search techniques Simon Ellis 24 th March, 2014
4
Search techniques Breadth-first search (BFS) Depth-first search (DFS) Tree spanning Greedy best-first search Dijkstra’s algorithm
5
Improving search performance Guided search Uses an heuristic to improve performance Guaranteed to find a path if one exists Like other searches … but will always return the optimum path with admissible heuristic
6
Heuristics An heuristic is an experience-based technique used for problem-solving, learning and discovery Solution is not guaranteed to be optimal Speeds up process of finding a satisfactory solution using shortcuts Could be called ‘computational best-guesswork’
7
Heuristics Strategies using readily accessible, if not always strictly applicable, information to control and influence problem solving
8
Heuristics Common heuristics in humans include Trial and error Drawing a picture Writing out an algorithm Assuming you have a solution and attempting to derive from that (‘working backwards’) Talking to someone about a problem Obtaining a concrete example of an abstract problem Trying for a general solution before the specific one (‘inventor’s paradox’) Putting a problem aside and coming back to it later Getting someone else to do it for you
9
Admissibility An heuristic is admissible if and only if it is optimistic An ‘optimistic’ heuristic will never over-estimate the remaining cost to the goal from any given node n Assume n is a node h is an heuristic h(n) is the heuristic cost C(n) is the actual cost
10
Admissibility An admissible heuristic can be derived from Induction and inductive learning Information from databases with solutions to subproblems Relaxed versions of the problem
11
A* basics Best-first search Finds a least-cost path from initial node to goal node Uses a knowledge-plus-heuristic cost to determine search order Complete and admissible Will always find a solution if it exists Guaranteed to find the shortest path between nodes
12
A* basics Maintains 2 pieces of information Open list Contains candidate nodes which may lie along the path Closed list Contains nodes which have the lowest path score so far Nodes move between lists based on current information
13
A* basics Uses a knowledge-plus-heuristic cost Knowledge Movement cost to reach node n k from initial node n 0 G Heuristic cost to reach target node n t from node n k H Lowest total path cost to node n k is given by F = G + H Best path is given by sequence of nodes with lowest F
14
A* algorithm 1 1. Add initial node n 0 to open list 2. Do 1. Find the node with the lowest F cost on the open list, n c 2. Remove n c from the open list and add it to the closed list 3. For all nodes n k connected to n c 1. If node is on the closed list or not traversable (e.g. a wall): ignore it 2. If node is not on the open list: add it, record costs, make n c its parent 3. If node is already on the open list: check to see if this path to n c is better (i.e. a lower G score); if so, change parent of n c to n k and recalculate its G and F scores (may require resorting of open list) 4. Until 1. If n t is added to the closed list, path has been found 2. If open list is empty, there is no path
15
A* algorithm 2 3. Derive path if one exists 1. Begin at target node n t 2. Follow chain of parent nodes back to node n 0 3. Reverse order of nodes to derive path
16
A* heuristics There are some ‘standard heuristics’ GG For square grids, often the ‘Manhattan distance’ Orthogonal movement costs 10 or 1 Diagonal movement costs 14 or 1.4 For other graphs, the edge cost is generally used HH Straight-line distance often used Numerous other heuristics are possible (Manhattan, cross- product…)
17
A* heuristics Scales must be the same for both heuristics! What happens if scales are not the same? Firstly, heuristic is probably inadmissible (overestimates cost) Won’t find the best path Might take longer to run In short, will not find the best path in the best time
18
Example
24
A* performance Speed: O(b d ) Memory requirement: O(b d ) … why? Same as Dijkstra’s algorithm Dijkstra’s algorithm is effectively A* with H = 0 for all nodes
25
ANY QUESTIONS?
26
References Useful A* resources http://www.policyalmanac.org/games/aStarTutorial.htm http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html http://heyes-jones.com/astar.php Images from http://www.policyalmanac.org/games/aStarTutorial.htm
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.