Basic Search Methods How to solve the control problem in production-rule systems? Basic techniques to find paths through state- nets. For the moment: -

Slides:



Advertisements
Similar presentations
Jecho and Donatus Depth First and Breadth First Search.
Advertisements

Basic Search Methods How to solve the control problem in production-rule systems? Basic techniques to find paths through state- nets. For the moment: -
Uninformed search strategies
Artificial Intelligence By Mr. Ejaz CIIT Sahiwal.
PROBLEM SOLVING AND SEARCH
Comp 307 Problem Solving and Search Formalize a problem as State Space Search Blind search strategies Heuristic search.
Problem Solving Agents A problem solving agent is one which decides what actions and states to consider in completing a goal Examples: Finding the shortest.
Solving Problems by Searching Currently at Chapter 3 in the book Will finish today/Monday, Chapter 4 next.
Implementation and Evaluation of Search Methods. Use a stack data structure. 1. Push root node of tree on the stack. 2. Pop the top node off the stack.
UNINFORMED SEARCH Problem - solving agents Example : Romania  On holiday in Romania ; currently in Arad.  Flight leaves tomorrow from Bucharest.
UnInformed Search What to do when you don’t know anything.
Blind Search-Part 2 Ref: Chapter 2. Search Trees The search for a solution can be described by a tree - each node represents one state. The path from.
Using Search in Problem Solving
Search  Exhaustive/Blind Search Methods Depth First Search Breadth First Search  Heuristic Methods Hill Climbing Beam Search Best First Search…
Review: Search problem formulation Initial state Actions Transition model Goal state (or goal test) Path cost What is the optimal solution? What is the.
1 Problem Solving and Searching CS 171/271 (Chapter 3) Some text and images in these slides were drawn from Russel & Norvig’s published material.
Introduction to search Chapter 3. Why study search? §Search is a basis for all AI l search proposed as the basis of intelligence l inference l all learning.
Vilalta&Eick:Uninformed Search Problem Solving By Searching Introduction Solutions and Performance Uninformed Search Strategies Avoiding Repeated States/Looping.
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;
Basic Problem Solving Search strategy  Problem can be solved by searching for a solution. An attempt is to transform initial state of a problem into some.
Goal-based Problem Solving Goal formation Based upon the current situation and performance measures. Result is moving into a desirable state (goal state).
Solving problems by searching A I C h a p t e r 3.
CPSC 322, Lecture 5Slide 1 Uninformed Search Computer Science cpsc322, Lecture 5 (Textbook Chpt 3.5) Sept, 13, 2013.
Search Part I Introduction Solutions and Performance Uninformed Search Strategies Avoiding Repeated States Partial Information Summary.
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
Adversarial Search and Game-Playing
Review: Tree search Initialize the frontier using the starting state
Uninformed search Lirong Xia Spring, Uninformed search Lirong Xia Spring, 2017.
Problem Solving Agents
Last time: Problem-Solving
For Monday Chapter 6 Homework: Chapter 3, exercise 7.
Uninformed Search Chapter 3.4.
Uninformed Search Strategies
Artificial Intelligence (CS 370D)
Artificial Intelligence Problem solving by searching CSC 361
Uninformed Search Introduction to Artificial Intelligence
Prof. Dechter ICS 270A Winter 2003
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
Searching for Solutions
Problem Solving and Searching
Principles of Computing – UFCFA3-30-1
A General Backtracking Algorithm
Artificial Intelligence
Problem Spaces & Search
Heuristic Search Methods
Uninformed search Lirong Xia. Uninformed search Lirong Xia.
Uninformed search Lirong Xia. Uninformed search Lirong Xia.
Introducing Underestimates
Chap 4: Searching Techniques
More advanced aspects of search
Problem Spaces & Search
UNINFORMED SEARCH -BFS -DFS -DFIS - Bidirectional
ECE457 Applied Artificial Intelligence Fall 2007 Lecture #2
Search.
Search.
CMSC 471 Fall 2011 Class #4 Tue 9/13/11 Uninformed Search
Search Strategies CMPT 420 / CMPG 720.
Presentation transcript:

Basic Search Methods How to solve the control problem in production-rule systems? Basic techniques to find paths through state- nets. For the moment: - no attempt to find optimal solutions - a ‘tree-search’ approach

