Uninformed search algorithms Chapter 3, Section 4 of; based on AIMA - - PowerPoint PPT Presentation

uninformed search algorithms
SMART_READER_LITE
LIVE PREVIEW

Uninformed search algorithms Chapter 3, Section 4 of; based on AIMA - - PowerPoint PPT Presentation

Uninformed search algorithms Chapter 3, Section 4 of; based on AIMA Slides c Artificial Intelligence, spring 2013, Peter Ljungl Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 1 Tree search algorithms Basic idea: offline,


slide-1
SLIDE 1

Uninformed search algorithms

Chapter 3, Section 4

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 1

slide-2
SLIDE 2

Tree search algorithms

Basic idea:

  • ffline, simulated exploration of state space

by generating successors of already-explored states (a.k.a. expanding states)

function Tree-Search( problem) returns a solution, or failure initialize the frontier using the initial state of problem loop do if the frontier is empty then return failure choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution expand the chosen node and add the resulting nodes to the frontier end

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 2

slide-3
SLIDE 3

Tree search example

Rimnicu Vilcea

Lugoj Zerind Sibiu Arad Fagaras Oradea Timisoara Arad Arad Oradea Arad

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 3

slide-4
SLIDE 4

Tree search example

Rimnicu Vilcea

Lugoj Arad Fagaras Oradea Arad Arad Oradea Zerind Arad Sibiu Timisoara

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 4

slide-5
SLIDE 5

Tree search example

Lugoj Arad Arad Oradea

Rimnicu Vilcea

Zerind Arad Sibiu Arad Fagaras Oradea Timisoara

Note: Arad is one of the expanded nodes! This corresponds to going to Sibiu and then returning to Arad.

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 5

slide-6
SLIDE 6

Implementation: states vs. nodes

A state is a (representation of) a physical configuration A node is a data structure constituting part of a search tree – includes the state, parent, children, depth, and the path cost g(x) States do not have parents, children, depth, or path cost!

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

State Node

depth = 6 g = 6 state parent, action

The Expand function creates new nodes, filling in the various fields and using the SuccessorFn of the problem to create the corresponding states.

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 6

slide-7
SLIDE 7

Implementation: general tree search

function Tree-Search( problem) returns a solution, or failure frontier ← {Make-Node(Initial-State[problem])} loop do if frontier is empty then return failure node ← Remove-Front(frontier) if Goal-Test(problem,State[node]) return node frontier ← InsertAll(Expand(node,problem),frontier) function Expand( node, problem) returns a set of nodes successors ← the empty set for each action, result in Successor-Fn(problem,State[node]) do s ← a new Node Parent-Node[s] ← node; Action[s] ← action; State[s] ← result Path-Cost[s] ← Path-Cost[node] + Step-Cost(State[node],action,result) Depth[s] ← Depth[node] + 1 add s to successors return successors

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 7

slide-8
SLIDE 8

Search strategies

A strategy is defined by picking the order of node expansion Strategies are evaluated along the following dimensions: completeness—does it always find a solution if one exists?

  • ptimality—does it always find a least-cost solution?

time complexity—number of nodes generated/expanded space complexity—maximum number of nodes in memory Time and space complexity are measured in terms of b—maximum branching factor of the search tree d—depth of the least-cost solution m—maximum depth of the state space (may be ∞)

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 8

slide-9
SLIDE 9

Uninformed search strategies

Uninformed strategies use only the information available in the problem definition ♦ Breadth-first search ♦ Uniform-cost search ♦ Depth-first search ♦ Depth-limited search ♦ Iterative deepening search

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 9

slide-10
SLIDE 10

Breadth-first search

Expand the shallowest unexpanded node Implementation: frontier is a FIFO queue, i.e., new successors go at end

A B C D E F G

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 10

slide-11
SLIDE 11

Breadth-first search

Expand shallowest unexpanded node Implementation: frontier is a FIFO queue, i.e., new successors go at end

A B C D E F G

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 11

slide-12
SLIDE 12

Breadth-first search

Expand shallowest unexpanded node Implementation: frontier is a FIFO queue, i.e., new successors go at end

A B C D E F G

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 12

slide-13
SLIDE 13

Breadth-first search

Expand shallowest unexpanded node Implementation: frontier is a FIFO queue, i.e., new successors go at end

A B C D E F G

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 13

slide-14
SLIDE 14

Properties of breadth-first search

Complete?? Yes (if b is finite) Time?? 1 + b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd), i.e., exponential in d Space?? O(bd) (keeps every node in memory) Optimal?? Yes, if step cost = 1 Not optimal in general Space is the big problem: it can easily generate 1M nodes/second so after 24hrs it has used 86,000GB (and then it has only reached depth 9 in the search tree)

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 14

slide-15
SLIDE 15

Uniform-cost search

Expand the cheapest unexpanded node Implementation: frontier = priority queue ordered by path cost g(n) Equivalent to breadth-first search, if all step costs are equal Complete?? Yes, if step cost ≥ ǫ > 0 Time?? # of nodes with g(n) ≤ C∗, i.e., O(b⌈C∗/ǫ⌉) where C∗ is the cost of the optimal solution and ǫ is the minimal step cost Space?? Same as time Optimal?? Yes—nodes are expanded in increasing order of g(n)

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 15

slide-16
SLIDE 16

Depth-first search

Expand the deepest unexpanded node Implementation: frontier = LIFO queue, i.e., put successors at front

A B C D E F G H I J K L M N O

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 16

