Documente Academic
Documente Profesional
Documente Cultură
Chapter 3
14 Jan 2004
14 Jan 2004
Outline
Problem-solving agents Problem types Problem formulation Example problems Basic search algorithms
14 Jan 2004
Problem-solving agents
14 Jan 2004
It formulates a goal and a problem, searches for a sequence of actions that would solve the problem, and then executes the actions one at a time. When this is complete, it formulates another goal and start over. Note that when it is executing the sequence it ignores its percepts: it assumes that the solution it has found will always work
CS 3243 - Blind Search 5
14 Jan 2004
Example: Romania
On holiday in Romania; currently in Arad. Flight leaves tomorrow from Bucharest Formulate goal:
be in Bucharest
Formulate problem:
Find solution:
3243 - Blind Search sequence of cities,CS e.g., Arad, Sibiu, Fagaras, Bucharest 6
14 Jan 2004
14 Jan 2004
Problem types
percepts provide new information about current state often interleave} search, execution
14 Jan 2004
14 Jan 2004
14 Jan 2004
10
[Right,Suck,Left,Suck]
Contingency
Nondeterministic: Suck may dirty a clean carpet Partially observable: location, dirt at current location. Percept: [L, Clean], i.e., start in #5 or #7
14 Jan 2004
Solution?
11
[Right,Suck,Left,Suck]
Contingency
Nondeterministic: Suck may dirty a clean carpet Partially observable: location, dirt at current location. Percept: [L, Clean], i.e., start in #5 or #7
14 Jan 2004
12
1. 2. 2.
e.g., S(Arad) = {<Arad Zerind, Zerind>, } explicit, e.g., x = "at Bucharest" implicit, e.g., Checkmate(x)
3.
4.
e.g., sum of distances, number of actions executed, etc. c(x,a,y) is the step cost, assumed to be 0
CS actions 3243 - Blind Search from the initial state to a is a sequence of leading 13
e.g., "Arad Zerind" represents a complex set of possible routes, detours, rest stops, etc.
For guaranteed realizability, any real state "in Arad must get to some real state "in Zerind" (Abstract) solution =
14 Jan 2004
14 Jan 2004
states? integer dirt and robot location actions? Left, Right, Suck goal test? no dirt at all locations path cost? 1 per action
CS 3243 - Blind Search 16
14 Jan 2004
14 Jan 2004
states? locations of tiles actions? move blank left, right, up, down goal test? = goal state (given) path cost? 1 per move
states?: real-valued coordinates of robot joint angles parts of the object to be assembled
14 Jan 2004
Having formulated some problems, we now need to solve them. This is done by a search through the state space. Here we deal with search technique that use an explicit search tree that is generated by the initial state and successor function that together define the state space. In general we may have search graph rather than a search tree, when the same state can be reached from multiple paths.
CS 3243 - Blind Search 20
14 Jan 2004
Basic idea:
offline, simulated exploration of state space by generating successors of already-explored states (a.k.a.~expanding states)
14 Jan 2004
21
Fig shows some expansions in the search tree for finding a route from Arad to Bucharest. The root of the search tree is a search node corresponding to the initial state, In(Arad). The first step is to test whether this is a goal state. Clearly it is not, but it is important to check so that we can solve trick problems like starting in Arad, get Arad. Because this is not a goal state, we need to consider some other states. This is done by expanding the current state; that is , applying the successor function to the current state, there by generating a new set of states. In this case, we get three new states: In(Sibiu), In(Timisoara), and In(Zerind).
CS 3243 - Blind Search 22
14 Jan 2004
SEARCH STRATEGY
Now we must choose which of these three possibilities to consider further. This is the essence of search-following up one option now and putting the other aside for later, in case the first choice does not to lead to solution. Suppose we choose Sibiu first. We check to see whether it is goal state (it is not) and then expand it to get In(Arad), In(Fagaras), In(Oradea), and In (RimnicuVilcea). We can choose any of thase four, or go back and choose Imisoara or Zerind. We continue choosing, testing, and expanding until either a solution is found or there are no more states to be expanded. The choice of which state to expand is determined by the search strategy which is described as general tree-search algorithm which is shown above.
CS 3243 - Blind Search 23
14 Jan 2004
14 Jan 2004
24
14 Jan 2004
25
14 Jan 2004
26
There are many ways to represent nodes. The node is data structure with five components STATE: the state in the state space to which the node corresponds; PARENT-NODE: the node in the search tree that generated this node; ACTION: the action that was applied to search to the parent to generate the node; PATH-COST: denoted by g(n), the path from the initial state to the node DEPTH: the number of steps along the path from the initial state.
CS 3243 - Blind Search 27
14 Jan 2004
The node is a data structure used to represent the search tree. The collection of nodes that have generated but not yet expanded are called fringe. Each element of the fringe is a leaf node, that is, node with no successors in the tree, which are shown with bold outlines. The search strategy would be a function might b The operations on a queue are as follows: MAKE-QUEUE(elements) creates a queue with the given elements. EMPTY?(queue) returns true only if there are no more elements in the queue. FIRST (queue): returns the first element of the queue. REMOVE-FIRST (queue) returns FIRST (queue) and removes it from the queue. INSERT (element, queue) inserts an element into the queue and returns the resulting queue. INSERT-ALL (elements, queue) inserts a set of elements into the queue and returns the resulting queue. The general tree algorithm is described
CS 3243 - Blind Search 28
14 Jan 2004
14 Jan 2004
29
A state is a (representation of) a physical configuration A node is a data structure constituting part of a search tree includes state, parent node, action, path cost g(x), depth
The Expand function creates new nodes, filling in the various fields and using the SuccessorFn of the problem to create the corresponding states.
There are many ways to represent nodes, the node is a data structure with five components: STATE: the state in the state space to which the node corresponds; PARENT-NODE: the node in the search tree that generated the node; ACTION: the action that was applied to the parent to generate the node; PATH-COST: denoted by g (n), of the path from the initial state to the node DEPTH: the number of steps along the path from the initial state.
CS 3243 - Blind Search 31
14 Jan 2004
Search strategies
A search 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 space complexity: maximum number of nodes in memory optimality: does it always find a least-cost solution?
b: maximum branching factor of the search tree d: depth of the least-cost solution m: maximum depth of the state space (may be )
14 Jan 2004
32
Uniformed search also called blind search has no additional information about the state beyond that provide in the problem definition. All they can do is generate successors and distinguish a goal state from nongoal state. Strategies that know whether one goal state is more promising than the other are called informed search or heuriestic search. Uninformed search strategies use only the information available in the problem definition Breadth-first search Uniform-cost search Depth-first search
CS 3243 - Blind Search 33
14 Jan 2004
Breadth-first-search
It is a simply strategy in which the root node is expanded first, then all the successors of the root node are expanded next, then their successors, and so on. In general, all the nodes are expanded at a given depth in the search tree before any code at the next level are expanded. Breadth first search can be implemented by calling TREE-SEARCH with an empty fringe that is first-in-first-out (FIFO) queue.
CS 3243 - Blind Search 34
14 Jan 2004
Breadth-first search
14 Jan 2004
35
Breadth-first search
14 Jan 2004
36
Breadth-first search
14 Jan 2004
37
Breadth-first search
14 Jan 2004
38
Space is the bigger problem (more than time). For b=10, 10,000 nodes are generated/sec and 1000 bytes of storage is required. This will be big 14 Jan 2004 CS 3243 - Blind Search problem in case depth =12, which takes 35 years
39
Uniform-cost search
Time? # of nodes with g cost of optimal solution, O(bceiling(C*/ )) where C* is the cost of the optimal solution Space? # of nodes with g cost of optimal solution,
14 Jan 2004
O(bceiling(C*/ ))
41
Uniform-cost search
Instead of expanding the shallowest node, uniform-cost search expands then node n with lowest path cost. Note that if all step costs are equal, this is identical to breadth first search.
14 Jan 2004
42
Depth-first search
14 Jan 2004
43
Depth-first search
14 Jan 2004
44
Depth-first search
14 Jan 2004
45
Depth-first search
14 Jan 2004
46
Depth-first search
14 Jan 2004
47
Depth-first search
14 Jan 2004
48
Depth-first search
14 Jan 2004
49
Depth-first search
14 Jan 2004
50
Depth-first search
14 Jan 2004
51
Depth-first search
14 Jan 2004
52
Depth-first search
14 Jan 2004
53
Depth-first search
14 Jan 2004
54
14 Jan 2004
Depth-limited search
= depth-first search with depth limit l, i.e., nodes at depth l have no successors
Recursive implementation:
14 Jan 2004
56
Depth-first search has very modest memory requirements. It needs to store only a single path from the root a leaf, along with the remaining unexpanded siblings for each node on the path. We find that depth-first search would require 118 kilobytes instead of 10 petabytes at depth d=12, a factor of 10 billion times less space.
CS 3243 - Blind Search 57
14 Jan 2004
14 Jan 2004
58
14 Jan 2004
59
14 Jan 2004
60
14 Jan 2004
61
14 Jan 2004
62
Number of nodes generated in an iterative deepening search to depth d with branching factor b: NIDS = (d+1)b0 + d b^1 + (d-1)b^2 + + 3bd-2 +2bd-1 + 1bd For b = 10, d = 5,
14 Jan 2004
O(bd)
14 Jan 2004
Summary of algorithms
14 Jan 2004
65
Repeated states
Failure to detect repeated states can turn a linear problem into an exponential one!
14 Jan 2004
66
Graph search
14 Jan 2004
67
Summary
Problem formulation usually requires abstracting away realworld details to define a state space that can feasibly be explored
Iterative deepening search uses only linear space and not much more time than other uninformed algorithms
14 Jan 2004
68