Anda di halaman 1dari 68

Solving problems by searching

Chapter 3

14 Jan 2004

CS 3243 - Blind Search

Here we describe one kind of goal-based agent called

14 Jan 2004

CS 3243 - Blind Search

Outline

Problem-solving agents Problem types Problem formulation Example problems Basic search algorithms

14 Jan 2004

CS 3243 - Blind Search

Problem-solving agents

14 Jan 2004

CS 3243 - Blind Search

A problem solving agent

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:

states: various cities actions: drive between cities

Find solution:
3243 - Blind Search sequence of cities,CS e.g., Arad, Sibiu, Fagaras, Bucharest 6

14 Jan 2004

Example: A road map of part of Romania

14 Jan 2004

CS 3243 - Blind Search

Problem types

Deterministic, fully observable single-state problem


Agent knows exactly which state it will be in; solution is a sequence

Non-observable sensorless problem (conformant problem)


Agent may have no idea where it is; solution is a sequence

Nondeterministic and/or partially observable contingency problem

percepts provide new information about current state often interleave} search, execution

Unknown state space exploration problem


CS 3243 - Blind Search 8

14 Jan 2004

Example: vacuum world

Single-state, start in #5. Solution?

14 Jan 2004

CS 3243 - Blind Search

Example: vacuum world

Single-state, start in #5. Solution? [Right, Suck]

