search - github pages

210
CS 5522: Artificial Intelligence II Search Instructor: Alan Ritter Ohio State University [These slides were adapted from CS188 Intro to AI at UC Berkeley. All materials available at http://ai.berkeley.edu.]

Upload: others

Post on 31-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: search - GitHub Pages

CS 5522: Artificial Intelligence II Search

Instructor: Alan Ritter

Ohio State University [These slides were adapted from CS188 Intro to AI at UC Berkeley. All materials available at http://ai.berkeley.edu.]

Page 2: search - GitHub Pages

Today

▪ Agents that Plan Ahead

▪ Search Problems

▪ Uninformed Search Methods ▪ Depth-First Search

▪ Breadth-First Search

▪ Uniform-Cost Search

Page 3: search - GitHub Pages

Agents that Plan

Page 4: search - GitHub Pages

Reflex Agents

▪ Reflex agents: ▪ Choose action based on current percept

(and maybe memory) ▪ May have memory or a model of the world’s

current state ▪ Do not consider the future consequences of

their actions ▪ Consider how the world IS

▪ Can a reflex agent be rational?

[Demo: reflex optimal (L2D1)][Demo: reflex optimal (L2D2)]

Page 5: search - GitHub Pages

Video of Demo Reflex Optimal

Page 6: search - GitHub Pages

Video of Demo Reflex Optimal

Page 7: search - GitHub Pages

Video of Demo Reflex Optimal

Page 8: search - GitHub Pages

Video of Demo Reflex Odd

Page 9: search - GitHub Pages

Video of Demo Reflex Odd

Page 10: search - GitHub Pages

Video of Demo Reflex Odd

Page 11: search - GitHub Pages

Planning Agents

▪ Planning agents: ▪ Ask “what if” ▪ Decisions based on (hypothesized)

consequences of actions ▪ Must have a model of how the world evolves

in response to actions ▪ Must formulate a goal (test) ▪ Consider how the world WOULD BE

▪ Optimal vs. complete planning

▪ Planning vs. replanning

[Demo: replanning (L2D3)][Demo: mastermind (L2D4)]

Page 12: search - GitHub Pages

Video of Demo Replanning

Page 13: search - GitHub Pages

Video of Demo Replanning

Page 14: search - GitHub Pages

Video of Demo Replanning

Page 15: search - GitHub Pages

Video of Demo Mastermind

Page 16: search - GitHub Pages

Video of Demo Mastermind

Page 17: search - GitHub Pages

Video of Demo Mastermind

Page 18: search - GitHub Pages

Search Problems

Page 19: search - GitHub Pages

Search Problems

▪ A search problem consists of:

Page 20: search - GitHub Pages

Search Problems

▪ A search problem consists of:

▪ A state space

Page 21: search - GitHub Pages

Search Problems

▪ A search problem consists of:

▪ A state space

▪ A successor function (with actions, costs)

Page 22: search - GitHub Pages

Search Problems

▪ A search problem consists of:

▪ A state space

▪ A successor function (with actions, costs)

“N”, 1.0

“E”, 1.0

Page 23: search - GitHub Pages

Search Problems

▪ A search problem consists of:

▪ A state space

▪ A successor function (with actions, costs)

▪ A start state and a goal test

“N”, 1.0

“E”, 1.0

Page 24: search - GitHub Pages

Search Problems

▪ A search problem consists of:

▪ A state space

▪ A successor function (with actions, costs)

▪ A start state and a goal test

▪ A solution is a sequence of actions (a plan) which transforms the start state to a goal state

“N”, 1.0

“E”, 1.0

Page 25: search - GitHub Pages

Search Problems Are Models

Page 26: search - GitHub Pages

Search Problems Are Models

Page 27: search - GitHub Pages

Example: Traveling in Romania

Page 28: search - GitHub Pages

Example: Traveling in Romania

▪ State space: ▪ Cities

Page 29: search - GitHub Pages

Example: Traveling in Romania

▪ State space: ▪ Cities

▪ Successor function: ▪ Roads: Go to adjacent city with

cost = distance

Page 30: search - GitHub Pages

Example: Traveling in Romania

▪ State space: ▪ Cities

▪ Successor function: ▪ Roads: Go to adjacent city with

cost = distance

▪ Start state: ▪ Arad

Page 31: search - GitHub Pages

Example: Traveling in Romania

▪ State space: ▪ Cities

▪ Successor function: ▪ Roads: Go to adjacent city with

cost = distance

▪ Start state: ▪ Arad

▪ Goal test: ▪ Is state == Bucharest?

Page 32: search - GitHub Pages

Example: Traveling in Romania

▪ State space: ▪ Cities

▪ Successor function: ▪ Roads: Go to adjacent city with

cost = distance

▪ Start state: ▪ Arad

▪ Goal test: ▪ Is state == Bucharest?

▪ Solution?

Page 33: search - GitHub Pages

What’s in a State Space?

The world state includes every last detail of the environment

Page 34: search - GitHub Pages

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)

Page 35: search - GitHub Pages

What’s in a State Space?

▪ Problem: Pathing ▪ States: (x,y) location ▪ Actions: NSEW ▪ Successor: update location

only ▪ Goal test: is (x,y)=END

The world state includes every last detail of the environment

A search state keeps only the details needed for planning (abstraction)

Page 36: search - GitHub Pages

What’s in a State Space?

▪ Problem: Pathing ▪ States: (x,y) location ▪ Actions: NSEW ▪ Successor: update location

only ▪ Goal test: is (x,y)=END

▪ Problem: Eat-All-Dots ▪ States: {(x,y), dot

booleans} ▪ Actions: NSEW ▪ Successor: update location

and possibly a dot boolean ▪ Goal test: dots all false

The world state includes every last detail of the environment

A search state keeps only the details needed for planning (abstraction)

Page 37: search - GitHub Pages

State Space Sizes?

▪ World state:▪ Agent positions: 120▪ Food count: 30▪ Ghost positions: 12▪ Agent facing: NSEW

Page 38: search - GitHub Pages

State Space Sizes?

▪ World state:▪ Agent positions: 120▪ Food count: 30▪ Ghost positions: 12▪ Agent facing: NSEW

▪ How many

Page 39: search - GitHub Pages

State Space Sizes?

▪ World state:▪ Agent positions: 120▪ Food count: 30▪ Ghost positions: 12▪ Agent facing: NSEW

▪ How many▪ World states?

Page 40: search - GitHub Pages

State Space Sizes?

▪ World state:▪ Agent positions: 120▪ Food count: 30▪ Ghost positions: 12▪ Agent facing: NSEW

▪ How many▪ World states? 120x(230)x(122)x4

Page 41: search - GitHub Pages

State Space Sizes?

▪ World state:▪ Agent positions: 120▪ Food count: 30▪ Ghost positions: 12▪ Agent facing: NSEW

▪ How many▪ World states? 120x(230)x(122)x4▪ States for pathing?

Page 42: search - GitHub Pages

State Space Sizes?

▪ World state:▪ Agent positions: 120▪ Food count: 30▪ Ghost positions: 12▪ Agent facing: NSEW

▪ How many▪ World states? 120x(230)x(122)x4▪ States for pathing? 120

Page 43: search - GitHub Pages

State Space Sizes?

▪ World state:▪ Agent positions: 120▪ Food count: 30▪ Ghost positions: 12▪ Agent facing: NSEW

▪ How many▪ World states? 120x(230)x(122)x4▪ States for pathing? 120▪ States for eat-all-dots?

Page 44: search - GitHub Pages

State Space Sizes?

▪ World state:▪ Agent positions: 120▪ Food count: 30▪ Ghost positions: 12▪ Agent facing: NSEW

▪ How many▪ World states? 120x(230)x(122)x4▪ States for pathing? 120▪ States for eat-all-dots? 120x(230)

Page 45: search - GitHub Pages

Quiz: Safe Passage

▪ Problem: eat all dots while keeping the ghosts perma-scared

Page 46: search - GitHub Pages

Quiz: Safe Passage

▪ Problem: eat all dots while keeping the ghosts perma-scared▪ What does the state space have to specify?

Page 47: search - GitHub Pages

Quiz: Safe Passage

▪ Problem: eat all dots while keeping the ghosts perma-scared▪ What does the state space have to specify?

▪ (agent position, dot booleans, power pellet booleans, remaining scared time)

Page 48: search - GitHub Pages

State Space Graphs and Search Trees

Page 49: search - GitHub Pages

State Space Graphs

▪ State space graph: A mathematical representation of a search problem

Page 50: search - GitHub Pages

State Space Graphs

▪ State space graph: A mathematical representation of a search problem

Page 51: search - GitHub Pages

State Space Graphs

▪ State space graph: A mathematical representation of a search problem▪ Nodes are (abstracted) world configurations

Page 52: search - GitHub Pages

State Space Graphs

▪ State space graph: A mathematical representation of a search problem▪ Nodes are (abstracted) world configurations▪ Arcs represent successors (action results)

Page 53: search - GitHub Pages

State Space Graphs

▪ State space graph: A mathematical representation of a search problem▪ Nodes are (abstracted) world configurations▪ Arcs represent successors (action results)▪ The goal test is a set of goal nodes (maybe only

one)

Page 54: search - GitHub Pages

State Space Graphs

▪ State space graph: A mathematical representation of a search problem▪ Nodes are (abstracted) world configurations▪ Arcs represent successors (action results)▪ The goal test is a set of goal nodes (maybe only

one)

▪ In a state space graph, each state occurs only once!

Page 55: search - GitHub Pages

State Space Graphs

▪ State space graph: A mathematical representation of a search problem▪ Nodes are (abstracted) world configurations▪ Arcs represent successors (action results)▪ 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

Page 56: search - GitHub Pages

State Space Graphs

▪ State space graph: A mathematical representation of a search problem ▪ Nodes are (abstracted) world configurations ▪ Arcs represent successors (action results) ▪ The goal test is a set of goal nodes (maybe only

one)

▪ In a search 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

S

G

d

b

p q

c

e

h

a

f

r

Tiny search graph for a tiny search problem

Page 57: search - GitHub Pages

Search Trees

Page 58: search - GitHub Pages

Search Trees

This is now / start

Page 59: search - GitHub Pages

Search Trees

“E”, 1.0“N”, 1.0

This is now / start

Possible futures

Page 60: search - GitHub Pages

Search Trees

“E”, 1.0“N”, 1.0

This is now / start

Possible futures

Page 61: search - GitHub Pages

Search Trees

▪ A search tree: ▪ A “what if” tree of plans and their outcomes ▪ The start state is the root node ▪ Children correspond to successors ▪ Nodes show states, but correspond to PLANS that achieve those states ▪ For most problems, we can never actually build the whole tree

“E”, 1.0“N”, 1.0

This is now / start

Possible futures

Page 62: search - GitHub Pages

State Space Graphs vs. Search Trees

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c Ga

S

G

d

b

p q

c

e

h

a

f

r

We construct both on demand – and we construct as

little as possible.

Each NODE in in the search tree is an entire PATH in the state space

graph.

Search TreeState Space Graph

Page 63: search - GitHub Pages

Quiz: State Space Graphs vs. Search Trees

S G

b

a

Consider this 4-state graph:

Page 64: search - GitHub Pages

Quiz: State Space Graphs vs. Search Trees

S G

b

a

Consider this 4-state graph: How big is its search tree (from S)?

Page 65: search - GitHub Pages

Quiz: State Space Graphs vs. Search Trees

S G

b

a

Consider this 4-state graph: How big is its search tree (from S)?

Page 66: search - GitHub Pages

Quiz: State Space Graphs vs. Search Trees

S G

b

a

Consider this 4-state graph:

Important: Lots of repeated structure in the search tree!

How big is its search tree (from S)?

Page 67: search - GitHub Pages

Tree Search

Page 68: search - GitHub Pages

Search Example: Romania

Page 69: search - GitHub Pages

Searching with a Search Tree

▪ Search: ▪ Expand out potential plans (tree nodes) ▪ Maintain a fringe of partial plans under consideration ▪ Try to expand as few tree nodes as possible

Page 70: search - GitHub Pages

Searching with a Search Tree

▪ Search: ▪ Expand out potential plans (tree nodes) ▪ Maintain a fringe of partial plans under consideration ▪ Try to expand as few tree nodes as possible

Page 71: search - GitHub Pages

Searching with a Search Tree

▪ Search: ▪ Expand out potential plans (tree nodes) ▪ Maintain a fringe of partial plans under consideration ▪ Try to expand as few tree nodes as possible

Page 72: search - GitHub Pages

General Tree Search

▪ Important ideas: ▪ Fringe ▪ Expansion ▪ Exploration strategy

▪ Main question: which fringe nodes to explore?

Page 73: search - GitHub Pages

Example: Tree Search

S

G

d

b

p q

c

e

h

a

f

r

Page 74: search - GitHub Pages

Depth-First Search

Page 75: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 76: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 77: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

d

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 78: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

d

bStrategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 79: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

d

baStrategy: expand a

deepest node first

Implementation: Fringe is a LIFO stack

Page 80: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

d

cStrategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 81: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

d

cStrategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 82: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

de

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 83: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

rh

de

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 84: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

rph

de

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 85: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

rqph

de

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 86: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

rh

de

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 87: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

de

r

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 88: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

fde

r

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 89: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

fde

r

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 90: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

fde

r

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 91: search - GitHub Pages

Depth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

c

e

h

a

f

r

fde

r

Strategy: expand a deepest node first

Implementation: Fringe is a LIFO stack

Page 92: search - GitHub Pages

Search Algorithm Properties

Page 93: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?

Page 94: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?

Page 95: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?

Page 96: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

Page 97: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:

Page 98: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:

Page 99: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:

Page 100: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor

…b

Page 101: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor

…b

1 node

Page 102: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor

…b

1 nodeb nodes

Page 103: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor

…b

1 nodeb nodes

b2 nodes

Page 104: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor▪ m is the maximum depth

…b

1 nodeb nodes

b2 nodes

m tiers

Page 105: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor▪ m is the maximum depth

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

Page 106: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor▪ m is the maximum depth▪ solutions at various depths

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

Page 107: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor▪ m is the maximum depth▪ solutions at various depths

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

Page 108: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor▪ m is the maximum depth▪ solutions at various depths

▪ Number of nodes in entire tree?

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

Page 109: search - GitHub Pages

Search Algorithm Properties

▪ Complete: Guaranteed to find a solution if one exists?▪ Optimal: Guaranteed to find the least cost path?▪ Time complexity?▪ Space complexity?

▪ Cartoon of search tree:▪ b is the branching factor▪ m is the maximum depth▪ solutions at various depths

▪ Number of nodes in entire tree?▪ 1 + b + b2 + …. bm = O(bm)

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

Page 110: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?

Page 111: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?

Page 112: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?

Page 113: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?

Page 114: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.

Page 115: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.▪ Could process the whole tree!

Page 116: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.▪ Could process the whole tree!▪ If m is finite, takes time O(bm)

Page 117: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.▪ Could process the whole tree!▪ If m is finite, takes time O(bm)

▪ How much space does the fringe take?

Page 118: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.▪ Could process the whole tree!▪ If m is finite, takes time O(bm)

▪ How much space does the fringe take?▪ Only has siblings on path to root, so O(bm)

Page 119: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.▪ Could process the whole tree!▪ If m is finite, takes time O(bm)

▪ How much space does the fringe take?▪ Only has siblings on path to root, so O(bm)

▪ Is it complete?

Page 120: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.▪ Could process the whole tree!▪ If m is finite, takes time O(bm)

▪ How much space does the fringe take?▪ Only has siblings on path to root, so O(bm)

▪ Is it complete?▪ m could be infinite, so only if we prevent

cycles (more later)

Page 121: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.▪ Could process the whole tree!▪ If m is finite, takes time O(bm)

▪ How much space does the fringe take?▪ Only has siblings on path to root, so O(bm)

▪ Is it complete?▪ m could be infinite, so only if we prevent

cycles (more later)

▪ Is it optimal?

Page 122: search - GitHub Pages

Depth-First Search (DFS) Properties

…b

1 nodeb nodes

b2 nodes

bm nodes

m tiers

▪ What nodes DFS expand?▪ Some left prefix of the tree.▪ Could process the whole tree!▪ If m is finite, takes time O(bm)

▪ How much space does the fringe take?▪ Only has siblings on path to root, so O(bm)

▪ Is it complete?▪ m could be infinite, so only if we prevent

cycles (more later)

▪ Is it optimal?▪ No, it finds the “leftmost” solution,

regardless of depth or cost

Page 123: search - GitHub Pages

Breadth-First Search

Page 124: search - GitHub Pages

Breadth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

ce

h

a

f

r

Strategy: expand a shallowest node first

Implementation: Fringe is a FIFO queue

Page 125: search - GitHub Pages

Breadth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

ce

h

a

f

r

Strategy: expand a shallowest node first

Implementation: Fringe is a FIFO queue

Page 126: search - GitHub Pages

Breadth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

ce

h

a

f

r

Strategy: expand a shallowest node first

Implementation: Fringe is a FIFO queue

Page 127: search - GitHub Pages

Breadth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

ce

h

a

f

r

Strategy: expand a shallowest node first

Implementation: Fringe is a FIFO queue

Page 128: search - GitHub Pages

Breadth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

ce

h

a

f

r

Strategy: expand a shallowest node first

Implementation: Fringe is a FIFO queue

Page 129: search - GitHub Pages

Breadth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

ce

h

a

f

r

Strategy: expand a shallowest node first

Implementation: Fringe is a FIFO queue

Page 130: search - GitHub Pages

Breadth-First Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

S

G

d

b

p q

ce

h

a

f

r

Search

Tiers

Strategy: expand a shallowest node first

Implementation: Fringe is a FIFO queue

Page 131: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?

…b

1 nodeb nodes

b2 nodes

bm nodes

Page 132: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?

…b

1 nodeb nodes

b2 nodes

bm nodes

Page 133: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?

…b

1 nodeb nodes

b2 nodes

bm nodes

Page 134: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?

…b

1 nodeb nodes

b2 nodes

bm nodes

Page 135: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?

…b

1 nodeb nodes

b2 nodes

bm nodes

Page 136: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution …b

1 nodeb nodes

b2 nodes

bm nodes

Page 137: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

Page 138: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

bs nodes

Page 139: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s▪ Search takes time O(bs)

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

bs nodes

Page 140: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s▪ Search takes time O(bs)

▪ How much space does the fringe take?

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

bs nodes

Page 141: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s▪ Search takes time O(bs)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bs)

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

