Lecture 2-Uninformed Search
Lecture 2-Uninformed Search
Search
Today
Agents that Plan Ahead
Search Problems
A search state keeps only the details needed for planning (abstraction)
Problem: Pathing Problem: Eat-All-Dots
States: (x,y) location States: {(x,y), dot Booleans}
Actions: NSEW Actions: NSEW
Transition: update x,y value Transition: update x,y and
Goal test: is (x,y)=destination possibly a dot Boolean
Goal test: dots all false
State Space Graphs and Search Trees
State Space Graphs
Each NODE in in
State Space Graph the search tree is Search Tree
an entire PATH in
the state space S
a G graph. e p
d
b c
b c e h r q
e
d f a a h r p q f
S h We construct the
tree on demand – p q f q c G
p q r
and we construct as q c G a
little as possible.
a
Quiz: State Space Graphs vs. Search Trees
Consider this 4-state graph: How big is its search tree (from S)?
S G
b
Quiz: State Space Graphs vs. Search Trees
Consider this 4-state graph: How big is its search tree (from S)?
a s
a b
S G
b G a G
b a G b G
… …
Important: Those who don’t know history are doomed to repeat it!
Quiz: State Space Graphs vs. Search Trees
Start
Destination
Creating the search tree
Creating the search tree
Creating the search tree
General Tree Search
Main variations:
Which leaf node to expand next
Whether to check for repeated states
Data structures for frontier, expanded nodes
Systematic search
frontier
reached =
unexplored expanded U frontier
expanded
Implementation: d
e
f
Frontier is a LIFO stack S h
p q r
d e p
b c e h r q
a a h r p q f
p q f q c G
q c G a
a
Search Algorithm Properties
Search Algorithm Properties
Complete: Guaranteed to find a solution if one exists?
Optimal: Guaranteed to find the least cost path?
Time complexity?
Space complexity? b
1 node
… b nodes
Cartoon of search tree: b2 nodes
b is the branching factor m tiers
m is the maximum depth
solutions at various depths
bm nodes
Number of nodes in entire tree?
1 + b + b2 + …. bm = O(bm)
Depth-First Search (DFS) Properties
What nodes does DFS expand?
Some left prefix of the tree down to depth m. 1 node
b
Could process the whole tree! … b nodes
If m is finite, takes time O(bm) b2 nodes
m tiers
How much space does the frontier take?
Only has siblings on path to root, so O(bm)
Is it complete? bm nodes
m could be infinite
preventing cycles may help (more later)
Is it optimal?
No, it finds the “leftmost” solution, regardless
of depth or cost
Breadth-First Search
Breadth-First Search
Strategy: expand a a G
shallowest node first b c
Implementation: e
d f
Frontier is a FIFO queue S h
p q r
d e p
Search
b c e h r q
Tiers
a a h r p q f
p q f q c G
q c G a
a
Breadth-First Search (BFS) Properties
What nodes does BFS expand?
Processes all nodes above shallowest solution 1 node
b
Let depth of shallowest solution be s … b nodes
s tiers
Search takes time O(bs) b2 nodes
Is it complete? bm nodes
s must be finite if a solution exists, so yes!
Is it optimal?
If costs are equal (e.g., 1)
Quiz: DFS vs BFS
Quiz: DFS vs BFS
S 0
d 3 e 9 p 1
b 4 c e 5 h 17 r 11 q 16
11
Cost a 6 a h 13 r 7 p q f
contours
p q f 8 q c G
q 11 c G 10 a
a
Uniform Cost Search (UCS) Properties
What nodes does UCS expand?
Processes all nodes with cost less than cheapest solution!
b g1
If that solution costs C* and arcs cost at least , then the …
“effective depth” is roughly C*/ g2
C*/ “tiers”
Takes time O(b ) (exponential in effective depth)
C*/
g3
Is it complete?
Assuming C* is finite and > 0, yes!
Is it optimal?
Yes! (Proof next lecture via A*)