1 / 33

Artificial Intelligence in Game Design

Artificial Intelligence in Game Design. Lecture 11: Path Planning Algorithms. Path Planning Algorithms. Dijkstra’s shortest path algorithm Guaranteed to find shortest path Not fast ( O ( n 2 ) ) A* path algorithm Requires estimation heuristic Much faster

shel
Download Presentation

Artificial Intelligence in Game Design

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. Artificial Intelligence in Game Design Lecture 11: Path Planning Algorithms

  2. Path Planning Algorithms • Dijkstra’s shortest path algorithm • Guaranteed to find shortest path • Not fast (O (n2) ) • A* path algorithm • Requires estimation heuristic • Much faster • Not guaranteed to find shortest path depending on heuristic

  3. Dijkstra Algorithm Example • Example: 5 2 6 6 1 7 1 8 3

  4. Dijkstra Algorithm Example • Example as a graph: E 5 D 2 6 B 6 1 7 A 1 G 8 3 C Goal: find shortest path from A to G

  5. Dijkstra Algorithm Components • Tree • Contains all explored nodes • Initially start node • Assumption: know shortest path from start to all nodes in rest of tree • Fringe • All nodes adjacent to some tree node • Assumption : know shortest path from start to all fringe nodes using only nodes in tree • Unknown • All nodes not in tree or fringe

  6. Dijkstra Algorithm Components • Data structure for each node stores: • State of that node (tree, fringe, or unknown) • Shortest path (so far) from start to node • Total cost of that path • Initially: • Fringe nodes have just edge from start • Unknown nodes have no path

  7. Dijkstra Algorithm At each cycle: • Add fringe node n with shortest path to tree • Recheck all nodes f in fringe to see if now shorter path using n • If current best path to f > path to n + edge from n to fnew path to f = path to n + edge from n to f • Add unknown nodes uadjacent to n to fringe • u’s path = path to n + edge from n to u • Done when goal node in tree • At that point, have shortest path to goal from start

  8. Dijkstra Algorithm Example Initially: • Start node A in tree • Adjacent nodes B, C, and E in fringe • Paths to nodes = edge from start E 5 D 2 6 B 6 1 7 A 1 G 8 3 C

  9. Dijkstra Algorithm Example

  10. Dijkstra Algorithm Example Next step: • Add E to tree (shortest path of B, C, and E) • Check whether creates shorter path to B (no) • Check whether adjacent to unknown nodes (no) E 5 D 2 6 B 6 1 7 A 1 G 8 3 C

  11. Dijkstra Algorithm Example Check whether A  E  B shorter Cost of A  E  B = 7, so no change

  12. Dijkstra Algorithm Example Next step: • Add B to tree (shortest path of B and C) • Check whether creates shorter path to B (yes) • Check whether adjacent to unknown nodes (yes) E 5 D 2 6 B 6 1 7 A 1 G 8 3 C

  13. Dijkstra Algorithm Example Check whether A  B  C shorter Cost of A  B  C = 7, so use it as path Paths to new nodes = path to B + edge from B

  14. Dijkstra Algorithm Example Next step: • Add C to tree (shortest path of C, D,and G) • Check whether creates shorter path to G (yes) E 5 D 2 6 B 6 1 7 A 1 G 8 3 C

  15. Dijkstra Algorithm Example Check whether A  C  G shorter Cost of A  B  C  G = 10, so use it as path

  16. Dijkstra Algorithm Example Next step: Add goal node G to tree (shortest path of D and G) Algorithm finished No possibility of shorter path through D E 5 D 2 6 B 6 1 7 A 1 G 8 3 C

  17. Dijkstra Algorithm Example Final path and path cost

  18. Dijkstra Algorithm Analysis • Worst case: may need to example alln nodes • For each step, must check allm nodes in fringe • Worst case: all n nodes in fringe • Unlikely, since most levels far less interconnected • Number of comparisons: O (nm) • O (n2) in worst case

  19. The A* Algorithm • Similar in structure to Dijkstra • Tree, fringe, and unknown nodes • Store “best path so far” fro each node explored • Choose next fringe node to add to tree • Idea: Choose fringe node n believed to be part of “shortest path” • Haven’t explored entire graph yet, so don’t know path length • Requires estimate of total path length • Estimate is a heuristicH(n)

  20. The A* Algorithm • Estimated path length for path including n = length of path from start to n + estimated distance from n to goal Known, since have explored graph from start to n Requires heuristicH(n) to create an estimate Start Goal

  21. A* Algorithm Example 90 CLE YNG 60 70 AKR CAN 70 30 PIT 80 75 50 WHE COL 100 Goal: find shortest path from YNG to COL

  22. A* Algorithm Example Heuristic H (n) = “as crow flies” distance to COL

  23. A* Algorithm Example Best path so far

  24. A* Algorithm Example Add CAN to fringe

  25. A* Algorithm Example Best path so far

  26. A* Algorithm Example Add COL to fringe

  27. A* Algorithm Example Best path so far

  28. A* Algorithm Example Like Dijkstra, reevaluate all other nodes in fringe to see if new tree node gives shorter path

  29. A* Algorithm Example When goal node added to tree, algorithm done Best path

  30. A* Heuristics • A* heuristic admissible if always underestimates distance to goalH (n) ≤ actual distance to goal • True for example • Usually true for “as crow flies” estimates A* Heuristics

  31. A* Heuristics • Heuristic may not be valid if “short cuts” in level • Estimated path using C has length 12.5 • Actual path has length 6 (using transporter pad) • Path using A has estimated length 7 • Goal added to tree before C ever explored • However, non-optimal behavior may be more plausible • Character may not know about transporter pad! B C Start “Transporter pad” between C and goal A Goal D

  32. A* Heuristics • Algorithm can be inefficient if heuristic severely underestimates distance • PIT and other obviously implausible nodes (CHI, PHI, NY, TOR, etc.) not explored • If all estimated distances low (1 for example) then all will be explored • Adjacent nodes (YNG  PIT  PHIL) explored before paths with closer but more nodes (YNG  AKR  CAN  COL)

  33. A* Heuristics • Heuristic underestimates can happen in levels with costly terrain • Estimated distance = 4 squares • Actual distance = 2 + 5 + 5 = 9 due to desert, mountains • No perfect solution • Potential hierarchical solution: • Create high-level map with terrain type of large general areas • Determine which areas direct path to goal would cross • Factor in terrain costs Start Estimated distance = width of forest area * cost of forest +width of mountain area * cost of mountain Goal

More Related