bs nodes

Page 142: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s▪ Search takes time O(bs)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bs)

▪ Is it complete?

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

bs nodes

Page 143: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s▪ Search takes time O(bs)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bs)

▪ Is it complete?▪ s must be finite if a solution exists, so yes!

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

bs nodes

Page 144: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s▪ Search takes time O(bs)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bs)

▪ Is it complete?▪ s must be finite if a solution exists, so yes!

▪ Is it optimal?

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

bs nodes

Page 145: search - GitHub Pages

Breadth-First Search (BFS) Properties

▪ What nodes does BFS expand?▪ Processes all nodes above shallowest

solution▪ Let depth of shallowest solution be s▪ Search takes time O(bs)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bs)

▪ Is it complete?▪ s must be finite if a solution exists, so yes!

▪ Is it optimal?▪ Only if costs are all 1 (more on costs later)

…b

1 nodeb nodes

b2 nodes

bm nodes

s tiers

bs nodes

Page 146: search - GitHub Pages

Quiz: DFS vs BFS

Page 147: search - GitHub Pages

Quiz: DFS vs BFS

▪ When will BFS outperform DFS?

▪ When will DFS outperform BFS?

[Demo: dfs/bfs maze water (L2D6)]

Page 148: search - GitHub Pages

Video of Demo Maze Water DFS/BFS (part 1)

