120 likes | 491 Views
Search. Exhaustive/Blind Search Methods Depth First Search Breadth First Search Heuristic Methods Hill Climbing Beam Search Best First Search…. Goal. You should be able to tell if search is the best way to solve a problem and If so, which search method is most suitable. Find a Path. 4.
E N D
Search • Exhaustive/Blind Search Methods • Depth First Search • Breadth First Search • Heuristic Methods • Hill Climbing • Beam Search • Best First Search…
Goal • You should be able to tell if search is the best way to solve a problem and • If so, which search method is most suitable
Find a Path 4 A B C 4 3 5 5 s G 4 3 F D E 2 4
Find a Path • Shortest Path • Any Path • Blind Search • BFS • DFS
Search Tree • List all possible paths • Eliminate cycles from paths • Result: A search tree • A special kind of semantic tree where each node denotes a path
Search Tree – Terminology • Root Node • Leaf Node • Ancestor/Descendant • Branching factor • Complete path/Partial path • Expanding open nodes results in closed nodes
Search Trees - Analysis • Exponential explosion of possible paths • Branching factor b, Depth d, how many possible paths?
Depth First Search (DFS) • Form a one element queue consisting of a zero-length path that only contains root • Until the first path in the queue terminates at the goal node or the queue is empty • Remove the first path from the queue; create new paths by extending the first path to all neighbors of the terminal node • Reject all new paths with loops • Add the new paths if any to the FRONT of the queue • If the goal node is foundsuccess; else failure
Breadth First Search (BFS) • Form a one element queue consisting of a zero-length path that only contains root • Until the first path in the queue terminates at the goal node or the queue is empty • Remove the first path from the queue; create new paths by extending the first path to all neighbors of the terminal node • Reject all new paths with loops • Add the new paths if any to the BACK of the queue • If the goal node is foundsuccess; else failure
BFS or DFS • DFS is good when partial paths quickly reach dead ends or become complete paths. DFS is bad when there are long paths (infinite) • BFS works on trees that are effectively infinitely deep, bad when all paths lead to the goal node at more or less the same depth. BFS is not good when b is large
NonDeterministic Search • Form a one element queue consisting of a zero-length path that only contains root • Until the first path in the queue terminates at the goal node or the queue is empty • Remove the first path from the queue; create new paths by extending the first path to all neighbors of the terminal node • Reject all new paths with loops • Add the new paths at RANDOM places in the queue • If the goal node is foundsuccess; else failure
NDFS • When you do not have enough information to choose between BFS and DFS