1 / 64

Artificial Intelligence

This article discusses the implementation of uninformed search strategies, focusing on Breadth-First and Uniform-Cost Search methods. Uninformed strategies, also known as Blind Search, use only information available in the problem definition. The text covers the types of uninformed search methods and their properties, with a detailed example of Breadth-First and Uniform-Cost Search in a route-finding problem from Arad to Bucharest in Romania. The step-by-step procedures and properties of each search method are explained, highlighting their advantages, limitations, and application areas.

lnegrete
Download Presentation

Artificial Intelligence

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 Uninformed search strategies

  2. Search Implementation • Open set • Group of states that haven’t been expanded yet • Group of states that are children of nodes that have been expanded • Search strategy chooses which open state to expand next • “set” as in collection of objects, not strictly mathematical set • Data structure depends on search strategy • Closed set • Group of states that have been expanded • Often neglected (for space reasons), more later

  3. Search Implementation (2) Pseudocode: • Initialize Open to contain initial state • Choose/remove one state from Open • (Optional) Jump to (8) if already in Closed • Check if state is a goal state (done if so) • Get child states using successor function • Insert children into Open • (Optional) Insert original state into Closed • Repeat from (2)

  4. Uninformed Search Strategies • Uninformed strategies use only the information available in the problem definition • Also called “Blind Search” • No info on number of steps or path cost from “current state to goal state” • Only distinguish goal state from non-goal state • Consider route-finding problem (Arad to Bucharest) • Uninformed search has no preference of which to choose first between the three states connected to Arad • Informed (heuristic) search might notice that only Sibu is in the “direction of” Arad to Bucharest

  5. Uninformed Search Methods • Types • Breadth-first search • Uniform-cost search • Depth-first search • Depth-limited search • Iterative deepening search • Strategies differ by the order in which nodes are expanded (i.e., removed from Open set)

  6. Breadth-First Search • Expand root node, then expand all successors, then their successors, and so on • Expand shallowest unexpanded node first • Left-to-right or right-to-left ordering • All nodes at level d are expanded before level d+1 • Root node is level d = 0 • Method finds the shallowest goal state • Open set • Put new nodes at end, remove from front • Queue, first-in first-out (FIFO)

  7. Arad BFS Example: Romania Open = { Arad } Closed = { }

  8. Arad Sibu Timisoara Zerind BFS Example: Romania Open = { Zerind, Sibu, Timisoara } Closed = { Arad }

  9. Arad Sibu Timisoara Zerind Arad Oradea BFS Example: Romania Open = { Sibu, Timisoara, Arad, Oradea } Closed = { Arad, Zerind }

  10. Arad Arad Sibu Timisoara Zerind Arad Fagaras Oradea Oradea Rimnicu Vilcea BFS Example: Romania Open = { Timisoara, Arad, Oradea, Arad, Oradea, Fagaras, Rimnicu Vicea} Closed = { Arad, Zerind, Sibu }

  11. Arad Arad Arad Sibu Lugoj Timisoara Zerind Arad Fagaras Oradea Oradea Rimnicu Vilcea BFS Example: Romania Open = { Arad, Oradea, Arad, Oradea, Fagaras, Rimnicu Vicea, Arad, Lugoj } Closed = { Arad, Zerind, Sibu, Timisoara }

  12. Properties of Breadth-First Search • Complete (good) • If branching factor b is finite • Space – nodes generated (exponential - bad) • O(bd+1) = b + b2 + … + bd + (bd+1 – b) , d = goal depth • Assume goal is last node (e.g., rightmost) at depth d • Goal state is not expanded • Big limitation (need lots of space) • Depth=10, branching=10, space=1000 bytes/node  101 terabytes! • Time (bad) • Same as space • Optimality (good) • Not in general, shallowest may not be optimal path cost • Optimal if path cost non-decreasing function of node depth

  13. Uniform-Cost Search • Modified breadth-first strategy • Expand least-cost unexpanded leaf node first (rather than lowest-depth as in BFS) • General additive cost function • I.e. cost from initial state to current state • Not cost from current state to goal! – not “informed” search!! • Guaranteed to be the cheapest solution • Otherwise it would have been expanded later • Open set • Remove nodes in order of increasing path cost • Priority queue

  14. Romania Step Costs in km Neamt Oradea 71 87 Zerind 151 75 Iasi Arad Sibiu Fagaras 92 140 99 Vaslui 118 80 Rimnicu Vilcea 142 Timisoara 211 97 111 Pitesti 98 Lugoj Hirsova 146 85 70 Urziceni 101 Mehadia 138 86 75 90 Bucharest Debreta Craiova 120 Eforie Giurgiu

  15. Arad UCS Example: Romania Open = { Arad(0) } Closed = { }

  16. Arad Sibu Timisoara Zerind UCS Example: Romania 75 118 140 g = 75 g = 140 g = 118 Open = { Zerind(75), Timisoara(118), Sibu(140) } Closed = { Arad }

  17. Arad Sibu Timisoara Zerind Arad Oradea UCS Example: Romania 75 118 140 75 71 g = 140 g = 118 g = 75 + 71=146 Open = { Timisoara(118), Sibu(140), Oradea(146), Arad(150) } Closed = { Arad, Zerind }

  18. Arad Arad Sibu Lugoj Timisoara Zerind Arad Oradea UCS Example: Romania 75 118 140 75 111 71 118 g = 140 g = 75 + 71=146 g = 118 + 111 = 229 Open = { Sibu(140), Oradea(146), Arad(150), Lugoj(229), Arad(236) } Closed = { Arad, Zerind, Timisoara }

  19. Properties of Uniform Cost Search • Complete (good) • Time and space (can be bad) • Additional cost of priority queue • Can be much greater than bd • Can explore large subtrees of small steps before exploring large (and perhaps useful) steps • Optimal (good)

  20. Depth-First Search • Always expand deepest unexpanded node (on the fringe) first • Left-to-right or right-to-left ordering • Only when hit “dead-end” (leaf) does search go back and expand nodes at next shallower level • Open set • Put new nodes at end, remove from end • Stack, last-in first-out (LIFO)

  21. Arad DFS Example: Romania Open = { Arad } Closed = { }

  22. Arad Sibu Timisoara Zerind DFS Example: Romania Open = { Timisoara, Sibu, Zerind } Closed = { Arad }

  23. Arad Sibu Timisoara Zerind Arad Oradea DFS Example: Romania Open = { Timisoara, Sibu, Oradea, Arad } Closed = { Arad, Zerind }

  24. Arad Sibu Sibu Timisoara Timisoara Zerind Zerind Arad Oradea DFS Example: Romania Open = { Timisoara, Sibu, Oradea, Timisoara, Sibu, Zerind } Closed = { Arad, Zerind, Arad }

  25. Arad Sibu Sibu Timisoara Timisoara Zerind Zerind Arad Oradea DFS Example: Romania Depth-first search can perform infinite cyclic excursions if not check for repeated-states! (more later)

  26. DFS Example:Depth-3 Binary Tree

  27. DFS Example:Depth-3 Binary Tree

  28. DFS Example:Depth-3 Binary Tree

  29. DFS Example:Depth-3 Binary Tree

  30. DFS Example:Depth-3 Binary Tree

  31. DFS Example:Depth-3 Binary Tree

  32. DFS Example:Depth-3 Binary Tree

  33. DFS Example:Depth-3 Binary Tree

  34. DFS Example:Depth-3 Binary Tree

  35. DFS Example:Depth-3 Binary Tree

  36. Properties of Depth-First Search • Potentially not complete (can be bad) • Fails in infinite-depth spaces or with loops • Time (bad) • O(bm), m=maximum depth • Bad if m is larger than depth of goal (d) • Good if multiple solutions (hit one) • Space (better) • O(mb), linear space (keep only leaf nodes“as you go”) • b leaf nodes at each level stored (up to level m) • Optimality (bad) • No, it returns the first deepest solution, so it could miss a shallower solution it has not yet seen (even at low depth)

  37. “Depth-Limited” Search • Depth-first search with depth limit of l • Avoids pitfalls of depth-first search by imposing a cutoff (stop) depth • Implementation • Depth-first stack with nodes at depth l having no successors • With 20 cities in the Arad to Bucharest example, know that a solution length < 20 exists • Guaranteed to find solution (if exists), but not guaranteed to find shortest solution • Complete (if depth limit big enough), but not optimal • Time and space complexity of depth-first search

  38. Iterative Deepening Search • Sidesteps issue of choosing best depth limit • Finding good depth limit is difficult for most problems • Try all possible depth limits • First depth 0, then depth 1, then depth 2, … • May seem wasteful, but overhead is not very costly • Because most of the nodes are toward bottom of tree • Not costly to generate upper nodes multiple times • Preferred method with large search space and depth of solution not known

  39. Arad Iterative Deepening Search: l=0 [Stop]

  40. Arad Iterative Deepening Search: l=1

  41. Arad Sibu Timisoara Zerind Iterative Deepening Search: l=1 [Stop]

  42. Arad Iterative Deepening Search: l=2

  43. Arad Sibu Timisoara Zerind Iterative Deepening Search: l=2

  44. Arad Sibu Timisoara Zerind Arad Oradea Iterative Deepening Search: l=2

  45. Arad Arad Sibu Timisoara Zerind Arad Fagaras Oradea Oradea Rimnicu Vilcea Iterative Deepening Search: l=2

  46. Arad Arad Arad Sibu Lugoj Timisoara Zerind Arad Fagaras Oradea Oradea Rimnicu Vilcea Iterative Deepening Search: l=2 [Stop]

  47. Properties of Iterative Deepening Search • Complete (good) • Time (not toobad) • O(bd), where d is depth of shallowest solution • Breadth-first finds shallowest (good for path cost when is non-decreasing function of the depth) • Space (good) • O(bd) – as in depth-first • Optimality (good) • Yes (Same as BFS) IDS combines benefits of depth-first and breadth-first search

  48. Properties of Iterative Deepening Search • Nodes generated when goal at depth d (bottom level; root is depth 0) with branching factor b (d)b + (d-1)b2 + …+ (1)bd  O(bd) Cost: IDS vs. DLS Children of root generated d times Nodes at bottom generated once Note: root node always generated/available

  49. Properties of Iterative Deepening Search • Compare to Breadth-first search b + b2 + …+ bd + (bd+1 – b ) O(bd+1) • Comparison for b = 10 and d = 5 • #nodes(IDS) = 123,450 • #nodes(BFS) = 1,111,100 Assume goal is last node (e.g., rightmost) at depth d These are nodes already put in the queue/stack from the non-goal nodes at depth d (though not examined later) Depth-first search does not have these extra nodes

  50. When To Use Iterative Deepening Search? “In general, Iterative Deepening is the preferred uninformed search method when there is a large search space and the depth of the solution is not known.”

More Related