Searching for Solutions

Slides:



Advertisements
Similar presentations
Artificial Intelligent
Advertisements

Solving problems by searching Chapter 3. Outline Problem-solving agents Problem types Problem formulation Example problems Basic search algorithms.
Additional Topics ARTIFICIAL INTELLIGENCE
Review: Search problem formulation
Uninformed search strategies
Problem Solving by Searching Copyright, 1996 © Dale Carnegie & Associates, Inc. Chapter 3 Spring 2007.
1 Lecture 3 Uninformed Search. 2 Uninformed search strategies Uninformed: While searching you have no clue whether one non-goal state is better than any.
Blind Search by Prof. Jean-Claude Latombe
Blind Search1 Solving problems by searching Chapter 3.
Search Strategies Reading: Russell’s Chapter 3 1.
1 Blind (Uninformed) Search (Where we systematically explore alternatives) R&N: Chap. 3, Sect. 3.3–5.
Touring problems Start from Arad, visit each city at least once. What is the state-space formulation? Start from Arad, visit each city exactly once. What.
Search Strategies CPS4801. Uninformed Search Strategies Uninformed search strategies use only the information available in the problem definition Breadth-first.
UNINFORMED SEARCH Problem - solving agents Example : Romania  On holiday in Romania ; currently in Arad.  Flight leaves tomorrow from Bucharest.
Review: Search problem formulation
Problem Solving by Searching Copyright, 1996 © Dale Carnegie & Associates, Inc. Chapter 3 Spring 2004.
UnInformed Search What to do when you don’t know anything.
Review: Search problem formulation Initial state Actions Transition model Goal state (or goal test) Path cost What is the optimal solution? What is the.
Problem Solving and Search Andrea Danyluk September 11, 2013.
For Friday Finish reading chapter 4 Homework: –Lisp handout 4.
For Monday Read chapter 4, section 1 No homework..
Lecture 3: Uninformed Search
1 Solving problems by searching Chapter 3. Depth First Search Expand deepest unexpanded node The root is examined first; then the left child of the root;
Uninformed Search ECE457 Applied Artificial Intelligence Spring 2007 Lecture #2.
Uninformed search strategies A search strategy is defined by picking the order of node expansion Uninformed search strategies use only the information.
Solving problems by searching A I C h a p t e r 3.
Blind Search Russell and Norvig: Chapter 3, Sections 3.4 – 3.6 CS121 – Winter 2003.
Chapter 3 Solving problems by searching. Search We will consider the problem of designing goal-based agents in observable, deterministic, discrete, known.
Artificial Intelligence Solving problems by searching.
Lecture 3 Problem Solving through search Uninformed Search
Lecture 3: Uninformed Search
Review: Tree search Initialize the frontier using the starting state
Uniformed Search (cont.) Computer Science cpsc322, Lecture 6
Problem Solving Agents
EE562 ARTIFICIAL INTELLIGENCE FOR ENGINEERS
Last time: Problem-Solving
Uninformed Search Chapter 3.4.
Problem Solving by Searching
Uninformed Search Strategies
Problem solving and search
Artificial Intelligence (CS 370D)
Artificial Intelligence Problem solving by searching CSC 361
AI I: problem-solving and search
Uniformed Search (cont.) Computer Science cpsc322, Lecture 6
Uninformed Search Introduction to Artificial Intelligence
HW #1 Due 29/9/2008 Write Java Applet to solve Goats and Cabbage “Missionaries and cannibals” problem with the following search algorithms: Breadth first.
Artificial Intelligence
Russell and Norvig: Chapter 3, Sections 3.4 – 3.6
Solving problems by searching
CS 188: Artificial Intelligence Spring 2007
Problem Solving and Searching
What to do when you don’t know anything know nothing
EA C461 – Artificial Intelligence
Artificial Intelligence
Problem Solving and Searching
Principles of Computing – UFCFA3-30-1
G5BAIM Artificial Intelligence Methods
Problem Spaces & Search
Uninformed search Lirong Xia. Uninformed search Lirong Xia.
Supplemental slides for CSE 327 Prof. Jeff Heflin
UNINFORMED SEARCH -BFS -DFS -DFIS - Bidirectional
ECE457 Applied Artificial Intelligence Fall 2007 Lecture #2
CS 416 Artificial Intelligence
CMSC 471 Fall 2011 Class #4 Tue 9/13/11 Uninformed Search
Solving Problems by Searching
Search Strategies CMPT 420 / CMPG 720.
Supplemental slides for CSE 327 Prof. Jeff Heflin
Basic Search Methods How to solve the control problem in production-rule systems? Basic techniques to find paths through state- nets. For the moment: -
Presentation transcript:

