Presentation is loading. Please wait.

Presentation is loading. Please wait.

P ROBLEM Write an algorithm that calculates the most efficient route between two points as quickly as possible.

Similar presentations


Presentation on theme: "P ROBLEM Write an algorithm that calculates the most efficient route between two points as quickly as possible."— Presentation transcript:

1

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’ GG  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 HH  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

19

20

21

22

23

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


Download ppt "P ROBLEM Write an algorithm that calculates the most efficient route between two points as quickly as possible."

Similar presentations


Ads by Google