States and Search Core of intelligent behaviour
D Goforth - COSC 4117, fall The simple problem solver Restricted form of general agent: Figure 3.1, p.61 function Simple-Problem-Solving-Agent( percept) returns action seq an action sequence, initially empty state some description of the current world state goal a goal, initially null problem a problem formulation state = Update-State(state, percept) if seq is empty ( ie – do search first time only) goal = Formulate-Goal(state) if (state==goal) return nil problem = Formulate-Problem(state, goal) (performance) seq = Search(problem) action First(seq) seq = Rest(seq) return action Creating a solution sequence by graph search
D Goforth - COSC 4117, fall The simple problem solver works by simulating the problem in internal representation and trying plans till a good one is discovered works in deterministic, static, single agent environments plan is made once and never changed works if plan is perfect – actions do what plan assumes no corrections to path are required works efficiently if space is not too large
D Goforth - COSC 4117, fall Representation of Environment – abstractions of real world states and state space – only relevant information in state representation actions - successor function costs and path cost (eg touring problem TSP) start state goal state or criterion function of state(s)
D Goforth - COSC 4117, fall Representation of Environment – state space efficiency Faster processing minimization of number of states minimization of degree of branching of successor function (actions) Smaller memory allocation large state spaces are generated/explored, not stored/traversed
D Goforth - COSC 4117, fall Searching state space The fundamental method for creating a plan Is SEARCH
D Goforth - COSC 4117, fall Searching – graph traversals – TREE-SEARCH – p. 70 start node and all possible actions, then pick another node...:
D Goforth - COSC 4117, fall Design of a search space – the spanning tree over a state space Node in search space current state reference to parent node on path action from parent to node path cost from start node (may be just path length)
D Goforth - COSC 4117, fall Problem-solving agent – example LLLL RRRRLRRR RLLL RRLL RLLRRLRL LRLL LLLRLLRL RRRL RLRRRRLR LRRL LLRRLRLR Node in search space LLRL 2 F State Parent link Action Path length RRRL 3 Ff
D Goforth - COSC 4117, fall Problem-solving agent – example LLLL RRRRLRRR RLLL RRLL RLLRRLRL LRLL LLLRLLRL RRRL RLRRRRLR LRRL LLRRLRLR SPANNING TREE Note why some state space edges are not traversed in the spanning tree
D Goforth - COSC 4117, fall General search algorithm – p.72 EXAMPLE: breadth first search in a binary tree start state (visitedList) fringe (openList) current state
general search algorithm -variation startState initial state of environment adjacentNode, node nodes of search tree: contain state, parent, action, path cost openList collection of Nodes generated, not tested yet (fringe) visitedList collection of Nodes already tested and not the goal action[n] list of actions that can be taken by agent goalStateFound(state) returns boolean evaluate a state as goal precondition(state, action) returns boolean test a state for action apply(node,action) returns node apply action to get next state node makeSequence(node) returns sequence of actions generate plan as sequence of actions
general search algorithm -variation algorithm search (startState, goalStateFound()) returns action sequence openList = new NodeCollection(); // stack or queue or... visitedList = new NodeCollection(); node = new Node(startState, null, null, 0 0); openList.insert(node) while ( notEmpty(openList) ) node = openList.get() if (goalStateFound (node.state) ) // successful search return makeSequence(node) for k = 0..n-1 if (precondition(node.state, action[k])==TRUE) adjacentNode = apply(nextNode,action[k]) if NOT(adjacentNode in openList OR visitedList) openList.insert(adjacentNode) visitedList.insert(node) return null
D Goforth - COSC 4117, fall algorithms of general search breadth first depth first iterative deepening search uniform cost search
D Goforth - COSC 4117, fall variations on search algorithm 1.breadth first search openList is a queue 2.depth first search openList is a stack (recursive depth first is equivalent) tradeoffs for bfs: shortest path vs resources required RRRL 3 Ff State Parent link Action Path length
D Goforth - COSC 4117, fall comparison of bfs and dfs nodes on openList while search is at level k: bfsO(n k )n is branching factor dfsO(nk) recursive dfsO(k) quality of solution path bfs always finds path with fewest actions dfs may find a longer path before a shorter one
D Goforth - COSC 4117, fall depth-limited dfs use depth first search with limited path length eg dfs(startNode,goalStateFound(),3) uses dfs but only goes to level 3
D Goforth - COSC 4117, fall iterated (depth-limited) dfs variation on dfs to get best of both small openList of dfs finds path with fewest actions like bfs repeated searching is not a big problem!!!
D Goforth - COSC 4117, fall iterative deepening dfs search algorithm puts depth-limited dfs in a loop: algorithm search (startState, goalStateFound()) Node node = null depth = 0 while (node == null) depth++ node = dfs(startState,goalStateFound(),depth) return node
D Goforth - COSC 4117, fall uniform cost search find best path when there is an action cost for each edge: a path of more edges may be better than a path of fewer edges: (5 edges) is preferred to (2 edges) variation on bfs openList is a priority queue ordered on path cost from start state
D Goforth - COSC 4117, fall uniform cost search - example openList is a priority queue ordered on path cost from start state visited. open C(2),B(4),D(8) current A(0) A BCD 4 2 8
visited. open C(2),B(4),D(8) current A(0) A BCD visited A(0) open B(4),E(5),D(8) current C(2) A BCD E 3 visited A(0),C(2), B(4) open G(6),F(7),D(8), H(10) current E(5) A BCD E 3 FG 3 5 visited A(0),C(2) open E(5),F(7),D(8),G(9) current B(4) A BCD E 3 FG 3 5 H
D Goforth - COSC 4117, fall variations of the general algorithm openList structure time of testing for goal state
D Goforth - COSC 4117, fall (some) problems that complicate search perceptions are incomplete representation of state dynamic environment – path of actions is not only cause of state change (eg games)
D Goforth - COSC 4117, fall what kind of problem-reprise fully / partly observable - is state known? deterministic / stochastic - effect of action uncertain? sequential / episodic - plan required/useful? static / dynamic - state changes between action & perception and/or between perception & action discrete / continuous - concurrent or sequential actions on state single- / multi-agent dynamic environment; possible communication, distributed AI