Searching for Solutions Traversal of the search space from the initial state to a goal state legal sequence of actions as defined by successor function (operators) General procedure check for goal state expand the current state the fringe (frontier) is the set of nodes not yet visited newly generated nodes are added to the fringe select one from the set of reachable states search strategy determines the selection of the next node to be expanded can be achieved by ordering the nodes in the fringe move to the selected state A search tree is generated nodes are added as more states are visited

Example: Romania

Tree search example

Graph and Tree the tree is generated by traversing the graph 3 A 4 C 2 D E 1 B G 5 Graph and Tree the tree is generated by traversing the graph the same node in the graph may appear repeatedly in the tree the arrangement of the tree depends on the traversal strategy (search method) the initial state becomes the root node of the tree in the fully expanded tree, the goal states are the leaf nodes cycles in graphs may result in infinite branches S 3 1 5 1 A 4 C 2 B 2 1 1 1 2 3 3 2 D 3 C 2 D 3 G E 1 C 2 E 1 4 3 1 2 3 3 4 1 2 3 4 G D 3 G E 1 G G D 3 G E 1 G 3 4 3 4 G G G G

General Tree Search Algorithm function TREE-SEARCH(problem, fringe) returns solution fringe := INSERT(MAKE-NODE(INITIAL-STATE[problem]), 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) Generate the node from the initial state of the problem Repeat return failure if there are no more nodes in the fringe examine the current node; if it’s a goal, return the solution expand the current node, and add the new nodes to the fringe

Search Strategies - Evaluation Criteria Completeness does it always find a solution if one exists? Time complexity how long does it take to find the solution number of nodes generated Space complexity memory required for the search maximum number of nodes in memory Optimality will the best solution be found does it always find a least-cost solution? main factors for complexity considerations: branching factor b, depth d of the least-cost goal node, maximum path length m

Search Strategies Uninformed Search Informed Search number of steps, path cost unknown agent knows when it reaches a goal breadth-first depth-first uniform-cost search depth-limited search iterative deepening bi-directional search constraint satisfaction Informed Search agent has background information about the problem map, costs of actions best-first search search with heuristics memory-bounded search iterative improvement search

Breadth-First Expand shallowest unexpanded node achieved by the TREE-SEARCH method by appending newly generated nodes at the end of the search queue fringe is a FIFO queue, i.e., new successors go at end function BREADTH-FIRST-SEARCH(problem) returns solution return TREE-SEARCH(problem, FIFO-QUEUE())

Breadth-First Snapshot 1 Initial 1 Visited Fringe Current 2 3 Visible Goal Fringe: [] + [2,3]

Breadth-First Snapshot 2 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 Fringe: [3] + [4,5]

Breadth-First Snapshot 3 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 Fringe: [4,5] + [6,7]

Breadth-First Snapshot 4 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 Fringe: [5,6,7] + [8,9]

Breadth-First Snapshot 5 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 Fringe: [6,7,8,9] + [10,11]

Breadth-First Snapshot 6 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 Fringe: [7,8,9,10,11] + [12,13]

Breadth-First Snapshot 7 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 Fringe: [8,9.10,11,12,13] + [14,15]

