![Page 1: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/1.jpg)
Artificial Intelligence
Search
Marc ToussaintUniversity of StuttgartWinter 2016/17
(slides based on Stuart Russell’s AI course)
![Page 2: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/2.jpg)
Motivation:Search algorithms are core tool for decision making, especially when the domain is toocomplex to use alternatives like Dynamic Programming. In recent years, with the increase incomputational power search methods became the method of choice for complex domains, likethe game of Go, or certain POMDPs.Learning about search tree algorithms is an important background for several reasons:
• The concept of decision trees, which represent the space of possible future decisionsand state transitions, is generally important for thinking about decision problems.
• In probabilistic domains, tree search algorithms are a special case of Monte-Carlomethods to estimate some expectation, typically the so-called Q-function. The respectiveMonte-Carlo Tree Search algorithms are the state-of-the-art in many domains.
• Tree search is also the background for backtracking in CSPs as well as forward andbackward search in logic domains.
We will cover the basic tree search methods (breadth, depth, iterative deepening) andeventually A∗
Search – – 1/48
![Page 3: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/3.jpg)
Outline
• Problem formulation & examples
• Basic search algorithms
Search – – 2/48
![Page 4: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/4.jpg)
Problem Formulation & Examples
Search – Problem Formulation & Examples – 3/48
![Page 5: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/5.jpg)
Example: RomaniaOn holiday in Romania; currently in Arad.Flight leaves tomorrow from BucharestFormulate goal:
be in Bucharest, Sgoal = {Bucharest}Formulate problem:
states: various cities, S = {Arad, Timisoara, . . . }actions: drive between cities, A = {edges between states}
Find solution:sequence of cities, e.g., Arad, Sibiu, Fagaras, Bucharestminimize costs with cost function, (s, a) 7→ c
Search – Problem Formulation & Examples – 4/48
![Page 6: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/6.jpg)
Example: Romania
Search – Problem Formulation & Examples – 5/48
![Page 7: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/7.jpg)
Deterministic, fully observable search problemdef.
A deterministic, fully observable search problem is defined by fouritems:
initial state s0 ∈ S e.g., s0 = Aradsuccessor function succ : S×A→ S
e.g., succ(Arad,Arad-Zerind) = Zerindgoal states Sgoal ⊆ S
e.g., s = Buchareststep cost function cost(s, a, s′), assumed to be ≥ 0
e.g., traveled distance, number of actions executed, etc.the path cost is the sum of step costs
A solution is a sequence of actions leading from s0 to a goalAn optimal solution is a solution with minimal path costs
Search – Problem Formulation & Examples – 6/48
![Page 8: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/8.jpg)
Example: vacuum world state space graph
states??:
integer dirt and robot locations (ignore dirt amounts etc.)actions??: Left, Right, Suck, NoOpgoal test??: no dirtpath cost??: 1 per action (0 for NoOp)
Search – Problem Formulation & Examples – 7/48
![Page 9: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/9.jpg)
Example: vacuum world state space graph
states??: integer dirt and robot locations (ignore dirt amounts etc.)actions??:
Left, Right, Suck, NoOpgoal test??: no dirtpath cost??: 1 per action (0 for NoOp)
Search – Problem Formulation & Examples – 7/48
![Page 10: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/10.jpg)
Example: vacuum world state space graph
states??: integer dirt and robot locations (ignore dirt amounts etc.)actions??: Left, Right, Suck, NoOpgoal test??:
no dirtpath cost??: 1 per action (0 for NoOp)
Search – Problem Formulation & Examples – 7/48
![Page 11: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/11.jpg)
Example: vacuum world state space graph
states??: integer dirt and robot locations (ignore dirt amounts etc.)actions??: Left, Right, Suck, NoOpgoal test??: no dirtpath cost??:
1 per action (0 for NoOp)
Search – Problem Formulation & Examples – 7/48
![Page 12: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/12.jpg)
Example: vacuum world state space graph
states??: integer dirt and robot locations (ignore dirt amounts etc.)actions??: Left, Right, Suck, NoOpgoal test??: no dirtpath cost??: 1 per action (0 for NoOp)
Search – Problem Formulation & Examples – 7/48
![Page 13: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/13.jpg)
Example: The 8-puzzle
states??:
integer locations of tiles (ignore intermediate positions)actions??: move blank left, right, up, down (ignore unjamming etc.)goal test??: = goal state (given)path cost??: 1 per move[Note: optimal solution of n-Puzzle family is NP-hard]
Search – Problem Formulation & Examples – 8/48
![Page 14: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/14.jpg)
Example: The 8-puzzle
states??: integer locations of tiles (ignore intermediate positions)actions??:
move blank left, right, up, down (ignore unjamming etc.)goal test??: = goal state (given)path cost??: 1 per move[Note: optimal solution of n-Puzzle family is NP-hard]
Search – Problem Formulation & Examples – 8/48
![Page 15: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/15.jpg)
Example: The 8-puzzle
states??: integer locations of tiles (ignore intermediate positions)actions??: move blank left, right, up, down (ignore unjamming etc.)goal test??:
= goal state (given)path cost??: 1 per move[Note: optimal solution of n-Puzzle family is NP-hard]
Search – Problem Formulation & Examples – 8/48
![Page 16: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/16.jpg)
Example: The 8-puzzle
states??: integer locations of tiles (ignore intermediate positions)actions??: move blank left, right, up, down (ignore unjamming etc.)goal test??: = goal state (given)path cost??:
1 per move[Note: optimal solution of n-Puzzle family is NP-hard]
Search – Problem Formulation & Examples – 8/48
![Page 17: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/17.jpg)
Example: The 8-puzzle
states??: integer locations of tiles (ignore intermediate positions)actions??: move blank left, right, up, down (ignore unjamming etc.)goal test??: = goal state (given)path cost??: 1 per move[Note: optimal solution of n-Puzzle family is NP-hard]
Search – Problem Formulation & Examples – 8/48
![Page 18: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/18.jpg)
Basic Tree Search Algorithms
Search – Basic Tree Search Algorithms – 9/48
![Page 19: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/19.jpg)
Tree search example
Search – Basic Tree Search Algorithms – 10/48
![Page 20: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/20.jpg)
Tree search example
Search – Basic Tree Search Algorithms – 11/48
![Page 21: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/21.jpg)
Tree search example
Search – Basic Tree Search Algorithms – 12/48
![Page 22: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/22.jpg)
Implementation: states vs. nodes
• A state is a (representation of) a physical configuration
• A node is a data structure constituting part of a search treeincludes parent, children, depth, path cost g(x)
(States do not have parents, children, depth, or path cost!)
• The Expand function creates new nodes, filling in the various fieldsand using the SuccessorFn of the problem to create thecorresponding states.
Search – Basic Tree Search Algorithms – 13/48
![Page 23: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/23.jpg)
Implementation: general tree searchfunction Tree-Search( problem, fringe) returns a solution, or failure
fringe← Insert(Make-Node(Initial-State[problem]), fringe)loop do
if fringe is empty then return failurenode←Remove-Front(fringe)if Goal-Test(problem,State(node)) then return nodefringe← InsertAll(Expand(node, problem), fringe)
function Expand( node, problem) returns a set of nodessuccessors← the empty setfor each action, result in Successor-Fn(problem,State[node]) do
s← a new NodeParent-Node[s]← node; Action[s]← action; State[s]← resultPath-Cost[s]←Path-Cost[node] + Step-Cost(State[node], action, result)Depth[s]←Depth[node] + 1add s to successors
return successors
Search – Basic Tree Search Algorithms – 14/48
![Page 24: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/24.jpg)
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?time complexity—number of nodes generated/expandedspace complexity—maximum number of nodes in memoryoptimality—does it always find a least-cost solution?
• Time and space complexity are measured in terms ofb = maximum branching factor of the search treed = depth of the least-cost solutionm = maximum depth of the state space (may be∞)
Search – Basic Tree Search Algorithms – 15/48
![Page 25: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/25.jpg)
Uninformed search strategies
• Uninformed strategies use only the information available in the problemdefinition
– Breadth-first search– Uniform-cost search– Depth-first search– Depth-limited search– Iterative deepening search
Search – Basic Tree Search Algorithms – 16/48
![Page 26: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/26.jpg)
Breadth-first search
• Expand shallowest unexpanded node
• Implementation:fringe is a FIFO queue, i.e., new successors go at end
Search – Basic Tree Search Algorithms – 17/48
![Page 27: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/27.jpg)
Breadth-first search
• Expand shallowest unexpanded node
• Implementation:fringe is a FIFO queue, i.e., new successors go at end
Search – Basic Tree Search Algorithms – 17/48
![Page 28: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/28.jpg)
Breadth-first search
• Expand shallowest unexpanded node
• Implementation:fringe is a FIFO queue, i.e., new successors go at end
Search – Basic Tree Search Algorithms – 17/48
![Page 29: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/29.jpg)
Breadth-first search
• Expand shallowest unexpanded node
• Implementation:fringe is a FIFO queue, i.e., new successors go at end
Search – Basic Tree Search Algorithms – 17/48
![Page 30: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/30.jpg)
Properties of breadth-first searchComplete??
Yes (if b is finite)Time?? 1 + b+ b2 + b3 + . . .+ bd + b(bd − 1) = O(bd+1), i.e., exp. in dSpace?? O(bd+1) (keeps every node in memory)Optimal?? Yes, if cost-per-step=1; not optimal otherwise
Space is the big problem; can easily generate nodes at 100MB/secso 24hrs = 8640GB.
Search – Basic Tree Search Algorithms – 18/48
![Page 31: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/31.jpg)
Properties of breadth-first searchComplete?? Yes (if b is finite)Time??
1 + b+ b2 + b3 + . . .+ bd + b(bd − 1) = O(bd+1), i.e., exp. in dSpace?? O(bd+1) (keeps every node in memory)Optimal?? Yes, if cost-per-step=1; not optimal otherwise
Space is the big problem; can easily generate nodes at 100MB/secso 24hrs = 8640GB.
Search – Basic Tree Search Algorithms – 18/48
![Page 32: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/32.jpg)
Properties of breadth-first searchComplete?? Yes (if b is finite)Time?? 1 + b+ b2 + b3 + . . .+ bd + b(bd − 1) = O(bd+1), i.e., exp. in dSpace??
O(bd+1) (keeps every node in memory)Optimal?? Yes, if cost-per-step=1; not optimal otherwise
Space is the big problem; can easily generate nodes at 100MB/secso 24hrs = 8640GB.
Search – Basic Tree Search Algorithms – 18/48
![Page 33: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/33.jpg)
Properties of breadth-first searchComplete?? Yes (if b is finite)Time?? 1 + b+ b2 + b3 + . . .+ bd + b(bd − 1) = O(bd+1), i.e., exp. in dSpace?? O(bd+1) (keeps every node in memory)Optimal??
Yes, if cost-per-step=1; not optimal otherwise
Space is the big problem; can easily generate nodes at 100MB/secso 24hrs = 8640GB.
Search – Basic Tree Search Algorithms – 18/48
![Page 34: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/34.jpg)
Properties of breadth-first searchComplete?? Yes (if b is finite)Time?? 1 + b+ b2 + b3 + . . .+ bd + b(bd − 1) = O(bd+1), i.e., exp. in dSpace?? O(bd+1) (keeps every node in memory)Optimal?? Yes, if cost-per-step=1; not optimal otherwise
Space is the big problem; can easily generate nodes at 100MB/secso 24hrs = 8640GB.
Search – Basic Tree Search Algorithms – 18/48
![Page 35: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/35.jpg)
Uniform-cost search
• “Cost-aware BFS”: Expand least-cost unexpanded node
• Implementation:fringe = queue ordered by path cost, lowest first
• Equivalent to breadth-first if step costs all equal
Complete?? Yes, if step cost ≥ εTime?? # of nodes with g ≤ cost-of-optimal-solution, O(bdC
∗/εe)
where C∗ is the cost of the optimal solutionSpace?? # of nodes with g ≤ cost-of-optimal-solution, O(bdC
∗/εe)
Optimal?? Yes: nodes expanded in increasing order of g(n)
Search – Basic Tree Search Algorithms – 19/48
![Page 36: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/36.jpg)
Uniform-cost search
• “Cost-aware BFS”: Expand least-cost unexpanded node
• Implementation:fringe = queue ordered by path cost, lowest first
• Equivalent to breadth-first if step costs all equal
Complete?? Yes, if step cost ≥ εTime?? # of nodes with g ≤ cost-of-optimal-solution, O(bdC
∗/εe)
where C∗ is the cost of the optimal solutionSpace?? # of nodes with g ≤ cost-of-optimal-solution, O(bdC
∗/εe)
Optimal?? Yes: nodes expanded in increasing order of g(n)
Search – Basic Tree Search Algorithms – 19/48
![Page 37: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/37.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 38: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/38.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 39: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/39.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 40: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/40.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 41: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/41.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 42: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/42.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 43: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/43.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 44: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/44.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 45: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/45.jpg)
Depth-first search
• Expand deepest unexpanded node
• Implementation:fringe = LIFO queue, i.e., put successors at front
Search – Basic Tree Search Algorithms – 20/48
![Page 46: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/46.jpg)
Properties of depth-first searchComplete??
No: fails in infinite-depth spaces, spaces with loopsModify to avoid repeated states along path⇒ complete in finite
spacesTime?? O(bm): terrible if m is much larger than d
but if solutions are dense, may be much faster than breadth-firstSpace?? O(bm), i.e., linear space!Optimal?? No
Search – Basic Tree Search Algorithms – 21/48
![Page 47: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/47.jpg)
Properties of depth-first searchComplete?? No: fails in infinite-depth spaces, spaces with loops
Modify to avoid repeated states along path⇒ complete in finitespacesTime??
O(bm): terrible if m is much larger than dbut if solutions are dense, may be much faster than breadth-first
Space?? O(bm), i.e., linear space!Optimal?? No
Search – Basic Tree Search Algorithms – 21/48
![Page 48: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/48.jpg)
Properties of depth-first searchComplete?? No: fails in infinite-depth spaces, spaces with loops
Modify to avoid repeated states along path⇒ complete in finitespacesTime?? O(bm): terrible if m is much larger than d
but if solutions are dense, may be much faster than breadth-firstSpace??
O(bm), i.e., linear space!Optimal?? No
Search – Basic Tree Search Algorithms – 21/48
![Page 49: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/49.jpg)
Properties of depth-first searchComplete?? No: fails in infinite-depth spaces, spaces with loops
Modify to avoid repeated states along path⇒ complete in finitespacesTime?? O(bm): terrible if m is much larger than d
but if solutions are dense, may be much faster than breadth-firstSpace?? O(bm), i.e., linear space!Optimal??
No
Search – Basic Tree Search Algorithms – 21/48
![Page 50: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/50.jpg)
Properties of depth-first searchComplete?? No: fails in infinite-depth spaces, spaces with loops
Modify to avoid repeated states along path⇒ complete in finitespacesTime?? O(bm): terrible if m is much larger than d
but if solutions are dense, may be much faster than breadth-firstSpace?? O(bm), i.e., linear space!Optimal?? No
Search – Basic Tree Search Algorithms – 21/48
![Page 51: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/51.jpg)
Depth-limited search
• depth-first search with depth limit l,i.e., nodes at depth l have no successors
• Recursive implementation using the stack as LIFO:
function Depth-Limited-Search( problem, limit) returns soln/fail/cutoffRecursive-DLS(Make-Node(Initial-State[problem]), problem, limit)
function Recursive-DLS(node, problem, limit) returns soln/fail/cutoffcutoff-occurred?← falseif Goal-Test(problem,State[node]) then return nodeelse if Depth[node] = limit then return cutoffelse for each successor in Expand(node, problem) do
result←Recursive-DLS(successor, problem, limit)if result = cutoff then cutoff-occurred?← trueelse if result 6= failure then return result
if cutoff-occurred? then return cutoff else return failure
Search – Basic Tree Search Algorithms – 22/48
![Page 52: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/52.jpg)
Iterative deepening searchfunction Iterative-Deepening-Search( problem) returns a solution
inputs: problem, a problem
for depth← 0 to∞ doresult←Depth-Limited-Search( problem, depth)if result 6= cutoff then return result
end
Search – Basic Tree Search Algorithms – 23/48
![Page 53: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/53.jpg)
Iterative deepening search
Search – Basic Tree Search Algorithms – 24/48
![Page 54: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/54.jpg)
Iterative deepening search
Search – Basic Tree Search Algorithms – 24/48
![Page 55: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/55.jpg)
Iterative deepening search
Search – Basic Tree Search Algorithms – 24/48
![Page 56: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/56.jpg)
Iterative deepening search
Search – Basic Tree Search Algorithms – 24/48
![Page 57: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/57.jpg)
Properties of iterative deepening searchComplete??
YesTime?? (d+ 1)b0 + db1 + (d− 1)b2 + . . .+ bd = O(bd)
Space?? O(bd)
Optimal?? Yes, if step cost = 1Can be modified to explore uniform-cost tree
Numerical comparison for b = 10 and d = 5, solution at far left leaf:
N(IDS) = 50 + 400 + 3 000 + 20 000 + 100 000 = 123 450
N(BFS) = 10 + 100 + 1 000 + 10 000 + 100 000 + 999 990 = 1 111 100
IDS does better because other nodes at depth d are not expandedBFS can be modified to apply goal test when a node is generated
Search – Basic Tree Search Algorithms – 25/48
![Page 58: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/58.jpg)
Properties of iterative deepening searchComplete?? YesTime??
(d+ 1)b0 + db1 + (d− 1)b2 + . . .+ bd = O(bd)
Space?? O(bd)
Optimal?? Yes, if step cost = 1Can be modified to explore uniform-cost tree
Numerical comparison for b = 10 and d = 5, solution at far left leaf:
N(IDS) = 50 + 400 + 3 000 + 20 000 + 100 000 = 123 450
N(BFS) = 10 + 100 + 1 000 + 10 000 + 100 000 + 999 990 = 1 111 100
IDS does better because other nodes at depth d are not expandedBFS can be modified to apply goal test when a node is generated
Search – Basic Tree Search Algorithms – 25/48
![Page 59: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/59.jpg)
Properties of iterative deepening searchComplete?? YesTime?? (d+ 1)b0 + db1 + (d− 1)b2 + . . .+ bd = O(bd)
Space??
O(bd)
Optimal?? Yes, if step cost = 1Can be modified to explore uniform-cost tree
Numerical comparison for b = 10 and d = 5, solution at far left leaf:
N(IDS) = 50 + 400 + 3 000 + 20 000 + 100 000 = 123 450
N(BFS) = 10 + 100 + 1 000 + 10 000 + 100 000 + 999 990 = 1 111 100
IDS does better because other nodes at depth d are not expandedBFS can be modified to apply goal test when a node is generated
Search – Basic Tree Search Algorithms – 25/48
![Page 60: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/60.jpg)
Properties of iterative deepening searchComplete?? YesTime?? (d+ 1)b0 + db1 + (d− 1)b2 + . . .+ bd = O(bd)
Space?? O(bd)
Optimal??
Yes, if step cost = 1Can be modified to explore uniform-cost tree
Numerical comparison for b = 10 and d = 5, solution at far left leaf:
N(IDS) = 50 + 400 + 3 000 + 20 000 + 100 000 = 123 450
N(BFS) = 10 + 100 + 1 000 + 10 000 + 100 000 + 999 990 = 1 111 100
IDS does better because other nodes at depth d are not expandedBFS can be modified to apply goal test when a node is generated
Search – Basic Tree Search Algorithms – 25/48
![Page 61: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/61.jpg)
Properties of iterative deepening searchComplete?? YesTime?? (d+ 1)b0 + db1 + (d− 1)b2 + . . .+ bd = O(bd)
Space?? O(bd)
Optimal?? Yes, if step cost = 1Can be modified to explore uniform-cost tree
Numerical comparison for b = 10 and d = 5, solution at far left leaf:
N(IDS) = 50 + 400 + 3 000 + 20 000 + 100 000 = 123 450
N(BFS) = 10 + 100 + 1 000 + 10 000 + 100 000 + 999 990 = 1 111 100
IDS does better because other nodes at depth d are not expandedBFS can be modified to apply goal test when a node is generated
Search – Basic Tree Search Algorithms – 25/48
![Page 62: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/62.jpg)
Summary of algorithmsCriterion Breadth- Uniform- Depth- Depth- Iterative
First Cost First Limited Deepening
Complete? Yes∗ Yes∗ No Yes, if l ≥ d Yes
Time bd+1 bdC∗/εe bm bl bd
Space bd+1 bdC∗/εe bm bl bd
Optimal? Yes∗ Yes No No Yes∗
Search – Basic Tree Search Algorithms – 26/48
![Page 63: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/63.jpg)
Loops: Repeated statesFailure to detect repeated states can turn a linear problem into anexponential one!
Search – Basic Tree Search Algorithms – 27/48
![Page 64: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/64.jpg)
Graph searchfunction Graph-Search( problem, fringe) returns a solution, or failure
closed← an empty setfringe← Insert(Make-Node(Initial-State[problem]), fringe)loop do
if fringe is empty then return failurenode←Remove-Front(fringe)if Goal-Test(problem,State[node]) then return nodeif State[node] is not in closed then
add State[node] to closedfringe← InsertAll(Expand(node, problem), fringe)
end
But: storing all visited nodes leads again to exponential spacecomplexity (as for BFS)
Search – Basic Tree Search Algorithms – 28/48
![Page 65: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/65.jpg)
SummaryIn BFS (or uniform-cost search), the fringe propagates layer-wise,containing nodes of similar distance-from-start (cost-so-far), leading tooptimal paths but exponential space complexity O(bd+1)
In DFS, the fringe is like a deep light beam sweeping over the tree, withspace complexity O(bm). Iteratively deepening it also leads to optimalpaths.Graph search can be exponentially more efficient than tree search, butstoring the visited nodes may lead to exponential space complexity asBFS.
Search – Basic Tree Search Algorithms – 29/48
![Page 66: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/66.jpg)
Greedy and A∗Search
Search – Greedy and A∗Search – 30/48
![Page 67: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/67.jpg)
Best-first searchIdea: use an arbitrary priority function f(n) for each node
– actually f(n) is neg-priority: nodes with lower f(n) have higherpriority
f(n) should reflect which nodes could be on an optimal path– could is optimistic – the lower f(n) the more optimistic you are
that n is on an optimal path⇒ Expand the unexpanded node with highes priorityImplementation:fringe is a queue sorted in decreasing order of prioritySpecial cases:
greedy searchA∗ search
Search – Greedy and A∗Search – 31/48
![Page 68: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/68.jpg)
Uniform-Cost Search as special case
• Define g(n) = cost-so-far to reach n
• Then Uniform-Cost Search is Prioritized Search with f = g
Search – Greedy and A∗Search – 32/48
![Page 69: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/69.jpg)
Romania with step costs in km
Search – Greedy and A∗Search – 33/48
![Page 70: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/70.jpg)
Greedy searchWe set the priority function equal to a heuristic f(n) = h(n)
h(n) = estimate of cost from n to the closest goalE.g., hSLD(n) = straight-line distance from n to BucharestGreedy search expands the node that appears to be closest to goal
Search – Greedy and A∗Search – 34/48
![Page 71: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/71.jpg)
Greedy search example
Search – Greedy and A∗Search – 35/48
![Page 72: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/72.jpg)
Greedy search example
Search – Greedy and A∗Search – 35/48
![Page 73: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/73.jpg)
Greedy search example
Search – Greedy and A∗Search – 35/48
![Page 74: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/74.jpg)
Greedy search example
Search – Greedy and A∗Search – 35/48
![Page 75: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/75.jpg)
Properties of greedy searchComplete??
No–can get stuck in loops, e.g.,Iasi→ Neamt→ Iasi→ Neamt→
Complete in finite space with repeated-state checkingTime?? O(bm), but a good heuristic can give dramatic improvementSpace?? O(bm)—keeps all nodes in memoryOptimal?? No
Greedy search does not care about the ’past’ (the cost-so-far).
Search – Greedy and A∗Search – 36/48
![Page 76: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/76.jpg)
Properties of greedy searchComplete?? No–can get stuck in loops, e.g.,
Iasi→ Neamt→ Iasi→ Neamt→Complete in finite space with repeated-state checkingTime??
O(bm), but a good heuristic can give dramatic improvementSpace?? O(bm)—keeps all nodes in memoryOptimal?? No
Greedy search does not care about the ’past’ (the cost-so-far).
Search – Greedy and A∗Search – 36/48
![Page 77: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/77.jpg)
Properties of greedy searchComplete?? No–can get stuck in loops, e.g.,
Iasi→ Neamt→ Iasi→ Neamt→Complete in finite space with repeated-state checkingTime?? O(bm), but a good heuristic can give dramatic improvementSpace??
O(bm)—keeps all nodes in memoryOptimal?? No
Greedy search does not care about the ’past’ (the cost-so-far).
Search – Greedy and A∗Search – 36/48
![Page 78: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/78.jpg)
Properties of greedy searchComplete?? No–can get stuck in loops, e.g.,
Iasi→ Neamt→ Iasi→ Neamt→Complete in finite space with repeated-state checkingTime?? O(bm), but a good heuristic can give dramatic improvementSpace?? O(bm)—keeps all nodes in memoryOptimal??
No
Greedy search does not care about the ’past’ (the cost-so-far).
Search – Greedy and A∗Search – 36/48
![Page 79: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/79.jpg)
Properties of greedy searchComplete?? No–can get stuck in loops, e.g.,
Iasi→ Neamt→ Iasi→ Neamt→Complete in finite space with repeated-state checkingTime?? O(bm), but a good heuristic can give dramatic improvementSpace?? O(bm)—keeps all nodes in memoryOptimal?? No
Greedy search does not care about the ’past’ (the cost-so-far).
Search – Greedy and A∗Search – 36/48
![Page 80: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/80.jpg)
A∗ searchIdea: combine information from the past and the future
neg-priority = cost-so-far + estimated cost-to-goEvaluation function f(n) = g(n) + h(n)
g(n) = cost-so-far to reach nh(n) = estimated cost-to-go from n
f(n) = estimated total cost of path through n to goalA∗ search uses an admissible (=optimistic) heuristic
i.e., h(n) ≤ h∗(n) where h∗(n) is the true cost-to-go from n.(Also require h(n) ≥ 0, so h(G) = 0 for any goal G.)
E.g., hSLD(n) never overestimates the actual road distanceTheorem: A∗ search is optimal (=finds the optimal path)
Search – Greedy and A∗Search – 37/48
![Page 81: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/81.jpg)
A∗ search example
Search – Greedy and A∗Search – 38/48
![Page 82: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/82.jpg)
A∗ search example
Search – Greedy and A∗Search – 38/48
![Page 83: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/83.jpg)
A∗ search example
Search – Greedy and A∗Search – 38/48
![Page 84: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/84.jpg)
A∗ search example
Search – Greedy and A∗Search – 38/48
![Page 85: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/85.jpg)
A∗ search example
Search – Greedy and A∗Search – 38/48
![Page 86: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/86.jpg)
A∗ search example
Search – Greedy and A∗Search – 38/48
![Page 87: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/87.jpg)
Proof of optimality of A∗
Suppose some suboptimal goal G2 has been generated and is in the fringe (buthas not yet been selected to be tested for goal condition!). We want to proof:Any node on a shortest path to an optimal goal G will be expanded before G2.
Let n be an unexpanded node on a shortest path to G.
f(G2) = g(G2) since h(G2) = 0
> g(G) since G2 is suboptimal
≥ f(n) since h is admissible
Since f(n) < f(G2), A∗ will expand n before G2. This is true for any n on theshortest path. In particular, at some time G is added to the fringe, and sincef(G) = g(G) < f(G2) = g(G2) it will select G before G2 for goal testing.
Search – Greedy and A∗Search – 39/48
![Page 88: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/88.jpg)
Properties of A∗
Complete??
Yes, unless there are infinitely many nodes with f ≤ f(G)Time?? Exponential in [relative error in h × length of soln.]Space?? Exponential. Keeps all nodes in memoryOptimal?? YesA∗ expands all nodes with f(n) < C∗
A∗ expands some nodes with f(n) = C∗
A∗ expands no nodes with f(n) > C∗
Search – Greedy and A∗Search – 40/48
![Page 89: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/89.jpg)
Properties of A∗
Complete?? Yes, unless there are infinitely many nodes with f ≤ f(G)Time??
Exponential in [relative error in h × length of soln.]Space?? Exponential. Keeps all nodes in memoryOptimal?? YesA∗ expands all nodes with f(n) < C∗
A∗ expands some nodes with f(n) = C∗
A∗ expands no nodes with f(n) > C∗
Search – Greedy and A∗Search – 40/48
![Page 90: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/90.jpg)
Properties of A∗
Complete?? Yes, unless there are infinitely many nodes with f ≤ f(G)Time?? Exponential in [relative error in h × length of soln.]Space??
Exponential. Keeps all nodes in memoryOptimal?? YesA∗ expands all nodes with f(n) < C∗
A∗ expands some nodes with f(n) = C∗
A∗ expands no nodes with f(n) > C∗
Search – Greedy and A∗Search – 40/48
![Page 91: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/91.jpg)
Properties of A∗
Complete?? Yes, unless there are infinitely many nodes with f ≤ f(G)Time?? Exponential in [relative error in h × length of soln.]Space?? Exponential. Keeps all nodes in memoryOptimal??
YesA∗ expands all nodes with f(n) < C∗
A∗ expands some nodes with f(n) = C∗
A∗ expands no nodes with f(n) > C∗
Search – Greedy and A∗Search – 40/48
![Page 92: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/92.jpg)
Properties of A∗
Complete?? Yes, unless there are infinitely many nodes with f ≤ f(G)Time?? Exponential in [relative error in h × length of soln.]Space?? Exponential. Keeps all nodes in memoryOptimal?? YesA∗ expands all nodes with f(n) < C∗
A∗ expands some nodes with f(n) = C∗
A∗ expands no nodes with f(n) > C∗
Search – Greedy and A∗Search – 40/48
![Page 93: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/93.jpg)
Optimality of A∗ (more useful)Lemma: A∗ expands nodes in order of increasing f value∗
Gradually adds “f -contours” of nodes (cf. breadth-first adds layers)Contour i has all nodes with f = fi, where fi < fi+1
Search – Greedy and A∗Search – 41/48
![Page 94: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/94.jpg)
Proof of lemma: Consistency
A heuristic is consistent if
h(n) ≤ c(n, a, n′) + h(n′)
If h is consistent, we have
f(n′) = g(n′) + h(n′)
= g(n) + c(n, a, n′) + h(n′)
≥ g(n) + h(n)
= f(n)
I.e., f(n) is nondecreasing along any path.
Search – Greedy and A∗Search – 42/48
![Page 95: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/95.jpg)
Admissible heuristicsE.g., for the 8-puzzle:h1(n) = number of misplaced tilesh2(n) = total Manhattan distance
(i.e., no. of squares from desired location of each tile)
h1(S) =??h2(S) =??
Search – Greedy and A∗Search – 43/48
![Page 96: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/96.jpg)
Admissible heuristicsE.g., for the 8-puzzle:h1(n) = number of misplaced tilesh2(n) = total Manhattan distance
(i.e., no. of squares from desired location of each tile)
h1(S) =?? 6h2(S) =?? 4+0+3+3+1+0+2+1 = 14
Search – Greedy and A∗Search – 43/48
![Page 97: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/97.jpg)
DominanceIf h2(n) ≥ h1(n) for all n (both admissible)then h2 dominates h1 and is better for searchTypical search costs:d = 14 IDS = 3,473,941 nodes
A∗(h1) = 539 nodes
A∗(h2) = 113 nodes
d = 24 IDS ≈ 54,000,000,000 nodes
A∗(h1) = 39,135 nodes
A∗(h2) = 1,641 nodesGiven any admissible heuristics ha, hb,
h(n) = max(ha(n), hb(n))
is also admissible and dominates ha, hb
Search – Greedy and A∗Search – 44/48
![Page 98: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/98.jpg)
Relaxed problemsAdmissible heuristics can be derived from the exactsolution cost of a relaxed version of the problemIf the rules of the 8-puzzle are relaxed so that a tile can moveanywhere, then h1(n) gives the shortest solutionIf the rules are relaxed so that a tile can move to any adjacent square,then h2(n) gives the shortest solutionKey point: the optimal solution cost of a relaxed problemis no greater than the optimal solution cost of the real problem
Search – Greedy and A∗Search – 45/48
![Page 99: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/99.jpg)
Memory-bounded A∗
As with BFS, A∗ has exponential space complexityIterative-deepening A∗, works for integer path costs, but problematic forreal-valued(Simplified) Memory-bounded A∗ (SMA∗):
– Expand as usual until a memory bound is reach– Then, whenever adding a node, remove the worst node n′ from
the tree– worst means: the n′ with highest f(n′)– To not loose information, backup the measured step-cost
cost(n, a, n′)
to improve the heuristic h(n) of its parentSMA∗ is complete and optimal if the depth of the optimal path is withinthe memory bound
Search – Greedy and A∗Search – 46/48
![Page 100: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/100.jpg)
SummaryCombine information from the past and the futureA heuristic function h(n) represents information about the future
– it estimates cost-to-go optimisticallyGood heuristics can dramatically reduce search costGreedy best-first search expands lowest h
– incomplete and not always optimalA∗ search expands lowest f = g + h
– neg-priority = cost-so-far + estimated cost-to-go– complete and optimal– also optimally efficient (up to tie-breaks, for forward search)
Admissible heuristics can be derived from exact solution of relaxedproblemsMemory-bounded startegies exist
Search – Greedy and A∗Search – 47/48
![Page 101: Search Marc Toussaint University of Stuttgart Winter 2016/17 · 2016-12-21 · Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2016/17 (slides based](https://reader035.vdocuments.site/reader035/viewer/2022070801/5f02a01f7e708231d40532d6/html5/thumbnails/101.jpg)
OutlookTree search with partial observations
– rather discuss this in a fully probabilistic setting laterTree search for games
– minimax extension to tree search– discuss state-of-the-art probabilistic Monte-Carlo tree search
methods later
Search – Greedy and A∗Search – 48/48