Page 149: search - GitHub Pages

Video of Demo Maze Water DFS/BFS (part 1)

Page 150: search - GitHub Pages

Video of Demo Maze Water DFS/BFS (part 1)

Page 151: search - GitHub Pages

Video of Demo Maze Water DFS/BFS (part 2)

Page 152: search - GitHub Pages

Video of Demo Maze Water DFS/BFS (part 2)

Page 153: search - GitHub Pages

Video of Demo Maze Water DFS/BFS (part 2)

Page 154: search - GitHub Pages

Iterative Deepening

…b

▪ Idea: get DFS’s space advantage with BFS’s time / shallow-solution advantages

Page 155: search - GitHub Pages

Iterative Deepening

…b

▪ Idea: get DFS’s space advantage with BFS’s time / shallow-solution advantages▪ Run a DFS with depth limit 1. If no

solution…

Page 156: search - GitHub Pages

Iterative Deepening

…b

▪ Idea: get DFS’s space advantage with BFS’s time / shallow-solution advantages▪ Run a DFS with depth limit 1. If no

solution…▪ Run a DFS with depth limit 2. If no

solution…

Page 157: search - GitHub Pages

Iterative Deepening

…b

▪ Idea: get DFS’s space advantage with BFS’s time / shallow-solution advantages▪ 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. …..