A running example: Implicit network A D B E C F G S 3 4 5 2 Two possible tasks: 1. FIND a (the) path. = computational cost 2. TRAVERSE the path. = travel cost 2. relates to finding optimal paths (next chapter).

The associated loop-free tree of partial paths B E C F G S 3 4 5 The associated loop-free tree of partial paths 2 S A D B E C F G 3 2 4 5

Comments: We are not interested in optimal paths in this chapter, so we can drop the costs. Denotes: SA S A D B E C F G Denotes:SDA Denotes: SDEBA Nodes do not denote themselves, but denote the partial path from the root to themselves!!

Terminology: Node, link (or edge), branch S A D B E C F G Node, link (or edge), branch Parent, child, ancestor, descendant Root node, goal node Expand / Open node / Closed node / Branching factor

Methods that do not use any specific knowledge about the problem: BLIND Search Methods Methods that do not use any specific knowledge about the problem: Depth-first Breadth-first Non-deterministic search Iterative deepening Bi-directional search

Depth-first search Expand the tree as deep as possible, returning to upper levels when needed.

Depth-first search = Chronological backtracking Select a child convention: left-to-right Repeatedly go to next child, as long as possible. Return to left-over alternatives (higher-up) only when needed. A B C E F D G

Depth-first algorithm: 1. QUEUE <-- path only containing the root; 2. WHILE QUEUE is not empty AND goal is not reached DO remove the first path from the QUEUE; create new paths (to all children); reject the new paths with loops; add the new paths to front of QUEUE; 3. IF goal reached THEN success; ELSE failure;

A D B E C F G S 3 4 5 2 1. QUEUE <-- path only containing the root; 2. WHILE QUEUE is not empty AND goal is not reached DO remove the first path from the QUEUE; create new paths (to all children); reject the new paths with loops; add the new paths to front of QUEUE; 3. IF goal reached THEN success; ELSE failure;

Trace of depth-first for running example: (S) S removed, (SA,SD) computed and added (SA, SD) SA removed, (SAB,SAD,SAS) computed, (SAB,SAD) added (SAB,SAD,SD) SAB removed, (SABA,SABC,SABE) computed, (SABC,SABE) added (SABC,SABE,SAD,SD) SABC removed, (SABCB) computed, nothing added (SABE,SAD,SD) SABE removed, (SABEB,SABED,SABEF) computed, (SABED,SABEF)added (SABED,SABEF,SAD,SD) SABED removed, (SABEDS,SABEDA.SABEDE) computed, nothing added (SABEF,SAD,SD) SABEF removed, (SABEFE,SABEFG) computed, (SABEFG) added (SABEFG,SAD,SD) goal is reached: reports success

Evaluation criteria: Expressed in terms of: Completeness: Does the algorithm always find a path? (for every NET such that a path exits) Speed (worst time complexity) : What is the highest number of nodes that may need to be created? Memory (worst space complexity) : What is the largest amount of nodes that may need to be stored? Expressed in terms of: d = depth of the tree b = (average) branching factor of the tree m = depth of the shallowest solution

Note: approximations !! In our complexity analysis, we do not take the built-in loop-detection into account. The results only ‘formally’ apply to the variants of our algorithms WITHOUT loop-checks. Studying the effect of the loop-checking on the complexity is hard: overhead of the checking MAY or MAY NOT be compensated by the reduction of the size of the tree. Also: our analysis DOES NOT take the length (space) of representing paths into account !!

Completeness (depth-first) Complete for FINITE (implicit) NETS. (= NETS with finitely many nodes) IMPORTANT: This is due to integration of LOOP-checking in this version of Depth-First (and in all other algorithms that will follow) ! IF we do not remove paths with loops, then Depth-First is not complete (may get trapped in loops of a finite NET) Note: does NOT find the shortest path.

A D B E C F G S 3 4 5 2

Speed (depth-first) In the worst case: d b the (only) goal node may be on the right-most branch, d b Time complexity == bd + bd-1 + … + 1 = bd+1 -1 Thus: O(bd) b - 1 G

Memory (depth-first) Largest number of nodes in QUEUE is reached in bottom left-most node. Example: d = 3, b = 3 : ... QUEUE contains all nodes. Thus: 7. In General: ((b-1) * d) + 1 Order: O(d*b)