slide-17
SLIDE 17

Depth-first search

Expand the deepest unexpanded node Implementation: frontier = LIFO queue, i.e., put successors at front

A B C D E F G H I J K L M N O

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 17

slide-18
SLIDE 18

Depth-first search

Expand the deepest unexpanded node Implementation: frontier = LIFO queue, i.e., put successors at front

A B C D E F G H I J K L M N O

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 18

slide-19
SLIDE 19

Depth-first search

Expand the deepest unexpanded node Implementation: frontier = LIFO queue, i.e., put successors at front

A B C D E F G H I J K L M N O

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 19

slide-20
SLIDE 20

Depth-first search

Expand the deepest unexpanded node Implementation: frontier = LIFO queue, i.e., put successors at front

A B C D E F G H I J K L M N O

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 20

slide-21
SLIDE 21

Depth-first search

Expand the deepest unexpanded node Implementation: frontier = LIFO queue, i.e., put successors at front

A B C D E F G H I J K L M N O

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 21

slide-22
SLIDE 22

Properties of depth-first search

Complete?? No: it fails in infinite-depth spaces it also fails in finite spaces with loops but if we modify the search to avoid repeated states ⇒ complete in finite spaces (even with loops) Time?? O(bm): terrible if m is much larger than d but if solutions are dense, it may be much faster than breadth-first Space?? O(bm): i.e., linear space! Optimal?? No

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 22

slide-23
SLIDE 23

Depth-limited search

Depth-first search with depth limit l, i.e., nodes at depth l have no successors Recursive implementation:

function Depth-Limited-Search( problem,limit) returns soln/failure/cutoff Recursive-DLS(Make-Node(Initial-State[problem]),problem,limit) function Recursive-DLS(node,problem,limit) returns soln/failure/cutoff if Goal-Test(problem,State[node]) then return node else if limit = 0 then return cutoff else cutoff-occurred? ← false for each action in Actions(State[node],problem) do child ← Child-Node(problem, node, action) result ← Recursive-DLS(child,problem,limit – 1) if result = cutoff then cutoff-occurred? ← true else if result = failure then return result if cutoff-occurred? then return cutoff else return failure

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 23

slide-24
SLIDE 24

Iterative deepening search

Successive depth-limited searches, with higher and higher depth limits, until a goal is found.

function Iterative-Deepening-Search( problem) returns solution/failure for depth ← 0 to ∞ do result ← Depth-Limited-Search( problem, depth) if result = cutoff then return result end

Note: This means that shallow nodes will be recalculated several times!

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 24

slide-25
SLIDE 25

Iterative deepening search l = 0

Limit = 0

A A Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 25

slide-26
SLIDE 26

Iterative deepening search l = 1

Limit = 1

A B C A B C A B C A B C Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 26

slide-27
SLIDE 27

Iterative deepening search l = 2

Limit = 2

A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 27

slide-28
SLIDE 28

Iterative deepening search l = 3

Limit = 3

A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H J K L M N O I A B C D E F G H I J K L M N O Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 28

slide-29
SLIDE 29

Properties of iterative deepening search

Complete?? Yes Time?? (d + 1)b0 + db1 + (d − 1)b2 + . . . + bd = O(bd) Space?? O(bd) Optimal?? Yes, if step cost = 1 it can be modified to explore a uniform-cost tree Numerical comparison for b = 10 and d = 5: N(BFS) = 10 + 100 + 1, 000 + 10, 000 + 100, 000 = 111, 110 N(IDS) = 50 + 400 + 3, 000 + 20, 000 + 100, 000 = 123, 450 Note: IDS recalculates shallow nodes several times, but this doesn’t have a big effect compared to BFS!

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 29

slide-30
SLIDE 30

Summary of algorithms

Criterion Breadth- Uniform- Depth- Depth- Iterative First Cost First Limited Deepening Complete? Yes Yes, if ǫ > 0 No Yes, if l ≥ d Yes Time bd b⌈C∗/ǫ⌉ bm bl bd Space bd b⌈C∗/ǫ⌉ bm bl bd Optimal? Yes∗ Yes No No Yes∗

∗if all step costs are identical

b = the branching factor d = the depth of the shallowest solution m = the maximum depth of the tree l = the depth limit ǫ = the smallest step cost C∗ = the cost of the optimal solution

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 30

slide-31
SLIDE 31

Repeated states

Failure to detect repeated states can turn a linear problem exponential!

A B C D A B B C C C C

Solution: Use graph search instead of tree search!

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 31

slide-32
SLIDE 32

Graph search

We augment the tree search algorithm with a set explored, which remembers every expanded node

function Graph-Search( problem) returns a solution, or failure frontier ← {Make-Node(Initial-State[problem])} explored ← { } loop do if frontier is empty then return failure node ← Remove-Front(frontier) if Goal-Test(problem,State[node]) then return node add State[node] to explored if State[node] is not in frontier ∪ explored then frontier ← InsertAll(Expand(node,problem),frontier) end

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 32

slide-33
SLIDE 33

Summary

Variety of uninformed search strategies: – breadth-first search – uniform-cost search – depth-first search – depth-limited search – iterative deepening search Iterative deepening search uses only linear space and not much more time than other uninformed algorithms Graph search can be exponentially more efficient than tree search

Artificial Intelligence, spring 2013, Peter Ljungl¨

  • f; based on AIMA Slides c

Stuart Russel and Peter Norvig, 2004 Chapter 3, Section 4 33