Page 158: search - GitHub Pages

Iterative Deepening

…b

▪ Idea: get DFS’s space advantage with BFS’s time / shallow-solution advantages▪ 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. …..

Page 159: search - GitHub Pages

Iterative Deepening

…b

▪ Idea: get DFS’s space advantage with BFS’s time / shallow-solution advantages▪ 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?

Page 160: search - GitHub Pages

Iterative Deepening

…b

▪ Idea: get DFS’s space advantage with BFS’s time / shallow-solution advantages▪ 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!

Page 161: search - GitHub Pages

Cost-Sensitive Search

BFS finds the shortest path in terms of number of actions. It does not find the least-cost path. We will now cover a similar algorithm which does find the least-cost path.

START

GOAL

d

b

pq

c

e

h

a

f

r

2

9 2

81

8

2

3

2

4

4

15

1

32

2

Page 162: search - GitHub Pages

Uniform Cost Search

Page 163: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

0

39

1

1

2

8

8 2

15

1

22

Page 164: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

0

39

1

1

2

8

8 2

15

1

22

Page 165: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16

0

39

1

1

2

8

8 2

15

1

22

Page 166: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

0

39

1

1

2

8

8 2

15

1

22

Page 167: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

0

6

39

1

1

2

8

8 2

15

1

22