Expand the tree layer by layer, progressing in depth. Breadth-first search Expand the tree layer by layer, progressing in depth.

Breadth-first search: G Move downwards, level by level, until goal is reached.

Breadth-first algorithm: 1. QUEUE <-- path only containing the root; 2. WHILE QUEUE is not empty AND goal is not reached DO remove the first path from the QUEUE; create new paths (to all children); reject the new paths with loops; add the new paths to back of QUEUE; 3. IF goal reached THEN success; ELSE failure; ONLY DIFFERENCE !

Trace of breadth-first for running example: (S) S removed, (SA,SD) computed and added (SA, SD) SA removed, (SAB,SAD,SAS) computed, (SAB,SAD) added (SD,SAB,SAD) SD removed, (SDA,SDE,SDS) computed, (SDA,SDE) added (SAB,SAD,SDA,SDE) SAB removed, (SABA,SABE,SABC) computed, (SABE,SABC) added (SAD,SDA,SDE,SABE,SABC) SAD removed, (SADS,SADA, SADE) computed, (SADE) added etc, until QUEUE contains: (SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEBA,SDEBC, SDEFG) goal is reached: reports success

Completeness (breadth-first) even for infinite implicit NETS ! Would even remain complete without our loop-checking. Note: ALWAYS finds the shortest path.

Speed (breadth-first) If a goal node is found on depth m of the tree, all nodes up till that depth are created. G b m d Thus: O(bm) note: depth-first would also visit deeper nodes.

Memory (breadth-first) Largest number of nodes in QUEUE is reached on the level m of the goal node. G d b m G QUEUE contains all and nodes. (Thus: 4) . In General: bm This usually is MUCH worse than depth-first !!

Practical evaluation: Depth-first: IF the search space contains very deep branches without solution, THEN Depth-first may waste much time in them. Breadth-first: Is VERY demanding on memory ! Solutions ?? Non-deterministic search Iterative deepening

Non-deterministic search: 1. QUEUE <-- path only containing the root; 2. WHILE QUEUE is not empty AND goal is not reached DO remove the first path from the QUEUE; create new paths (to all children); reject the new paths with loops; add the new paths in random places in QUEUE; 3. IF goal reached THEN success; ELSE failure;

Iterative deepening search Restrict a depth-first search to a fixed depth. If no path was found, increase the depth and restart the search.

Depth-limited search: 1. DEPTH <-- <some natural number> QUEUE <-- path only containing the root; 2. WHILE QUEUE is not empty AND goal is not reached DO remove the first path from the QUEUE; IF path has length smaller than DEPTH create new paths (to all children); reject the new paths with loops; add the new paths to front of QUEUE; 3. IF goal reached THEN success; ELSE failure;

Iterative deepening algorithm: 1. DEPTH <-- 1 2. WHILE goal is not reached DO perform Depth-limited search; increase DEPTH by 1;

Iterative deepening: the best ‘blind’ search. Complete: yes - even finds the shortest path (like breadth first) . Memory: b*m (combines advantages of depth- and breadth-first) Speed: If the path is found for Depth = m, then how much time was waisted constructing the smaller trees?? b - 1 bm-1 + bm-2 + … + 1 = bm -1 = O(bm-1) In general: VERY good trade-off While the work spent at DEPTH = m itself is O(bm)

Bi-directional search Compute the tree both from the start-node and from a goal node, until these meet.

Bi-directional search IF you are able to EXPLICITLY describe the GOAL state, AND you have BOTH rules for FORWARD reasoning AND BACKWARD reasoning: Start Goal

Bi-directional algorithm: 1. QUEUE1 <-- path only containing the root; QUEUE2 <-- path only containing the goal; 2. WHILE both QUEUEi are not empty AND QUEUE1 and QUEUE2 do NOT share a state DO remove their first paths; create their new paths (to all children); reject their new paths with loops; add their new paths to back; 3. IF QUEUE1 and QUEUE2 share a state THEN success; ELSE failure;

Properties (Bi-directional): Complete: Yes. Speed: If the test on common state can be done in constant time (hashing): 2 * O(bm/2) = O(bm/2) Memory: similarly: O(bm/2)