Searching the search space graph

Slides:



Advertisements
Similar presentations
Artificial Intelligent
Advertisements

Solving problems by searching Chapter 3. Outline Problem-solving agents Problem types Problem formulation Example problems Basic search algorithms.
Additional Topics ARTIFICIAL INTELLIGENCE
Review: Search problem formulation
Uninformed search strategies
Lecture 3: Uninformed Search
Problem Solving Agents A problem solving agent is one which decides what actions and states to consider in completing a goal Examples: Finding the shortest.
1 Lecture 3 Uninformed Search. 2 Uninformed search strategies Uninformed: While searching you have no clue whether one non-goal state is better than any.
Solving Problems by Searching Currently at Chapter 3 in the book Will finish today/Monday, Chapter 4 next.
Uninformed (also called blind) search algorithms) This Lecture Chapter Next Lecture Chapter (Please read lecture topic material before.
Properties of breadth-first search Complete? Yes (if b is finite) Time? 1+b+b 2 +b 3 +… +b d + b(b d -1) = O(b d+1 ) Space? O(b d+1 ) (keeps every node.
CS 480 Lec 3 Sept 11, 09 Goals: Chapter 3 (uninformed search) project # 1 and # 2 Chapter 4 (heuristic search)
Blind Search1 Solving problems by searching Chapter 3.
Search Strategies Reading: Russell’s Chapter 3 1.
May 12, 2013Problem Solving - Search Symbolic AI: Problem Solving E. Trentin, DIISM.
1 Chapter 3 Solving Problems by Searching. 2 Outline Problem-solving agentsProblem-solving agents Problem typesProblem types Problem formulationProblem.
1 Blind (Uninformed) Search (Where we systematically explore alternatives) R&N: Chap. 3, Sect. 3.3–5.
Solving Problem by Searching Chapter 3. Outline Problem-solving agents Problem formulation Example problems Basic search algorithms – blind search Heuristic.
1 Lecture 3 Uninformed Search. 2 Uninformed search strategies Uninformed: While searching you have no clue whether one non-goal state is better than any.
1 Lecture 3: 18/4/1435 Uninformed search strategies Lecturer/ Kawther Abas 363CS – Artificial Intelligence.
Touring problems Start from Arad, visit each city at least once. What is the state-space formulation? Start from Arad, visit each city exactly once. What.
14 Jan 2004CS Blind Search1 Solving problems by searching Chapter 3.
Artificial Intelligence (CS 461D)
Uninformed (also called blind) search algorithms This Lecture Read Chapter Next Lecture Read Chapter (Please read lecture topic material.
Search Strategies CPS4801. Uninformed Search Strategies Uninformed search strategies use only the information available in the problem definition Breadth-first.
UNINFORMED SEARCH Problem - solving agents Example : Romania  On holiday in Romania ; currently in Arad.  Flight leaves tomorrow from Bucharest.
Artificial Intelligence Lecture No. 7 Dr. Asad Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
14 Jan 2004CS Blind Search1 Solving problems by searching Chapter 3.
CHAPTER 3 CMPT Blind Search 1 Search and Sequential Action.
An Introduction to Artificial Intelligence Lecture 3: Solving Problems by Sorting Ramin Halavati In which we look at how an agent.
CS 380: Artificial Intelligence Lecture #3 William Regli.
Review: Search problem formulation
Artificial Intelligence Chapter 3: Solving Problems by Searching
1 Lecture 3 Uninformed Search. 2 Complexity Recap (app.A) We often want to characterize algorithms independent of their implementation. “This algorithm.
CS 188: Artificial Intelligence Spring 2006 Lecture 2: Queue-Based Search 8/31/2006 Dan Klein – UC Berkeley Many slides over the course adapted from either.
1 Lecture 3 Uninformed Search
Lecture 3 Uninformed Search.
Review: Search problem formulation Initial state Actions Transition model Goal state (or goal test) Path cost What is the optimal solution? What is the.
CS 440 / ECE 448 Introduction to Artificial Intelligence Spring 2010 Lecture #3 Instructor: Eyal Amir Grad TAs: Wen Pu, Yonatan Bisk Undergrad TAs: Sam.
Artificial Intelligence
AI in game (II) 권태경 Fall, outline Problem-solving agent Search.
Lecture 3: Uninformed Search
An Introduction to Artificial Intelligence Lecture 3: Solving Problems by Sorting Ramin Halavati In which we look at how an agent.
SOLVING PROBLEMS BY SEARCHING Chapter 3 August 2008 Blind Search 1.
A General Introduction to Artificial Intelligence.
1 Solving problems by searching Chapter 3. Depth First Search Expand deepest unexpanded node The root is examined first; then the left child of the root;
Basic Problem Solving Search strategy  Problem can be solved by searching for a solution. An attempt is to transform initial state of a problem into some.
1 search CS 331/531 Dr M M Awais REPRESENTATION METHODS Represent the information: Animals are generally divided into birds and mammals. Birds are further.
Uninformed search strategies A search strategy is defined by picking the order of node expansion Uninformed search strategies use only the information.
Problem Solving as Search. Problem Types Deterministic, fully observable  single-state problem Non-observable  conformant problem Nondeterministic and/or.
Uninformed Search Methods
Uninformed (also called blind) search algorithms This Lecture Read Chapter Next Lecture Read Chapter (Please read lecture topic material.
Implementation: General Tree Search
Fahiem Bacchus © 2005 University of Toronto 1 CSC384: Intro to Artificial Intelligence Search II ● Announcements.
Solving problems by searching A I C h a p t e r 3.
Blind Search Russell and Norvig: Chapter 3, Sections 3.4 – 3.6 CS121 – Winter 2003.
Search Part I Introduction Solutions and Performance Uninformed Search Strategies Avoiding Repeated States Partial Information Summary.
Brian Williams, Fall 041 Analysis of Uninformed Search Methods Brian C. Williams Sep 21 st, 2004 Slides adapted from: Tomas Lozano Perez,
Chapter 3 Solving problems by searching. Search We will consider the problem of designing goal-based agents in observable, deterministic, discrete, known.
Artificial Intelligence Solving problems by searching.
Chapter 3 (Part-II) Section 3.4, 3.5, 3.6 Uninformed Search.
Lecture 3 Problem Solving through search Uninformed Search
Lecture 3: Uninformed Search
Uninformed Search Chapter 3.4.
Prof. Dechter ICS 270A Winter 2003
Russell and Norvig: Chapter 3, Sections 3.4 – 3.6
Solving problems by searching
EA C461 – Artificial Intelligence
Artificial Intelligence
Presentation transcript:

Searching the search space graph 171: Class 3

Recap: State-Space Formulation Intelligent agents: problem solving as search Search consists of state space operators start state goal states The search graph A Search Tree is an effective way to represent the search process There are a variety of search algorithms, including Depth-First Search Breadth-First Search Others which use heuristic knowledge (in future lectures)

Uninformed search strategies Uninformed: While searching you have no clue whether one non-goal state is better than any other. Your search is blind. You don’t know if your current exploration is likely to be fruitful. Various blind strategies: Breadth-first search Uniform-cost search Depth-first search Iterative deepening search

Breadth-first search Implementation: Expand shallowest unexpanded node Fringe: nodes waiting in a queue to be explored, also called OPEN Implementation: fringe is a first-in-first-out (FIFO) queue, i.e., new successors go at end of the queue. Is A a goal state?

Breadth-first search Expand shallowest unexpanded node Implementation: fringe is a FIFO queue, i.e., new successors go at end Expand: fringe = [B,C] Is B a goal state?

Breadth-first search Expand shallowest unexpanded node Implementation: fringe is a FIFO queue, i.e., new successors go at end Expand: fringe=[C,D,E] Is C a goal state?

Breadth-first search Expand shallowest unexpanded node Implementation: fringe is a FIFO queue, i.e., new successors go at end Expand: fringe=[D,E,F,G] Is D a goal state?

Example BFS

Example: Map Navigation S G A B D E C F S = start, G = goal, other nodes = intermediate states, links = legal transitions

Initial BFS Search Tree D B D E C E S G A B D E C F Note: this is the search tree at some particular point in in the search.

Breadth First Search Tree (BFS) (Use the simple heuristic of not generating a child node if that node is a parent to avoid “obvious” loops: this clearly does not avoid all loops and there are other ways to do this)

What is the Complexity of Breadth-First Search? Time Complexity assume (worst case) that there is 1 goal leaf at the RHS so BFS will expand all nodes = 1 + b + b2+ ......... + bd = O (bd) Space Complexity how many nodes can be in the queue (worst-case)? at depth d there are bd unexpanded nodes in the Q = O (bd) Time and space of number of generated nodes is O (b^(d+1)) d=0 d=1 d=2 G d=0 d=1 d=2 G

Examples of Time and Memory Requirements for Breadth-First Search Depth of Nodes Solution Expanded Time Memory 0 1 1 millisecond 100 bytes 2 111 0.1 seconds 11 kbytes 4 11,111 11 seconds 1 megabyte 8 108 31 hours 11 giabytes 12 1012 35 years 111 terabytes Assuming b=10, 1000 nodes/sec, 100 bytes/node

Depth-First-Search (*) 1. Put the start node s on OPEN 2. If OPEN is empty exit with failure. 3. Remove the first node n from OPEN and place it on CLOSED. 4. If n is a goal node, exit successfully with the solution obtained by tracing back pointers from n to s. 5. Otherwise, expand n, generating all its successors attach to them pointers back to n, and put them at the top of OPEN in some order. 6. Go to step 2.

Breadth-First Search (BFS) Properties Complete Solution Length: optimal (Can) expand each node once (if checks for duplicates) Search Time: O(bd) Memory Required: O(bd) Drawback: requires exponential space 1 3 7 15 14 13 12 11 10 9 8 4 5 6 2

Depth-first search Expand deepest unexpanded node Implementation: fringe = Last In First Out (LIPO) queue, i.e., put successors at front Is A a goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[B,C] Is B a goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[D,E,C] Is D = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[H,I,E,C] Is H = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[I,E,C] Is I = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[E,C] Is E = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[J,K,C] Is J = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[K,C] Is K = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[C] Is C = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[F,G] Is F = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[L,M,G] Is L = goal state?

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front queue=[M,G] Is M = goal state?

Example DFS

Search Method 2: Depth First Search (DFS) G A B D E C F B D C E Here, to avoid repeated states assume we don’t expand any child node which appears already in the path from the root S to the parent. (Again, one could use other strategies) F D G

Depth-First-Search (*) 1. Put the start node s on OPEN 2. If OPEN is empty exit with failure. 3. Remove the first node n from OPEN and place it on CLOSED. 4. If n is a goal node, exit successfully with the solution obtained by tracing back pointers from n to s. 5. Otherwise, expand n, generating all its successors attach to them pointers back to n, and put them at the top of OPEN in some order. 6. Go to step 2.

What is the Complexity of Depth-First Search? Time Complexity assume (worst case) that there is 1 goal leaf at the RHS so DFS will expand all nodes (m is cutoff) =1 + b + b2+ ......... + b^m = O (b^m) Space Complexity how many nodes can be in the queue (worst-case)? at depth l < d we have b-1 nodes at depth d we have b nodes total = (m-1)*(b-1) + b = O(bm) d=1 d=2 G d=0 d=1 d=2 d=3 d=4

Repeated states Failure to detect repeated states can turn a linear problem into an exponential one!

Solutions to repeated states B S B C C C S B S State Space Example of a Search Tree Method 1 do not create paths containing cycles (loops) Method 2 never generate a state generated before must keep track of all possible states (uses a lot of memory) e.g., 8-puzzle problem, we have 9! = 362,880 states Method 1 is most practical, work well on most problems

Depth-First Search (DFS) Properties Non-optimal solution path Incomplete unless there is a depth bound Reexpansion of nodes, Exponential time Linear space

Properties of depth-first search Complete? No: fails in infinite-depth spaces Can modify to avoid repeated states along path Time? O(bm) with m=maximum depth terrible if m is much larger than d but if solutions are dense, may be much faster than breadth-first Space? O(bm), i.e., linear space! (we only need to remember a single path + expanded unexplored nodes) Optimal? No (It may find a non-optimal goal first) B C

Comparing DFS and BFS Same worst-case time Complexity, but In the worst-case BFS is always better than DFS Sometime, on the average DFS is better if: many goals, no loops and no infinite paths BFS is much worse memory-wise DFS is linear space BFS may store the whole search space. In general BFS is better if goal is not deep, if infinite paths, if many loops, if small search space DFS is better if many goals, not many loops, DFS is much better in terms of memory

Iterative Deepening (DFS) Every iteration is a DFS with a depth cutoff. Iterative deepening (ID) i = 1 While no solution, do DFS from initial state S0 with cutoff i If found goal, stop and return solution, else, increment cutoff Comments: ID implements BFS with DFS Only one path in memory BFS at step i may need to keep 2i nodes in OPEN

Iterative deepening search L=0

Iterative deepening search L=1

Iterative deepening search L=2

Iterative Deepening Search L=3

Iterative deepening search

Properties of iterative deepening search Complete? Yes Time? O(bd) Space? O(bd) Optimal? Yes, if step cost = 1 or increasing function of depth.

Iterative Deepening Time (DFS) BFS time is O(bn) b is the branching degree ID is asymptotically like BFS For b=10 d=5 d=cut-off DFS = 1+10+100,…,=111,111 IDS = 123,456 Ratio is

Comments on Iterative Deepening Search Complexity Space complexity = O(bd) (since its like depth first search run different times) Time Complexity 1 + (1+b) + (1 +b+b2) + .......(1 +b+....bd) = O(bd) (i.e., asymptotically the same as BFS or DFS in the worst case) The overhead in repeated searching of the same subtrees is small relative to the overall time e.g., for b=10, only takes about 11% more time than BFS A useful practical method combines guarantee of finding an optimal solution if one exists (as in BFS) space efficiency, O(bd) of DFS But still has problems with loops like DFS

Bidirectional Search Idea What does searching backwards from G mean Simultaneously search forward from S and backwards from G stop when both “meet in the middle” need to keep track of the intersection of 2 open sets of nodes What does searching backwards from G mean need a way to specify the predecessors of G this can be difficult, e.g., predecessors of checkmate in chess? what if there are multiple goal states? what if there is only a goal test, no explicit list? Complexity time complexity is best: O(2 b(d/2)) = O(b (d/2)), worst: O(bd+1) memory complexity is the same

Bi-Directional Search

Uniform Cost Search Expand lowest-cost OPEN node (g(n)) In BFS g(n) = depth(n) Requirement g(successor)(n))  g(n)

Find minimum cost path S B A D E C F G 1 20 2 3 4 8 6 The graph above shows the step-costs for different paths going from the start (S) to the goal (G). On the right you find the straight-line distances. Use uniform cost search to find the optimal path to the goal.

Uniform cost search 1. Put the start node s on OPEN 2. If OPEN is empty exit with failure. 3. Remove the first node n from OPEN and place it on CLOSED. 4. If n is a goal node, exit successfully with the solution obtained by tracing back pointers from n to s. 5. Otherwise, expand n, generating all its successors attach to them pointers back to n, and put them at the end of OPEN in order of shortest cost Go to step 2. hjhjh

Uniform cost search DFS Branch and Bound 1. Put the start node s on OPEN 2. If OPEN is empty exit with failure. 3. Remove the first node n from OPEN and place it on CLOSED. 4. If n is a goal node, exit successfully with the solution obtained by tracing back pointers from n to s. 5. Otherwise, expand n, generating all its successors attach to them pointers back to n, and put them at the end of OPEN in order of shortest cost Go to step 2. hjhjh DFS Branch and Bound At step 4: compute the cost of the solution found and update the upper bound U. at step 5: expand n, generating all its successors attach to them pointers back to n, and put last in OPEN. Compute cost of partial path to node and prune if larger than U. .

Uniform-cost search Uniform-cost Search: Expand node with Breadth-first is only optimal if step costs is increasing with depth (e.g. constant). Can we guarantee optimality for any step cost? Uniform-cost Search: Expand node with smallest path cost g(n).

Uniform-cost search Implementation: fringe = queue ordered by path cost Equivalent to breadth-first if all step costs all equal. Complete? Yes, if step cost ≥ ε (otherwise it can get stuck in infinite loops) Time? # of nodes with path cost ≤ cost of optimal solution. Space? # of nodes on paths with path cost ≤ cost of optimal solution. Optimal? Yes, for any step cost.

Comparison of Algorithms

Summary Problem formulation usually requires abstracting away real-world details to define a state space that can feasibly be explored Variety of uninformed search strategies Iterative deepening search uses only linear space and not much more time than other uninformed algorithms http://www.cs.rmit.edu.au/AI-Search/Product/ http://aima.cs.berkeley.edu/demos.html (for more demos)

Summary A review of search a search space consists of states and operators: it is a graph a search tree represents a particular exploration of search space There are various strategies for “uninformed search” breadth-first depth-first iterative deepening bidirectional search Uniform cost search Depth-first branch and bound Repeated states can lead to infinitely large search trees we looked at methods for for detecting repeated states All of the search techniques so far are “blind” in that they do not look at how far away the goal may be: next we will look at informed or heuristic search, which directly tries to minimize the distance to the goal. Example we saw: greedy search

straight-line distances 6 1 A D F 3 1 h(S-G)=10 h(A-G)=7 h(D-G)=1 h(F-G)=1 h(B-G)=10 h(E-G)=8 h(C-G)=20 2 S 4 8 G B E 1 20 C The graph above shows the step-costs for different paths going from the start (S) to the goal (G). On the right you find the straight-line distances. Use uniform cost search to find the optimal path to the goal. Exercise for at home