1 / 26

Problem

Problem. Write an algorithm that calculates the most efficient route between two points as quickly as possible. Introduction to Algorithms. Search techniques. Breadth-first search (BFS) Depth-first search (DFS) Tree spanning Greedy best-first search Dijkstra’s algorithm.

cruz
Download Presentation

Problem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problem Write an algorithm that calculates the most efficient routebetween two points as quickly as possible.

  2. Introduction to Algorithms

  3. Search techniques • Breadth-first search (BFS) • Depth-first search (DFS) • Tree spanning • Greedy best-first search • Dijkstra’s algorithm

  4. 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

  5. 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’

  6. Heuristics • Strategies using readily accessible, if not always strictly applicable, information to control and influence problem solving

  7. 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

  8. 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

  9. Admissibility • An admissible heuristic can be derived from • Induction and inductive learning • Information from databases with solutions to subproblems • Relaxed versions of the problem

  10. 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

  11. 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

  12. A* basics • Uses a knowledge-plus-heuristic cost • Knowledge • Movement cost to reach node nk from initial node n0G • Heuristic cost to reach target node nt from node nkH • Lowest total path cost to node nk is given by F = G + H • Best path is given by sequence of nodes with lowest F

  13. A* algorithm 1 • Add initial node n0 to open list • Do • Find the node with the lowest F cost on the open list, nc • Remove nc from the open list and add it to the closed list • For all nodes nk connected to nc • If node is on the closed list or not traversable (e.g. a wall): ignore it • If node is not on the open list: add it, record costs, make nc its parent • If node is already on the open list: check to see if this path to nc is better (i.e. a lower G score); if so, change parent of nc to nk and recalculate its G and F scores (may require resorting of open list) • Until • If nt is added to the closed list, path has been found • If open list is empty, there is no path

  14. A* algorithm 2 • Derive path if one exists • Begin at target node nt • Follow chain of parent nodes back to node n0 • Reverse order of nodes to derive path

  15. A* heuristics • There are some ‘standard heuristics’ • 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 • Straight-line distance often used • Numerous other heuristics are possible (Manhattan, cross-product…)

  16. 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

  17. Example

  18. Example

  19. Example

  20. Example

  21. Example

  22. Example

  23. A* performance • Speed: O(bd) • Memory requirement: O(bd) • … why? • Same as Dijkstra’s algorithm • Dijkstra’s algorithm is effectively A* with H = 0 for all nodes

  24. ANY QUESTIONS?

  25. 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

More Related