Breadth-First Snapshot 8 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Fringe: [9,10,11,12,13,14,15] + [16,17]

Breadth-First Snapshot 9 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Fringe: [10,11,12,13,14,15,16,17] + [18,19]

Breadth-First Snapshot 10 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Fringe: [11,12,13,14,15,16,17,18,19] + [20,21]

Breadth-First Snapshot 11 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Fringe: [12, 13, 14, 15, 16, 17, 18, 19, 20, 21] + [22,23]

Breadth-First Snapshot 12 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 Note: The goal node is “visible” here, but we can not perform the goal test yet. 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Fringe: [13,14,15,16,17,18,19,20,21] + [22,23]

Breadth-First Snapshot 13 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Fringe: [14,15,16,17,18,19,20,21,22,23,24,25] + [26,27]

Breadth-First Snapshot 14 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Fringe: [15,16,17,18,19,20,21,22,23,24,25,26,27] + [28,29]

Breadth-First Snapshot 15 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [15,16,17,18,19,20,21,22,23,24,25,26,27,28,29] + [30,31]

Breadth-First Snapshot 16 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]

Breadth-First Snapshot 17 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [18,19,20,21,22,23,24,25,26,27,28,29,30,31]

Breadth-First Snapshot 18 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [19,20,21,22,23,24,25,26,27,28,29,30,31]

Breadth-First Snapshot 19 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [20,21,22,23,24,25,26,27,28,29,30,31]

Breadth-First Snapshot 20 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [21,22,23,24,25,26,27,28,29,30,31]

Breadth-First Snapshot 21 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [22,23,24,25,26,27,28,29,30,31]

Breadth-First Snapshot 22 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [23,24,25,26,27,28,29,30,31]

Breadth-First Snapshot 23 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [24,25,26,27,28,29,30,31]

Breadth-First Snapshot 24 Initial 1 Visited Fringe Current 2 3 Visible Goal 4 5 6 7 Note: The goal test is positive for this node, and a solution is found in 24 steps. 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [25,26,27,28,29,30,31]

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) b branching factor d depth of the tree

Uniform-Cost -First The nodes with the lowest cost are explored first similar to BREADTH-FIRST, but with an evaluation of the cost for each reachable node g(n) = path cost(n) = sum of individual edge costs to reach the current node from the root fringe = queue ordered by path cost Equivalent to breadth-first if step costs all equal function UNIFORM-COST-SEARCH(problem) returns solution return TREE-SEARCH(problem, COST-FN, FIFO-QUEUE()) Time Complexity bC*/e Space Complexity Completeness yes (finite b) Optimality yes b branching factor C* cost of the optimal solution e minimum cost per action

Uniform-Cost Snapshot Initial 1 Visited 4 3 Fringe Current 2 3 Visible 7 2 2 4 Goal 4 5 6 7 Edge Cost 9 2 5 4 4 4 3 6 9 8 9 10 11 12 13 14 15 3 4 7 2 4 8 6 5 4 3 4 2 8 3 9 2 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fringe: [27(10), 4(11), 25(12), 26(12), 14(13), 24(13), 20(14), 15(16), 21(18)] + [22(16), 23(15)]

