CSC 2114: Artificial Intelligence
Search
Today
Agents that Plan Ahead
Search Problems
Uninformed Search Methods
Depth-First Search
Breadth-First Search
Uniform-Cost Search
Planning Agents
Planning agents decide based on evaluating
future action sequences
Must have a model of how the world
evolves in response to actions
Usually have a definite goal
Optimal: Achieve goal at least cost
Search Problems
Search Problems
A search problem consists of:
A state space: S
An initial state: s0
Actions: A(s) in each state N -9
Transition model: Result(s,a)
A goal test: G(s) E -9
S has no dots left
Action cost c(s,a,s’)
A solution is an action sequence that reaches a goal state
An optimal solution has least cost among all solutions
Search Problems Are Models
Example: Traveling in Kampala
Example: Traveling in Kampala
State space:
Towns
Initial state:
Owino market
Actions:
Go to adjacent Towns
Transition model:
Reach adjacent Towns
Goal test:
s = Kasubi Royal Tombs?
Action cost:
Road distance from s to s’
Solution?
What’s in a State Space?
The world state includes every last detail of the environment
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
State space graph: A mathematical
representation of a search problem
Nodes are (abstracted) world configurations
Arcs represent transitions (labeled with actions)
The goal test is a set of goal nodes (maybe only one)
In a state space graph, each state occurs only
once!
We can rarely build this full graph in memory
(it’s too big), but it’s a useful idea
State Space Graphs
State space graph: A mathematical
a G
representation of a search problem
Nodes are (abstracted) world configurations b c
Arcs represent successors (action results)
e
The goal test is a set of goal nodes (maybe only one) d f
S h
In a state space graph, each state occurs only p r
q
once!
Tiny state space graph for a tiny
We can rarely build this full graph in memory search problem
(it’s too big), but it’s a useful idea
State Space Graphs vs. Search Trees
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
Consider a rectangular grid: How many states within d steps of start?
How many states in search tree of depth d?
Tree Search
Search Example: Romania
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
1. Frontier separates expanded from unexplored region of state-space graph
2. Expanding a frontier node:
a. Moves a node from frontier into expanded
b. Adds nodes from unexplored into frontier, maintaining property 1
Depth-First Search
Depth-First Search
Strategy: expand a a G
deepest node first b c
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
How much space does the frontier take? bs nodes
Has roughly the last tier, so O(bs)
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
When will BFS outperform DFS?
When will DFS outperform BFS?
Iterative Deepening
Idea: get DFS’s space advantage with BFS’s
time / shallow-solution advantages b
Run a DFS with depth limit 1. If no solution… …
Run a DFS with depth limit 2. If no solution…
Run a DFS with depth limit 3. …..
Isn’t that wastefully redundant?
Generally most work happens in the lowest
level searched, so not so bad!
Uniform Cost Search
Uniform Cost Search
2 a G
g(n) = cost from root to n b c
1 8 2
Strategy: expand lowest g(n) 2 e
3 d f
Frontier is a priority queue 9 2
S h 8
sorted by g(n) 1
1 p q r
15
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
How much space does the frontier take?
Has roughly the last tier, so O(bC*/)
Is it complete?
Assuming C* is finite and > 0, yes!
Is it optimal?
Yes! (Proof next lecture via A*)