uninformed search strategies - computer science at ubcmack/cs322/lectures/2-search2.pdf ·...
TRANSCRIPT
![Page 1: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/1.jpg)
Uninformed Search Strategies
Alan Mackworth
UBC CS 322 – Search 2
January 11, 2013
Textbook §3.5
1
![Page 2: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/2.jpg)
Today’s Lecture
• Lecture 4 (2-Search1) Recap
• Uninformed search + criteria to compare search algorithms
- Depth first
- Breadth first
2
![Page 3: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/3.jpg)
Recap
3
• Search is a key computational mechanism in many AI agents
• We will study the basic principles of search on the simple deterministic goal-driven search agent model
• Generic search approach: - Define a search space graph
- Initialize the frontier with an empty path
- incrementally expand frontier until goal state is reached
• Frontier: - The set of paths which could be explored next
• The way in which the frontier is expanded defines the
search strategy
![Page 4: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/4.jpg)
Search Space: example
• Operators –left, right, suck
• Successor states in the graph describe the effect of each action applied to a given state
• Possible Goal – no dirt
4
![Page 5: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/5.jpg)
Problem Solving by Graph Searching
5
![Page 6: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/6.jpg)
Input: a graph a set of start nodes Boolean procedure goal(n) that tests if n is a goal node frontier:= [<g>: g is a goal node]; While frontier is not empty: select and remove path <no,….,nk> from frontier; If goal(nk) return <no,….,nk>;
Find a neighbor n of nk add <n> to frontier; end
Bogus version of Generic Search Algorithm
• There are several bugs in this version here: help me find them!
6
![Page 7: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/7.jpg)
Input: a graph a set of start nodes Boolean procedure goal(n) that tests if n is a goal node frontier:= [<g>: g is a goal node]; While frontier is not empty: select and remove path <no,….,nk> from frontier; If goal(nk) return <no,….,nk>;
Find a neighbor n of nk add <n> to frontier; end
Bogus version of Generic Search Algorithm
• Start at the start node(s) • Add all neighbours of nk to the frontier • Add path(s) to frontier, NOT just the node(s)
7
![Page 8: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/8.jpg)
Input: a graph a set of start nodes
Boolean procedure goal(n) testing if n is a goal node
frontier:= [<s>: s is a start node];
While frontier is not empty:
select and remove path <no,….,nk> from frontier; If goal(nk)
Then return <no,….,nk>; Else
For every neighbor n of nk,
add <no,….,nk, n> to frontier;
end
Generic Search Algorithm
8
![Page 9: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/9.jpg)
Today’s Lecture
• Lecture 4 Recap
• Uninformed search + criteria to compare search algorithms
- Depth-first
- Breadth-first
9
![Page 10: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/10.jpg)
Depth-first search (DFS)
10
• Frontier: shaded nodes
![Page 11: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/11.jpg)
Depth-first search (DFS)
11
• Frontier: shaded nodes • Which node will be expanded next?
(expand = “remove path ending at node from frontier & put its successors on”)
![Page 12: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/12.jpg)
Depth-first search (DFS)
12
• Say, node in red box is a goal • How many more nodes will be expanded?
4 1 3 2
![Page 13: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/13.jpg)
Depth-first search (DFS)
13
• Say, node in red box is a goal • How many more nodes will be expanded?
• 3: you only return once the goal is being expanded!
• Not when a goal is put onto the frontier!
![Page 14: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/14.jpg)
Input: a graph a set of start nodes
Boolean procedure goal(n) testing if n is a goal node
frontier:= [<s>: s is a start node]; While frontier is not empty:
select and remove path <no,….,nk> from frontier;
If goal(nk)
Then return <no,….,nk>;
Else
For every neighbor n of nk,
add <no,….,nk, n> to frontier;
end
DFS as an instantiation of the
Generic Search Algorithm
14
![Page 15: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/15.jpg)
Input: a graph a set of start nodes
Boolean procedure goal(n) testing if n is a goal node
frontier:= [<s>: s is a start node]; While frontier is not empty:
select and remove path <no,….,nk> from frontier;
If goal(nk)
Then return <no,….,nk>;
Else
For every neighbor n of nk,
add <no,….,nk, n> to frontier;
end
DFS as an instantiation of the
Generic Search Algorithm
15
In DFS, the frontier is a last-in-first-out stack
![Page 16: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/16.jpg)
Analysis of DFS
16
Def. : A search algorithm is complete if whenever there is at least one solution, the algorithm is guaranteed to find it within a finite amount of time.
Is DFS complete? Yes No
![Page 17: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/17.jpg)
Analysis of DFS
17
Is DFS optimal? Yes No
Def.: A search algorithm is optimal if when it finds a solution, it is the best one
• E.g., goal nodes: red boxes
![Page 18: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/18.jpg)
Analysis of DFS
18
• What is DFS’s time complexity, in terms of m and b ?
• E.g., single goal node: red box
Def.: The time complexity of a search algorithm is the worst-case amount of time it will take to run, expressed in terms of
- maximum path length m - maximum forward branching factor b.
O(b+m) O(bm) O(bm) O(mb)
![Page 19: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/19.jpg)
Analysis of DFS
19
• What is DFS’s time complexity, in terms of m and b ?
• E.g., single goal node: red box
Def.: The time complexity of a search algorithm is the worst-case amount of time it will take to run, expressed in terms of
- maximum path length m - maximum forward branching factor b.
O(bm)
![Page 20: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/20.jpg)
Analysis of DFS
20
Def.: The space complexity of a search algorithm is the worst-case amount of memory that the algorithm will use
(i.e., the maximal number of nodes on the frontier), expressed in terms of
- maximum path length m - maximum forward branching factor b.
O(b+m) O(bm) O(bm) O(mb)
• What is DFS’s space complexity, in terms of m and b ?
![Page 21: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/21.jpg)
Analysis of DFS
21
Def.: The space complexity of a search algorithm is the worst-case amount of memory that the algorithm will use
(i.e., the maximal number of nodes on the frontier), expressed in terms of
- maximum path length m - maximum forward branching factor b.
O(b+m) O(bm) O(bm) O(mb)
• What is DFS’s space complexity, in terms of m and b ?
- O(bm) - The longest possible path is m, and for every
node in that path must maintain a fringe of size b
![Page 22: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/22.jpg)
Today’s Lecture
• Lecture 4 Recap
• Uninformed search + criteria to compare search algorithms
- Depth first
- Breadth first
22
![Page 23: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/23.jpg)
Breadth-first search (BFS)
23
![Page 24: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/24.jpg)
Input: a graph a set of start nodes
Boolean procedure goal(n) testing if n is a goal node
frontier:= [<s>: s is a start node]; While frontier is not empty:
select and remove path <no,….,nk> from frontier;
If goal(nk)
Then return <no,….,nk>;
Else
For every neighbor n of nk,
add <no,….,nk, n> to frontier;
end
BFS as an instantiation of the
Generic Search Algorithm
24
![Page 25: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/25.jpg)
Input: a graph a set of start nodes
Boolean procedure goal(n) testing if n is a goal node
frontier:= [<s>: s is a start node]; While frontier is not empty:
select and remove path <no,….,nk> from frontier;
If goal(nk)
Then return <no,….,nk>;
Else
For every neighbor n of nk,
add <no,….,nk, n> to frontier;
end
BFS as an instantiation of the
Generic Search Algorithm
25
In BFS, the frontier is a first-in-first-out queue
![Page 26: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/26.jpg)
Analysis of BFS
26
Def. : A search algorithm is complete if whenever there is at least one solution, the algorithm is guaranteed to find it within a finite amount of time.
Is BFS complete? Yes No
![Page 27: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/27.jpg)
Analysis of BFS
27
Def. : A search algorithm is complete if whenever there is at least one solution, the algorithm is guaranteed to find it within a finite amount of time.
Is BFS complete? Yes
• Proof sketch?
![Page 28: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/28.jpg)
Analysis of BFS
28
Is BFS optimal? Yes No
Def.: A search algorithm is optimal if when it finds a solution, it is the best one
![Page 29: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/29.jpg)
Analysis of BFS
29
Is BFS optimal? Yes
Def.: A search algorithm is optimal if when it finds a solution, it is the best one
• Proof sketch?
![Page 30: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/30.jpg)
Analysis of BFS
30
• What is BFS’s time complexity, in terms of m and b ?
• E.g., single goal node: red box
Def.: The time complexity of a search algorithm is the worst-case amount of time it will take to run, expressed in terms of
- maximum path length m - maximum forward branching factor b.
O(b+m) O(bm) O(bm) O(mb)
![Page 31: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/31.jpg)
Analysis of BFS
31
• What is BFS’s time complexity, in terms of m and b ?
• E.g., single goal node: red box
Def.: The time complexity of a search algorithm is the worst-case amount of time it will take to run, expressed in terms of
- maximum path length m - maximum forward branching factor b.
O(bm)
![Page 32: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/32.jpg)
Analysis of BFS
32
Def.: The space complexity of a search algorithm is the worst case amount of memory that the algorithm will use
(i.e., the maximal number of nodes on the frontier), expressed in terms of
- maximum path length m - maximum forward branching factor b.
O(b+m) O(bm) O(bm) O(mb) • What is BFS’s space complexity, in terms of m and b ?
- How many nodes at depth m?
![Page 33: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/33.jpg)
Analysis of BFS
33
Def.: The space complexity of a search algorithm is the worst case amount of memory that the algorithm will use
(i.e., the maximal number of nodes on the frontier), expressed in terms of
- maximum path length m - maximum forward branching factor b.
O(b+m) O(bm) O(bm) O(mb) • What is BFS’s space complexity, in terms of m and b ?
• How many nodes at depth m? O(bm)
![Page 34: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/34.jpg)
When to use BFS vs. DFS?
34
• The search graph has cycles or is infinite
• We need the shortest path to a solution
• There are only solutions at great depth
• There are some solutions at shallow depth: the other one
• No way the search graph will fit into memory
BFS DFS
BFS DFS
BFS DFS
BFS DFS
![Page 35: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/35.jpg)
Real Example: Solving Sudoku
35
• E.g. start state on the left
• Operators: fill in an allowed number
• Solution: all numbers filled in, with constraints satisfied
• Which method would you rather use?
BFS DFS
![Page 36: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/36.jpg)
Real Example: Eight Puzzle. DFS or BFS?
36
• Which method would you rather use?
BFS DFS
![Page 37: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/37.jpg)
• Apply basic properties of search algorithms: - completeness - optimality - time and space complexity of search algorithms
• Select the most appropriate search algorithms for specific problems. – Depth-First Search vs. Breadth-First Search
Learning Goals for today’s class
37
![Page 38: Uninformed Search Strategies - Computer Science at UBCmack/CS322/lectures/2-Search2.pdf · 2013-01-10 · Uninformed Search Strategies Alan Mackworth UBC CS 322 – Search 2 January](https://reader034.vdocuments.net/reader034/viewer/2022042314/5f029f2a7e708231d4052dfd/html5/thumbnails/38.jpg)
Coming up …
• Read Section 3.6, Heuristic Search
38