Uniform Cost Fringe Trace [1(0)] [3(3), 2(4)] [2(4), 6(5), 7(7)] [6(5), 5(6), 7(7), 4(11)] [5(6), 7(7), 13(8), 12(9), 4(11)] [7(7), 13(8), 12(9), 10(10), 11(10), 4(11)] [13(8), 12(9), 10(10), 11(10), 4(11), 14(13), 15(16)] [12(9), 10(10), 11(10), 27(10), 4(11), 26(12), 14(13), 15(16)] [10(10), 11(10), 27(10), 4(11), 26(12), 25(12), 14(13), 24(13), 15(16)] [11(10), 27(10), 4(11), 25(12), 26(12), 14(13), 24(13), 20(14), 15(16), 21(18)] [27(10), 4(11), 25(12), 26(12), 14(13), 24(13), 20(14), 23(15), 15(16), 22(16), 21(18)] [4(11), 25(12), 26(12), 14(13), 24(13), 20(14), 23(15), 15(16), 23(16), 21(18)] [25(12), 26(12), 14(13), 24(13),8(13), 20(14), 23(15), 15(16), 23(16), 9(16), 21(18)] [26(12), 14(13), 24(13),8(13), 20(14), 23(15), 15(16), 23(16), 9(16), 21(18)] [14(13), 24(13),8(13), 20(14), 23(15), 15(16), 23(16), 9(16), 21(18)] [24(13),8(13), 20(14), 23(15), 15(16), 23(16), 9(16), 29(16),21(18), 28(21)] Goal reached! Notation: [Bold+Orange: Current Node; Black: Old Fringe Node; Green: New Fringe Node]. Assumption: New nodes with the same cost as existing nodes are added after the existing node.

Breadth-First vs. Uniform-Cost Breadth-first always expands the shallowest node only optimal if all step costs are equal Uniform-cost considers the overall path cost optimal for any (reasonable) cost function Positive Both are complete for non-extreme problems finite number of branches

Depth-First continues exploring newly generated nodes achieved by the TREE-SEARCH method by appending newly generated nodes at the beginning of the search queue utilizes a Last-In, First-Out (LIFO) queue, or stack function DEPTH-FIRST-SEARCH(problem) returns solution return TREE-SEARCH(problem, LIFO-QUEUE()) Time Complexity bm Space Complexity b*m Completeness no (for infinite branch length) Optimality no b branching factor m maximum path length

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-first search

Depth-First vs. Breadth-First Depth-first goes off into one branch until it reaches a leaf node not good if the goal is on another branch neither complete nor optimal uses much less space than breadth-first much fewer visited nodes to keep track of smaller fringe Breadth-first is more careful by checking all alternatives complete and optimal under most circumstances very memory-intensive

Backtracking Search Variation of depth-first search only one successor node is generated at a time even better space complexity: O(m) instead of O(b*m) even more memory space can be saved by incrementally modifying the current state, instead of creating a new one only possible if the modifications can be undone this is referred to as backtracking frequently used in planning, theorem proving

Depth-Limited Search Similar to depth-first, but with a limit L overcomes problems with infinite paths sometimes a depth limit can be inferred or estimated from the problem description in other cases, a good depth limit is only known when the problem is solved based on the TREE-SEARCH method nodes at depth L have no successors function DEPTH-LIMITED-SEARCH(problem, depth-limit) returns solution return TREE-SEARCH(problem, depth-limit, LIFO-QUEUE()) Time Complexity bl Space Complexity b*l Completeness no (goal beyond l) Optimality no b branching factor l depth limit

Iterative Deepening applies LIMITED-DEPTH with increasing depth limits combines advantages of BREADTH-FIRST and DEPTH-FIRST methods many states are expanded multiple times doesn’t really matter because the number of those nodes is small in practice, one of the best uninformed search methods for large search spaces, unknown depth function ITERATIVE-DEEPENING-SEARCH(problem) returns solution for depth := 0 to unlimited do result := DEPTH-LIMITED-SEARCH(problem, depth-limit) if result != cutoff then return result Time Complexity bd Space Complexity b*d Completeness yes Optimality yes (all step costs identical) b branching factor d tree depth

Iterative deepening search L = 0

Iterative deepening search L = 1

Iterative deepening search L = 2

Iterative deepening search l =3

Summary of algorithms

Improving Search Methods Make algorithms more efficient avoiding repeated states utilizing memory efficiently Use additional knowledge about the problem properties (“shape”) of the search space more interesting areas are investigated first pruning of irrelevant areas areas that are guaranteed not to contain a solution can be discarded