560 likes | 741 Views
Solving problems by searching. Chapter 3. Outline. Problem-solving agents Problem types Problem formulation Example problems Basic search algorithms. Problem-solving agents. Example: Romania. On holiday in Romania; currently in Arad. Flight leaves tomorrow to Bucharest Formulate goal:
E N D
Solving problems by searching Chapter 3 CS 3243 - Blind Search
Outline • Problem-solving agents • Problem types • Problem formulation • Example problems • Basic search algorithms CS 3243 - Blind Search
Problem-solving agents CS 3243 - Blind Search
Example: Romania • On holiday in Romania; currently in Arad. • Flight leaves tomorrow to Bucharest • Formulate goal: • goal: be in Bucharest • Formulate problem: • states: various cities • actions: drive between cities • Find solution: • sequence of cities , {Arad, Sibiu, Fagaras, Bucharest} CS 3243 - Blind Search
Example: Romania CS 3243 - Blind Search
Problem types • Deterministic, fully observablesingle-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
Example: vacuumworld • Single-state, start in #5. Solution? CS 3243 - Blind Search
Example: vacuumworld • Single-state, start in #5. Solution?[Right, Suck] • Sensorless, start in {1,2,3,4,5,6,7,8} • Solution? CS 3243 - Blind Search
Example: vacuumworld • Single-state, start in #5. Solution?[Right, Suck] • Sensorless, start in {1,2,3,4,5,6,7,8} • Solution? [Right,Suck,Left,Suck] e.g., Right goes to {2,4,6,8} Left goes to {1,3,5,7} CS 3243 - Blind Search
Example: vacuumworld • 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 Solution? [Right, if dirt then Suck] CS 3243 - Blind Search
Single-state problem formulation A problem is defined by four items: • initial state e.g., "at Arad" • actions or successor functionS(x) = set of action–state pairs • e.g., S(Arad) = {<Arad Zerind, Zerind>, … } • goal test, can be • explicit, e.g., x = "at Bucharest" • implicit, e.g., Checkmate(x) • 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 • A solution is a sequence of actions leading from the initial state to a goal state CS 3243 - Blind Search
Selecting a state space • Real world is 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. • (Abstract) solution = set of real paths that are solutions in the real world CS 3243 - Blind Search
Vacuum world state space graph • states? • actions? • goal test? • path cost? CS 3243 - Blind Search
Vacuum world state space graph • states?integerdirt and robotlocation • actions?Left, Right, Suck • goal test?nodirt at alllocations • path cost?1 per action CS 3243 - Blind Search
Example: The 8-puzzle • states? • actions? • goal test? • path cost? CS 3243 - Blind Search
Example: The 8-puzzle • states?locations of tiles • actions?moveblankleft, right, up, down • goal test?= goal state (given) • path cost? 1 per move CS 3243 - Blind Search
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 path cost?: time to execute CS 3243 - Blind Search
Tree search algorithms • Basic idea: • offline, simulated exploration of statespace by generatingsuccessors of already-explored states (~expandingstates) CS 3243 - Blind Search
Tree search example CS 3243 - Blind Search
Tree search example CS 3243 - Blind Search
Tree search example CS 3243 - Blind Search
Implementation: general tree search CS 3243 - Blind Search
Implementation: states vs. nodes • A state is a (representation of) a physicalconfiguration. • A node is a datastructure constituting part of a searchtree includes state, parent node, action, path costg(x), depth. • The Expandfunctioncreatesnewnodes, filling in the various fields and using the SuccessorFn of the problem to create the correspondingstates. CS 3243 - Blind Search
Search strategies • A searchstrategy 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? • timecomplexity: number of nodesgenerated during the search • spacecomplexity: maximumnumber of nodesstored in memory • optimality: does it always find a least-costsolution? • Time and spacecomplexity are measured in terms of • b:branchingfactor or the maximum number of successors of any node in the search tree. • d: depth of the least-costsolution • m: maximumdepth of anypath in the statespace. CS 3243 - Blind Search
Uninformed search strategies • Uninformed search strategies useonly the informationavailable in the problemdefinition. • Also known as BlindSearch. • Breadth-first search • Uniform-cost search • Depth-first search • Depth-limited search • Iterativedeepening search CS 3243 - Blind Search
Breadth-first search • The root node is expanded first • Then allsuccessors of the root node are expanded next, then their successors, and so on. CS 3243 - Blind Search
Breadth-first search • Allnodes are expanded at a given depth in the search tree before any nodes at the nextlevel are expanded. CS 3243 - Blind Search
Breadth-first search • Nodes that are visitedfirst will be expandedfirst.Implementation: • fringe is a FIFOqueue, i.e., new successors go at end. CS 3243 - Blind Search
Breadth-first search • Expandshallow nodes beforedeeper nodes • Implementation: • fringe is a FIFOqueue, i.e., new successors go at end CS 3243 - Blind Search
Properties of breadth-first search • Complete?Yes (if b is finite) • Time?b+b2+b3+… +bd + (bd+1-b) = O(bd+1) • Space?b+b2+b3+… +bd +(bd+1 - b) (keeps every node in memory) • Optimal? Yes (if cost = 1 per step) CS 3243 - Blind Search
Time & Memory requirements for Breadth-first search Ex: b = 10 , speed = 10000 nodes/sec , space = 1000 bytes/node Space is the biggerproblem (more than time) CS 3243 - Blind Search
Uniform-cost search • Expandleast-costunexpandednodeImplementation: • fringe = queue ordered by pathcost • Equivalent to breadth-first if step costs all equal • Complete? Yes, if step cost ≥ ε (+ve constant)Time?# of nodes with g ≤ cost of optimalsolution, O(bceiling(C*/ ε))where C* is the cost of the optimal solution • Space?# of nodes with g≤ cost of optimalsolution, O(bceiling(C*/ ε))Optimal?Yes – nodes expanded in increasing order of g(n) CS 3243 - Blind Search
Depth-first search • Expand the deepestnode in the fringe of search treeexpandednodes are dropped from the fringe. CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Depth-first search • ExpanddeepestunexpandednodeImplementation: • fringe= LIFOqueue, i.e., put successors at front CS 3243 - Blind Search
Properties of depth-first search • Complete?No: fails in infinite-depth spaces, spaces with loops (unbounded tree) • Modify to avoidrepeatedstates along path • Time?O(bm): where m is maximumdepth. • if solutions are dense, much faster than breadth-firstSpace?O(bm)= bm+1 nodes space. • Ex: memory = 118 kB(instead of 10 peta B for breadth-first , for d=12) Optimal? No (in case of multi-nodes goal) CS 3243 - Blind Search
Depth-limited search • To solve the problem of unbounded trees. = depth-first search with depth limit L i.e., nodes at depthL treated as they have nosuccessors • In case of L < d , the goal at depth d is beyond the limit, and hence fail to get the goal. • In case of L > d , the solution is non-optimal. CS 3243 - Blind Search
Iterative deepening search • it combines the benefits of depth-first (low memory & breadth-first (complete) search. • Total number of nodes generated: • N(IDS) = D*b + (d-1)*b2 + ….. + 1 * bd • Ex: if b=10 , d=5 , • N(IDS) = 123,450 • N(BFS) = 1,111,100 • Hence, Iterative deepening is the preferreduninformedsearch method when there is large search space and the depth of the solution is notknown. CS 3243 - Blind Search
Iterative deepening search L=0 CS 3243 - Blind Search
Iterative deepening search L=1 CS 3243 - Blind Search
Iterative deepening search L=2 CS 3243 - Blind Search