Page 168: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

713

0

6

39

1

1

2

8

8 2

15

1

22

Page 169: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

713

0

6

39

1

1

2

8

8 2

15

1

22

Page 170: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

713

8

0

6

39

1

1

2

8

8 2

15

1

22

Page 171: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

713

8

1011

0

6

39

1

1

2

8

8 2

15

1

22

Page 172: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

713

8

1011

17 11

0

6

39

1

1

2

8

8 2

15

1

22

Page 173: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

713

8

1011

17 11

0

6

39

1

1

2

8

8 2

15

1

22

Page 174: search - GitHub Pages

Uniform Cost Search

S

a

b

d p

a

c

e

p

h

f

r

q

q c G

a

qe

p

h

f

r

q

q c G

a

Strategy: expand a cheapest node first:

Fringe is a priority queue (priority: cumulative cost) S

G

d

b

p q

c

e

h

a

f

r

3 9 1

16411

5

713

8

1011

17 11

0

6

39

1

1

2

8

8 2

15

1

2

Cost contours

2

Page 175: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 176: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 177: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 178: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 179: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 180: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!▪ If that solution costs C* and arcs cost at least ε , then the

“effective depth” is roughly C*/ε

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 181: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!▪ If that solution costs C* and arcs cost at least ε , then the

“effective depth” is roughly C*/ε▪ Takes time O(bC*/ε) (exponential in effective depth)

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 182: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!▪ If that solution costs C* and arcs cost at least ε , then the