Sensorless, start in {1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution?

14 Jan 2004

CS 3243 - Blind Search

10

Example: vacuum world

Sensorless, start in {1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution?

[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?

CS 3243 - Blind Search

11

Example: vacuum world

Sensorless, start in {1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution?

[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? [Right, if dirt then Suck] CS 3243 Blind Search

12

Single-state problem formulation


A problem is defined by four items: initial state e.g., "at Arad" actions or successor function S(x) = set of actionstate pairs

1. 2. 2.

e.g., S(Arad) = {<Arad Zerind, Zerind>, } explicit, e.g., x = "at Bucharest" implicit, e.g., Checkmate(x)

3.

goal test, can be


4.

path cost (additive)


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

14 Jan A 2004 solution

Selecting a state space

Real world is absurdly complex


state space must be abstracted for problem solving

(Abstract) state = set of real states

(Abstract) action = complex combination of real actions

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 =

set of real paths that are solutions in the real world


CS 3243 - Blind Search 14

14 Jan 2004

Vacuum world state space graph

states? actions? goal test? path cost?


CS 3243 - Blind Search 15

14 Jan 2004

Vacuum world state space graph

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

Example: The 8-puzzle

states? actions? goal test? path cost?


CS 3243 - Blind Search 17

14 Jan 2004

Example: The 8-puzzle

states? locations of tiles actions? move blank left, right, up, down goal test? = goal state (given) path cost? 1 per move

[Note: optimal solution of n-Puzzle family is NP-hard]


14 Jan 2004 CS 3243 - Blind Search 18

Example: robotic assembly

states?: real-valued coordinates of robot joint angles parts of the object to be assembled

actions?: continuous motions of robot joints


goal test?: complete assembly
CS 3243 - Blind Search 19

14 Jan 2004

SEARCHING FOR SOLUTIONS

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

Tree search algorithms

Basic idea:

offline, simulated exploration of state space by generating successors of already-explored states (a.k.a.~expanding states)

14 Jan 2004

CS 3243 - Blind Search

21

TREE SEARCH EXAMPLE

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

Tree search example

14 Jan 2004

CS 3243 - Blind Search

24

Tree search example

14 Jan 2004

CS 3243 - Blind Search

25

Tree search example

14 Jan 2004

CS 3243 - Blind Search

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

Implementation: general tree search

14 Jan 2004

CS 3243 - Blind Search

29

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 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.

14 Jan 2004 CS 3243 - Blind Search 30

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?

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 )

14 Jan 2004

CS 3243 - Blind Search

32

Uninformed search strategies

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

Expand shallowest unexpanded node Implementation:

fringe is a FIFO queue, i.e., new successors go


at end

14 Jan 2004

CS 3243 - Blind Search

35

Breadth-first search

Expand shallowest unexpanded node Implementation:

fringe is a FIFO queue, i.e., new successors go


at end

14 Jan 2004

CS 3243 - Blind Search

36

Breadth-first search

Expand shallowest unexpanded node Implementation:

fringe is a FIFO queue, i.e., new successors go


at end

14 Jan 2004

CS 3243 - Blind Search

37

Breadth-first search

Expand shallowest unexpanded node Implementation:

fringe is a FIFO queue, i.e., new successors go


at end

14 Jan 2004

CS 3243 - Blind Search

38

Properties of breadth-first search

Complete? Yes (if b is finite) Time? 1+b+b2+b3+ +bd + b(bd-1) = O(bd+1)

Space? O(bd+1) (keeps every node in memory)


Optimal? Yes (if cost = 1 per step)

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

Time and memory requirement of Breadth-first search


Depth 2 4 6 8 10 12 14
14 Jan 2004

Nodes 1100 111,100 10^7 10^9 10^11 10^13 10^15

Time 11 seconds 11 seconds 19 minutes 31 hours 129 days 35 years

Memory 1 megabyte 106 Mb 10 GB 1 terabytes 101 teraby 10 petaby

3,523 years 1 exabyte


CS 3243 - Blind Search 40

Uniform-cost search

Expand least-cost unexpanded node Implementation:


fringe = queue ordered by path cost

Equivalent to breadth-first if step costs all equal


Complete? Yes, if step cost

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*/ ))

CS 3243 - Blind Search

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

CS 3243 - Blind Search

42

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

43

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

44

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

45

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

46

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

47

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

48

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

49

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

50

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

51

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

52

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

53

Depth-first search

Expand deepest unexpanded node Implementation:


fringe = LIFO queue, i.e., put successors at front

14 Jan 2004

CS 3243 - Blind Search

54

Properties of depth-first search

Complete? No: fails in infinite-depth spaces, spaces with loops


Modify to avoid repeated states along path


complete in finite spaces

Time? O(bm): terrible if m is much larger than d

but if solutions are dense, may be much faster than breadth-first

Space? O(bm), i.e., linear space!


CS 3243 - Blind Search 55

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

CS 3243 - Blind Search

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

Iterative deepening search

14 Jan 2004

CS 3243 - Blind Search

58

Iterative deepening search l =0

14 Jan 2004

CS 3243 - Blind Search

59

Iterative deepening search l =1

14 Jan 2004

CS 3243 - Blind Search

60

Iterative deepening search l =2

14 Jan 2004

CS 3243 - Blind Search

61

Iterative deepening search l =3

14 Jan 2004

CS 3243 - Blind Search

62

Iterative deepening search

Number of nodes generated in a depth-limited search to depth d with branching factor b:

NDLS = b0 + b1 + b2 + + bd-2 + bd-1 + bd

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,

NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111


NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456
CS 3243 - Blind Search 63

14 Jan 2004

Properties of iterative deepening search

Complete? Yes Time? (d+1)b0 + d b1 + (d-1)b2 + + bd =

O(bd)

Space? O(bd) Optimal? Yes, if step cost = 1


CS 3243 - Blind Search 64

14 Jan 2004

Summary of algorithms

14 Jan 2004

CS 3243 - Blind Search

65

Repeated states

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

14 Jan 2004

CS 3243 - Blind Search

66

Graph search

14 Jan 2004

CS 3243 - Blind Search

67

Summary

Problem formulation usually requires abstracting away realworld details to define a state space that can feasibly be explored

Variety of uninformed search strategies

Iterative deepening search uses only linear space and not much more time than other uninformed algorithms

14 Jan 2004

CS 3243 - Blind Search

68

Anda mungkin juga menyukai