460 likes | 556 Views
Shaqra University College of Computer and Information Sciences Information Technology Department CS401- Intelligent systems . Chapter 2. Problem Solving by Searching. Objectives. Learn how to formulate a search problem. Learn the different algorithms used to solve problems by searching.
E N D
Shaqra University College of Computer and Information Sciences Information Technology Department CS401- Intelligent systems Chapter 2 Problem Solving by Searching
Objectives • Learn how to formulate a search problem. • Learn the different algorithms used to solve problems by searching. • Learn how to assess the performance of a search algorithm.
Introduction • Solving a particular problem → Need to define the elements of a problem and its solution. • Define the problem precisely. • Isolate and represent the task knowledge that is necessary to solve the problem. • Choose and apply the best problem solving technique(s) to the particular problem.
Introduction: Problem solving as search Task = Search • Search is required to solve a wide range of problems. • Search is a method that can be used by computers to examine a huge problem space to find a goal. • e.g Searching for a contact lens on a football field • Challenge: How to find the goal as quickly as possible or without using too many resources.
Introduction: Problem solving as search • A problem can be considered to consist of a goal and a set of actions that can be taken to lead to the goal • Task = finding the sequence of actions that lead to the desirable goal. Start End
Introduction: Problem solving as search • Toy problems • Vacuum world • The N-Queen • Rubik's cube • The 8-Puzzle • The 8-puzzle belongs to the family of Sliding-block puzzles. • The 8-puzzle has 9!/2=181,440 reachable states. • The 15-puzzle has around 1.3 trillion states… • Real world Problems • Touring problems • - Route Finding • - Travelling salesperson • - VLSI Layout • - Robot navigation • - Internet searching
Introduction: Problem solving as search • Search can be performed without any additional information about how to reach a solution: Blind Search (Uniformed search) • Search can be performed using heuristics: Informed Search
Uninformed search • To successfully operate, blind search should satisfy some properties: • It must be complete: It must generate every possible solution otherwise it might miss a suitable solution. • It must be able to find the best solution.
Uninformed search • Key questions to be addressed: • What goal do we need to achieve? • How to know when a goal is reached? • What knowledge we need? • What actions do we need to do? • A goal can be described as: • A task to be accomplished • A situation to be reached • A set of properties to be acquired
Uninformed search: Basic concepts • State: configuration, situation, point…… • Problem formulation: Process of deciding what actions and states to consider given a goal. • Solution: Sequence of actions that help achieving the goal: a path from an initial state to the goal state . • Search: Process of looking for a solution. Takes input (problem) and returns solution. • Execution: To carry out the actions recommended by the solution
Uninformed search: Problem formulation • Problem definition: a problem can be formally defined by: • State representation. • Initial state. • Successor function. • Goal test: determines whether a given state is a goal state. • Path cost function: assigns a cost to each path. Should reflect the performance measure used to assess the quality of any solution.
Uninformed search: Problem formulation • Successor function: • Given a particular state x, fsuccessor(x) = {(<action, new state>) } where action is one of the legal actions in state x and new state is the successor state that can be reached from x by applying action. • The successor function allows together with the initial state to define the state space. • STATE SPACE: The set of all states reachable from the initial state. • A path in the state space is a sequence of states connected by a sequence of actions.
Uninformed search: Problem formulation • Example problem: The vacuum world • State representation: The agent is on one of two locations, each of which might or might not contain dirt. Thus, there are 2 x 22 = 8 possible world states. • Initial state: Any state can be designated as the initial state. • Successor function: Generates the legal states that result from applying the following actions: (Left, Right, Suck). • Goal test: Check whether all the squares are clean. • Path cost function: Each step costs 1. So the path cost is the number of steps.
Uninformed search: Problem formulation • Example problem: The vacuum world state space
Uninformed search: Problem formulation • Solution definition: • A potential solution is a path from the initial state to a goal state. • Solution quality is measured by the path cost function. • An optimal solution has the lowest path cost among all solutions.
Arad Zerind Sibiu Timisoara Oradea Fagaras Arad Rimnicu Vilcea Sibiu Bucharest Uninformed search: Problem formulation • Solution path:
Uninformed search: An example • Touring problem: Given a set of n cities, the touring problem consists in visiting cities at least once starting and ending in the same city. • States: Specified by the current city and the set of cities already visited. • Initial state: Any state can be designed as the initial state. • Successor function: Generates the next city to visit according to the current state. • Goal test: Ending city reached and all cities have been visited. • Path cost: Sum of all step costs.
Uninformed search: Searching for solutions • To solve the problem, we need to define a search strategy that allows to explore efficiently the state space. • The possible action sequences starting at the initial state form a search tree. • Each state is represented by a node. • Expansionoperation: A node is expanded if the successor function for the corresponding state generates new states
Uninformed search: Informal description Function Tree-Search(problem, strategy) returns a solution or a failure Initialize the search tree using the initial state of problem Loop do If there are no candidates for expansion then return failure Choose a leaf node for expansion according to strategy If the node contains a goal state then return the corresponding solution Else expand the node and add the resulting node to the search tree End Loop
Uninformed search: Towards a formal description • Node definition: Data structure with 5 components: • State: representation of a physical configuration. • Parent node: The node in the search tree that generated this node. • Action: action applied to the parent node to generate this node. • Path cost: cost of the path from the initial state to the node. • Depth: The number of steps along the path from the initial state. Parent node Node Children
Uninformed search: Towards a formal description • How to deal with non expanded nodes? Fringe: set of nodes generated but not yet expanded. Each node is a leaf node. • What is the suitable representation of fringe? • Set of nodes: Simplest way but could be computationally expensive. • Queue: best implementation of the fringe
Uninformed search: Towards a formal description • What are the operations to be performed on the queue? • Make-Node(state,parent,action,depth,cost): creates a node with the given parameters. • Empty?(queue): returns TRUE only if there are no more nodes in the queue. • First(queue) : returns the first node of the queue. • Remove-First(queue): returns First(queue) and removes it from the queue. • Insert(element, queue): inserts a node into the queue and returns the resulting queue. • Insert-All(elements, queue): inserts a set of nodes into the queue and returns the resulting queue.
Uninformed search: Formal description Function Tree-Search(problem, fringe) returns a solution or a failure fringe ← Insert (Make-Node(Initial state[problem],NULL,NULL,d,c),fringe) Loop do If Empty?(fringe) then return failure node ← Remove-First(fringe) If Goal-Test[ problem] applied to State[node] succeeds then return Solution(node) fringe ← Insert-all( Expand (node,problem),fringe) End loop
Uninformed search: Formal description Function Expand (node, problem) returns a set of nodes successors ← empty set For each <action,result> in fsuccessor(state(node)) do Path-cost ← path-cost[node] + step-cost(State[node], action, result) Depth ← Depth[node]+1 S ← Make-node (result, node, action, Path-cost, Depth) Add s to successors return successors
Uninformed search: Repeated states • Problem: Possibility of wasting time by expanding states that have already been encountered and expanded before. • Occurs when actions are reversible. (Example: move left, and move right) • A solvable problem can become unsolvable if the algorithm does not detect them systematically. • For detection purposes, a comparison operation is needed. Solution: keep a list to store every expanded node.
Uninformed search: Avoiding repeated states Function Graph-Search(problem, fringe) returns a solution or a failure closed ← empty; fringe ← Insert (Make-Node(Initial-state[problem],NULL,NULL,d,c),fringe) Loop do If Empty?(fringe) then return failure node ← Remove-First(fringe) If Goal-Test[ problem] applied to State[node] succeeds thenreturn Solution(node) If state [node] is not in closedthen add State [node] to closed fringe ← Insert-all( Expand (node, problem), fringe) End Loop
Uninformed search: Performance evaluation • The performance of problem solving algorithms can be evaluated along the following dimensions: • Completeness: is it guaranteed to find a solution when there is one? • Optimality: Does the strategy find the optimal solution? • Time complexity: how long does it take to find a solution? It can be measured by the number of generated nodes. • Space complexity: how much memory is needed to perform the search? It can be measured in terms of the maximum number of nodes stored in memory.
Uninformed search: Performance evaluation Complexity is expressed in terms of 3 quantities: • b: The branching factor: maximum number of successors of any node. • d: The depth of the shallowest goal node. • m: The maximum length of any path in the state space.
Uninformed search: Basic strategies • Breadth First Search (BFS) • Depth First Search (DFS) • Depth Limited Search (DLS) • Uniform Cost Search (UCS) • Iterative Deepening Search (IDS)
Uninformed search: Basic strategies • Strategies that order nodes without using any domain specific information (only problem definition is provided). • Generate successors and simply differentiate between a goal state and a non goal state. • Blind search strategies differ by the order of node expansion.
Uninformed search: Breadth First Search • Main idea: Nodes at depth i are expanded before nodes at depth (i+1). • Implementation: use of a First-In-First-Out queue (FIFO). Nodes visited first are expanded first. • Shallow nodes are expanded before deeper nodes.
Uninformed search: BFS evaluation • Completeness: Yes, if the branching factor b is finite. • Optimality: shallowest goal is not necessarily the optimal one. It is optimal if all actions have the same cost. • Time complexity: At the worst case, BFS expands every node (except goal node) thus taking time as follows: • 1 +b + b2 + b3 +….+ bd + (bd+1 – b)=O(bd+1) • Memory complexity: BFS keeps every node in memory. Space is a big problem.
Uninformed search: Depth First Search • DFS expands the deepest node in the current fringe on the search tree. • As nodes are expanded, they are dropped from the fringe so then the search “backs up” to the next shallowest node that still has unexplored successors. • DFS strategy is implemented using Last-In_First-Out (LIFO) queue or stack. • Another alternative is to implement DFS with a recursive function that calls itself on each of its children in turn.
Uninformed search: DFS evaluation • Completeness: Incomplete in case of unbounded depth containing no solution. • Optimality: does not provide always optimal solutions. • Time complexity: At the worst case, DFS generates about O(bm) nodes in the search tree. • Memory complexity: DFS requires less memory than BFS. It needs to store only a single path from the root to a leaf node along with the remaining unexpanded sibling nodes for each node in the path. The required storage is (bm+1) where b is the branching factor and m maximium depth.
Uninformed search: Depth Limited Search • It is simply DFS with a depth bound. • Searching is not permitted beyond the depth bound. • Works well if we know what the depth of the solution is. • Termination is guaranteed. • If the solution is beneath the depth bound, the search cannot find the goal (hence this search algorithm is incomplete). • Otherwise use Iterative deepening search (IDS).
Uninformed search: IDS (cont.) • Key idea: Iterative deepening search (IDS) applies DLS repeatedly with increasing depth. It terminates when a solution is found or no solutions exists. • IDS combines the benefits of BFS and DFS: Like DFS the memory requirements are very modest (O(bd)). Like BFS, it is complete when the branching factor is finite. • The total number of generated nodes is : • N(IDS)=(d)b + (d-1) b2 + …+(1)bd • In general, iterative deepening is the preferred Uninformed search method when there is a large search space and the depth of the solution is not known.
Uninformed search: Uniform Cost Search • In case of equal step costs, Breadth First search finds the optimal solution. • For any step-cost function, Uniform Cost search expands the node n with the lowest path cost. • UCS takes into account the total cost. • UCS is guided by path costs rather than depths. Nodes are ordered according to their path cost.
Uninformed search: Searching with partial information • When the world is not fully observable, we must reason about sets of states rather than single states. • Search is performed in the belief state space instead of state space. • Initial state is a belief state.
Uninformed search: Searching with partial information • Vaccum world example: initial belief state: set of possible states
Uninformed search: Searching with partial information • GO Right action on the belief state leads to: • GO Left action on the belief state leads to: • Suck action on the belief state leads to:
Uninformed search: Summary • Search: process of constructing sequences of actions that achieve a goal given a problem. • Goal formulation is the first step in solving problems by searching. It facilitates problem formulation. • Formulating a problem requires specifying four components: Initial states, successor function, goal test and path cost function. Environment is represented as a state space. • A solution is a path from the initial state to a goal state. • Search algorithms are judged on the basis of completeness, optimality, time complexity and space complexity. • Several search strategies: BFS, DFS, DLS, IDS,UCS…