“effective depth” is roughly C*/ε▪ Takes time O(bC*/ε) (exponential in effective depth)

▪ How much space does the fringe take?

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 183: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!▪ If that solution costs C* and arcs cost at least ε , then the

“effective depth” is roughly C*/ε▪ Takes time O(bC*/ε) (exponential in effective depth)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bC*/ε)

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 184: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!▪ If that solution costs C* and arcs cost at least ε , then the

“effective depth” is roughly C*/ε▪ Takes time O(bC*/ε) (exponential in effective depth)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bC*/ε)

▪ Is it complete?

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 185: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!▪ If that solution costs C* and arcs cost at least ε , then the

“effective depth” is roughly C*/ε▪ Takes time O(bC*/ε) (exponential in effective depth)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bC*/ε)

▪ Is it complete?▪ Assuming best solution has a finite cost and minimum arc cost

is positive, yes!

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 186: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!▪ If that solution costs C* and arcs cost at least ε , then the

“effective depth” is roughly C*/ε▪ Takes time O(bC*/ε) (exponential in effective depth)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bC*/ε)

▪ Is it complete?▪ Assuming best solution has a finite cost and minimum arc cost

is positive, yes!

▪ Is it optimal?

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 187: search - GitHub Pages

Uniform Cost Search (UCS) Properties

▪ What nodes does UCS expand?▪ Processes all nodes with cost less than cheapest solution!▪ If that solution costs C* and arcs cost at least ε , then the

“effective depth” is roughly C*/ε▪ Takes time O(bC*/ε) (exponential in effective depth)

▪ How much space does the fringe take?▪ Has roughly the last tier, so O(bC*/ε)

▪ Is it complete?▪ Assuming best solution has a finite cost and minimum arc cost

is positive, yes!

▪ Is it optimal?▪ Yes! (Proof next lecture via A*)

b

C*/ε “tiers”c ≤ 3

c ≤ 2

c ≤ 1

Page 188: search - GitHub Pages

Uniform Cost Issues

▪ Remember: UCS explores increasing cost contours

▪ The good: UCS is complete and optimal!

c ≤ 3c ≤ 2

c ≤ 1

[Demo: empty grid UCS (L2D5)] [Demo: maze with deep/shallow water DFS/BFS/UCS (L2D7)]

Page 189: search - GitHub Pages

Uniform Cost Issues

▪ Remember: UCS explores increasing cost contours

▪ The good: UCS is complete and optimal!

▪ The bad:▪ Explores options in every “direction”▪ No information about goal location

c ≤ 3c ≤ 2

c ≤ 1

[Demo: empty grid UCS (L2D5)] [Demo: maze with deep/shallow water DFS/BFS/UCS (L2D7)]

Page 190: search - GitHub Pages

Uniform Cost Issues

▪ Remember: UCS explores increasing cost contours

▪ The good: UCS is complete and optimal!

▪ The bad:▪ Explores options in every “direction”▪ No information about goal location

Start Goal

c ≤ 3c ≤ 2

c ≤ 1

[Demo: empty grid UCS (L2D5)] [Demo: maze with deep/shallow water DFS/BFS/UCS (L2D7)]

Page 191: search - GitHub Pages

Uniform Cost Issues

▪ Remember: UCS explores increasing cost contours

▪ The good: UCS is complete and optimal!

▪ The bad:▪ Explores options in every “direction”▪ No information about goal location

▪ We’ll fix that soon!

Start Goal

c ≤ 3c ≤ 2

c ≤ 1

[Demo: empty grid UCS (L2D5)] [Demo: maze with deep/shallow water DFS/BFS/UCS (L2D7)]

Page 192: search - GitHub Pages

Video of Demo Empty UCS

Page 193: search - GitHub Pages

Video of Demo Empty UCS

Page 194: search - GitHub Pages

Video of Demo Empty UCS

Page 195: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 1)

Page 196: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 1)

Page 197: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 1)

Page 198: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 2)

Page 199: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 2)

Page 200: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 2)

Page 201: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 3)

Page 202: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 3)

Page 203: search - GitHub Pages

Video of Demo Maze with Deep/Shallow Water --- DFS, BFS, or UCS? (part 3)

Page 204: search - GitHub Pages

The One Queue

▪ All these search algorithms are the same except for fringe strategies ▪ Conceptually, all fringes are priority

queues (i.e. collections of nodes with attached priorities)

▪ Practically, for DFS and BFS, you can avoid the log(n) overhead from an actual priority queue, by using stacks and queues

▪ Can even code one implementation that takes a variable queuing object

Page 205: search - GitHub Pages

Search and Models

▪ Search operates over models of the world ▪ The agent doesn’t

actually try all the plans out in the real world!

▪ Planning is all “in simulation”

▪ Your search is only as good as your models…

Page 206: search - GitHub Pages

Search and Models

▪ Search operates over models of the world ▪ The agent doesn’t

actually try all the plans out in the real world!

▪ Planning is all “in simulation”

▪ Your search is only as good as your models…

Page 207: search - GitHub Pages

Search Gone Wrong?

Page 208: search - GitHub Pages

Search Gone Wrong?

Page 209: search - GitHub Pages

Search Gone Wrong?

Page 210: search - GitHub Pages

Search Gone Wrong?