Chapter2 Search

Embed Size (px)

Citation preview

  • 8/9/2019 Chapter2 Search

    1/47

    Problems, Problem Spaces

    and Search

    Dr. Suthikshn Kumar

  • 8/9/2019 Chapter2 Search

    2/47

    Contents

    Defining the problem as a State Space Search

    Production Systems

    Control Strategies

    Breadth First Search

    Depth First Search Heuristic Search

    Problem Characteristics

    Is the Problem Decomposable?

    Can Solution Steps be ignored or undone? Production system characteristics

    Issues in the design of search programs

  • 8/9/2019 Chapter2 Search

    3/47

    To build a system to solve a

    problem

    1. Define the problem precisely

    2. Analyse the problem

    3. Isolate and represent the task knowledgethat is necessary to solve the problem

    4. Choose the best problem-solving

    techniques and apply it to the particularproblem.

  • 8/9/2019 Chapter2 Search

    4/47

    Defining the problem as State

    Space Search The state space representation forms the basis of most

    of the AI methods.

    Its structure corresponds to the structure of problemsolving in two important ways:

    It allows for a formal definition of a problem as the need toconvert some given situation into some desired situation using aset of permissible operations.

    It permits us to define the process of solving a particular problemas a combination of known techniques (each represented as arule defining a single step in the space) and search, the generaltechnique of exploring the space to try to find some path fromcurrent state to a goal state.

    Search is a very important process in the solution of hardproblems for which no more direct techniques are available.

  • 8/9/2019 Chapter2 Search

    5/47

    Example: Playing Chess

    To build a program that could play chess, we

    could first have to specify the starting position of

    the chess board, the rules that define the legal

    moves, and the board positions that represent awin for one side or the other.

    In addition, we must make explicit the previously

    implicit goal of not only playing the legal game of

    chess but also winning the game, if possible,

  • 8/9/2019 Chapter2 Search

    6/47

    Playing chess

    The starting position can be described as an 8by 8 array where eachposition contains a symbol for appropriate piece.

    We can define as our goal the check mate position. The legal moves provide the way of getting from initial state to a goal state. They can be described easily as a set of rules consisting of two parts:

    A left side that serves as a pattern to be matched against the current board

    position. And a right side that describes the change to be made to reflect the move

    However, this approach leads to large number of rules 10120board positions !! Using so many rules poses problems such as:

    No person could ever supply a complete set of such rules. No program could easily handle all those rules. Just storing so many rules poses

    serious difficulties.

  • 8/9/2019 Chapter2 Search

    7/47

    Defining chess problem as State

    Space search We need to write the rules describing the legal

    moves in as general a way as possible.

    For example:

    White pawn at Square( file e, rank 2) ANDSquare( File e, rank 3) is empty AND Square(file e,rank 4) is empty, then move the pawn fromSquare( file e, rank 2) to Square( file e, rank 4).

    In general, the more succintly we can describethe rules we need, the less work we will have todo to provide them and more efficient theprogram.

  • 8/9/2019 Chapter2 Search

    8/47

    Water Jug Problem

    The state space for this problem can bedescribed as the set of ordered pairs ofintegers (x,y) such that x = 0, 1,2, 3 or 4 and y

    = 0,1,2 or 3; x represents the number ofgallons of water in the 4-gallon jug and yrepresents the quantity of water in 3-gallon

    jug

    The start state is (0,0) The goal state is (2,n)

  • 8/9/2019 Chapter2 Search

    9/47

    Production rules for Water Jug

    Problem The operators to be used to solve the problem can be described as follows:

    Sl No Current state Next State Descritpion

    1 (x,y) if x < 4 (4,y) Fill the 4 gallon jug

    2 (x,y) if y 0 (x-d, y) Pour some water out of the 4gallon jug

    4 (x,y) if y > 0 (x, y-d) Pour some water out of the 3-gallon jug

    5 (x,y) if x>0 (0, y) Empty the 4 gallon jug

    6 (x,y) if y >0 (x,0) Empty the 3 gallon jug on theground

    7 (x,y) if x+y >= 4 and y >0 (4, y-(4-x)) Pour water from the 3 gallonjug into the 4 gallon jug untilthe 4-gallon jug is full

  • 8/9/2019 Chapter2 Search

    10/47

    Production rules

    8 (x, y) if x+y >= 3 and x>0 (x-(3-y), 3) Pour water from the 4-gallon jug intothe 3-gallon jug until the 3-gallon jugis full

    9 (x, y) if x+y 0 (x+y, 0) Pour all the water from the 3-gallonjug into the 4-gallon jug

    10 (x, y) if x+y 0 (0, x+y) Pour all the water from the 4-gallonjug into the 3-gallon jug

    11 (0,2) (2,0) Pour the 2 gallons from 3-gallon juginto the 4-gallon jug

    12 (2,y) (0,y) Empty the 2 gallons in the 4-gallonjug on the ground

  • 8/9/2019 Chapter2 Search

    11/47

    To solve the water jug problem

    Required a control structure that loopsthrough a simple cycle in which somerule whose left side matches thecurrent state is chosen, the appropriatechange to the state is made asdescribed in the corresponding rightside, and the resulting state is checkedto see if it corresponds to goal state.

    One solution to the water jug problem

    Shortest such sequence will have aimpact on the choice of appropriatemechanism to guide the search for

    solution.

    Gallons in the 4-gallon jug

    Gallons in the 3-gallon jug

    Rule applied

    0 0 2

    0 3 9

    3 0 2

    3 3 7

    4 2 5 or 12

    0 2 9 0r 11

    2 0

  • 8/9/2019 Chapter2 Search

    12/47

    Formal Description of the problem

    1. Define a state space that contains all thepossible configurations of the relevant objects.

    2. Specify one or more states within that spacethat describe possible situations from which

    the problem solving process may start ( initialstate)

    3. Specify one or more states that would beacceptable as solutions to the problem. ( goal

    states)4. Specify a set of rules that describe the actions( operations) available.

  • 8/9/2019 Chapter2 Search

    13/47

    Production Systems

    A production system consists of: A set of rules, each consisting of a left side that determines the

    applicability of the rule and a right side that describes the operationto be performed if that rule is applied.

    One or more knowledge/databases that contain whatever

    information is appropriate for the particular task. Some parts of thedatabase may be permanent, while other parts of it may pertain onlyto the solution of the current problem.

    A control strategy that specifies the order in which the rules will becompared to the database and a way of resolving the conflicts thatarise when several rules match at once.

    A rule applier

  • 8/9/2019 Chapter2 Search

    14/47

    Production system

    Inorder to solve a problem: We must first reduce it to one for which a precise

    statement can be given. This can be done bydefining the problems state space ( start and

    goal states) and a set of operators for movingthat space.

    The problem can then be solved by searchingfor a path through the space from an initial state

    to a goal state. The process of solving the problem can usefullybe modelled as a production system.

  • 8/9/2019 Chapter2 Search

    15/47

    Control Strategies

    How to decide which rule to apply next

    during the process of searching for a

    solution to a problem?

    The two requirements of good control

    strategy are that

    it should cause motion.

    It should be systematic

  • 8/9/2019 Chapter2 Search

    16/47

    Breadth First Search

    Algorithm:

    1. Create a variable called NODE-LIST and set it to

    initial state

    2. Until a goal state is found or NODE-LIST is emptydo

    a. Remove the first element from NODE-LIST and call it E. If

    NODE-LIST was empty, quit

    b. For each way that each rule can match the state described

    in E do:i. Apply the rule to generate a new state

    ii. If the new state is a goal state, quit and return this state

    iii. Otherwise, add the new state to the end of NODE-LIST

  • 8/9/2019 Chapter2 Search

    17/47

    BFS Tree for Water Jug problem

    (0,0)

    (4,0) (0,3)

    (4,3) (0,0) (1,3) (4,3) (0,0)(3,0)

  • 8/9/2019 Chapter2 Search

    18/47

    Algorithm: Depth First Search

    1. If the initial state is a goal state, quit andreturn success

    2. Otherwise, do the following until success

    or failure is signaled:a. Generate a successor, E, of initial state. If

    there are no more successors, signal failure.

    b. Call Depth-First Search, with E as the initialstate

    c. If success is returned, signal success.Otherwise continue in this loop.

  • 8/9/2019 Chapter2 Search

    19/47

    Backtracking

    In this search, we pursue a singal branch of the tree untilit yields a solution or until a decision to terminate thepath is made.

    It makes sense to terminate a path if it reaches dead-

    end, produces a previous state. In such a statebacktracking occurs

    Chronological Backtracking: Order in which steps areundone depends only on the temporal sequence in whichsteps were initially made.

    Specifically most recent step is always the first to beundone.

    This is also simple backtracking.

  • 8/9/2019 Chapter2 Search

    20/47

    Advantages of Depth-First Search

    DFS requires less memory since only the

    nodes on the current path are stored.

    By chance, DFS may find a solution

    without examining much of the search

    space at all.

  • 8/9/2019 Chapter2 Search

    21/47

    Advantages of BFS

    BFS will not get trapped exploring a blind

    alley.

    If there is a solution, BFS is guarnateed to

    find it.

    If there are multiple solutions, then a

    minimal solution will be found.

  • 8/9/2019 Chapter2 Search

    22/47

    TSP

    A simple motion causing and systematic control structurecould solve this problem.

    Simply explore all possible paths in the tree and returnthe shortest path.

    If there are N cities, then number of different pathsamong them is 1.2.(N-1) or (N-1)!

    The time to examine single path is proportional to N

    So the total time required to perform this search is

    proportional to N! For 10 cities, 10! = 3,628,800

    This phenomenon is called Combinatorial explosion.

  • 8/9/2019 Chapter2 Search

    23/47

    Branch and Bound

    Begin generating complete paths, keeping trackof the shortest path found so far.

    Give up exploring any path as soon as its partial

    length becomes greater than the shortest pathfound so far.

    Using this algorithm, we are guaranteed to findthe shortest path.

    It still requires exponential time. The time it saves depends on the order in which

    paths are explored.

  • 8/9/2019 Chapter2 Search

    24/47

    Heuristic Search

    A Heuristic is a technique that improves the efficiency of a searchprocess, possibly by sacrificing claims of completeness.

    Heuristics are like tour guides They are good to the extent that they point in generally interesting

    directions;

    They are bad to the extent that they may miss points of interest toparticular individuals. On the average they improve the quality of the paths that are

    explored. Using Heuristics, we can hope to get good ( though possibly

    nonoptimal ) solutions to hard problems such asa TSP in non

    exponential time. There are good general purpose heuristics that are useful in a widevariety of problem domains.

    Special purpose heuristics exploit domain specific knowledge

  • 8/9/2019 Chapter2 Search

    25/47

    Nearest Neighbour Heuristic

    It works by selecting locally superior alternative at eachstep.

    Applying to TSP:1. Arbitrarily select a starting city

    2. To select the next city, look at all cities not yet visited andselect the one closest to the current city. Go to next step.

    3. Repeat step 2 until all cities have been visited.

    This procedure executes in time proportional to N2

    It is possible to prove an upper bound on the error itincurs. This provides reassurance that one is notpaying too high a price in accuracy for speed.

  • 8/9/2019 Chapter2 Search

    26/47

    Heuristic Function

    This is a function that maps from problem state descriptions tomeasures of desirsability, usually represented as numbers.

    Which aspects of the problem state are considered,

    how those aspects are evaluated, and

    the weights given to individual aspects are chosen in such a way that

    the value of the heuristic function at a given node in the searchprocess gives as good an estimate as possible of whether that nodeis on the desired path to a solution.

    Well designed heuristic functions can play an important part inefficiently guiding a search process toward a solution.

  • 8/9/2019 Chapter2 Search

    27/47

    Example Simple Heuristic functions

    Chess : The material advantage of our

    side over opponent.

    TSP: the sum of distances so far

    Tic-Tac-Toe: 1 for each row in which we

    could win and in we already have one

    piece plus 2 for each such row in we have

    two pieces

  • 8/9/2019 Chapter2 Search

    28/47

    Problem Characteristics

    Inorder to choose the most appropriate method for aparticular problem, it is necessary to analyze theproblem along several key dimensions: Is the problem decomposable into a set of independent smaller

    or easier subproblems? Can solution steps be ignored or at least undone if they prove

    unwise? Is the problems universe predictable? Is a good solution to the problem obvious without comparison to

    all other possible solutions? Is the desired solution a state of the world or a path to a state?

    Is a large amount of knowledge absolutely required to solve theproblem or is knowledge important only to constrain the search? Can a computer that is simply given the problem return the

    solution or will the solution of the problem require interactionbetween the computer and a person?

  • 8/9/2019 Chapter2 Search

    29/47

    Is the problem Decomposable?

    Whether the problem can be decomposed

    into smaller problems?

    Using the technique of problem

    decomposition, we can often solve very

    large problems easily.

  • 8/9/2019 Chapter2 Search

    30/47

    Blocks World Problem

    Following operators

    are available:

    CLEAR(x) [ block x

    has nothing on it]->ON(x, Table)

    CLEAR(x) and

    CLEAR(y) ->

    ON(x,y) [ put x on y]

    C

    A B

    A

    B

    C

    Start: ON(C,A)

    Goal:

    ON(B,C) andON(A,B)

    ON(B,C)

    ON(B,C) and ON(A,B)

    ON(B,C)

    ON(A,B)

    CLEAR(A) ON(A,B)

    CLEAR(A) ON(A,B)

  • 8/9/2019 Chapter2 Search

    31/47

    Can Solution Steps be ignored or

    undone? Suppose we are trying to prove a math theorem.We can prove a

    lemma. If we find the lemma is not of any help, we can still continue. 8-puzzle problem Chess: A move cannot be taken back. Important classes of problems:

    Ignorable ( theorem proving) Recoverable ( 8-puzzle) Irrecoverable ( Chess)

    The recoverability of a problem plays an important role indetermining the complexity of the control structure necessary for theproblems solution.

    Ignorable problems can be solved using a simple control structure thatnever backtracks Recoverable problems can be solved by a slightly more complicated

    control strategy that does sometimes make mistakes Irrecoverable problems will need to be solved by systems that expends a

    great deal of effort making each decision since decision must be final.

  • 8/9/2019 Chapter2 Search

    32/47

    Is the universe Predictable?

    Certain Outcome ( ex: 8-puzzle)

    Uncertain Outcome ( ex: Bridge, controlling arobot arm)

    For solving certain outcome problems, open loopapproach ( without feedback) will work fine.

    For uncertain-outcome problems, planning canat best generate a sequence of operators that

    has a good probability of leading to a solution.We need to allow for a process of plan revisionto take place.

  • 8/9/2019 Chapter2 Search

    33/47

    Is a good solution absolute or

    relative?

    Any path problem

    Best path problem

    Any path problems can often be solved in areasonable amount of time by using heuristicsthat suggest good paths to explore.

    Best path problems are computationally harder.

  • 8/9/2019 Chapter2 Search

    34/47

    Is the solution a state or a path?

    Examples:

    Finding a consistent interpretation for the sentence

    The bank president ate a dish of pasta salad with the

    fork. We need to find the interpretation but not the

    record of the processing.

    Water jug : Here it is not sufficient to report that we

    have solved , but the path that we found to the state

    (2,0). Thus the a statement of a solution to this

    problem must be a sequence of operations ( Plan)that produces the final state.

  • 8/9/2019 Chapter2 Search

    35/47

    What is the role of knowledge?

    Two examples: Chess: Knowledge is required to constrain the search for a solution Newspaper story understanding: Lot of knowledge is required even to

    be able to recognize a solution.

    Consider a problem of scanning daily newspapers to decide whichare supporting the democrats and which are supporting the

    republicans in some election. We need lots of knowledge to answersuch questions as: The names of the candidates in each party The facts that if the major thing you want to see done is have taxes

    lowered, you are probably supporting the republicans The fact that if the major thing you want to see done is improved

    education for minority students, you are probably supporting thedemocrats. etc

  • 8/9/2019 Chapter2 Search

    36/47

    Does the task require Interaction

    with a person?

    The programs require intermediate interactionwith people for additional inputs and toprovided reassurance to the user.

    There are two types of programs: Solitary

    Conversational:

    Decision on using one of these approaches

    will be important in the choice of problemsolving method.

  • 8/9/2019 Chapter2 Search

    37/47

    Problem Classification

    There are several broad classes into

    which the problems fall. These classes

    can each be associated with generic

    control strategy that is appropriate forsolving the problems:

    Classification : ex: medical diagnostics,

    diagnosis of faults in mechanical devices Propose and Refine: ex: design and planning

  • 8/9/2019 Chapter2 Search

    38/47

    Production System Characteristics

    1. Can production systems, like problems, be described by a set ofcharacteristics that shed some light on how they can easily beimplemented?

    2. If so, what relationships are there between problem types and thetypes of production systems best suited to solving the problems?

    Classes of Production systems: Monotonic Production System: the application of a rule never

    prevents the later application of another rule that could also havebeen applied at the time the first rule was selected.

    Non-Monotonic Production system Partially commutative Production system: property that if application

    of a particular sequence of rules transforms state x to state y, then

    permutation of those rules allowable, also transforms state x intostate y. Commutative Production system

  • 8/9/2019 Chapter2 Search

    39/47

    Monotonic Production Systems

    Production system in which the application

    of a rule never prevents the later

    application of another rule that could also

    have been applied at the time the first rulewas applied.

    i.e., rules are independent.

  • 8/9/2019 Chapter2 Search

    40/47

    Commutative Production system

    A partially Commutative production systemhas a property that if the application of aparticular sequence of rules transform state

    x into state y, then any permutation ofthose rules that is allowable, alsotransforms state x into state y.

    A Commutative production system is a

    production system that is both monotonicand partially commutative.

  • 8/9/2019 Chapter2 Search

    41/47

    Partially Commutative, Monotonic

    These production systems are useful for solvingignorable problems.

    Example: Theorem Proving They can be implemented without the ability to backtrack

    to previous states when it is discovered that an incorrectpath has been followed.

    This often results in a considerable increase in efficiency,particularly because since the database will never haveto be restored, It is not necessary to keep track of wherein the search process every change was made.

    They are good for problems where things do not change;new things get created.

  • 8/9/2019 Chapter2 Search

    42/47

    Non Monotonic, Partially

    Commutative

    Useful for problems in which changes occur but

    can be reversed and in which order of

    operations is not critical.

    Example: Robot Navigation, 8-puzzle, blocksworld

    Suppose the robot has the following ops: go

    North (N), go East (E), go South (S), go West

    (W). To reach its goal, it does not matter

    whether the robot executes the N-N-E or N-E-N.

  • 8/9/2019 Chapter2 Search

    43/47

  • 8/9/2019 Chapter2 Search

    44/47

    Non

  • 8/9/2019 Chapter2 Search

    45/47

    Four Categories of Production

    SystemMonotonic NonMonotonic

    PartiallyCommutative

    Theorem provingRobot Navigation

    Not PartiallyCommutative

    ChemicalSynthesis

    Bridge

    f

  • 8/9/2019 Chapter2 Search

    46/47

    Issues in the design of search

    programs

    The direction in which to conduct the

    search ( forward versus backward

    reasoning).

    How to select applicable rules ( Matching)

    How to represent each node of the search

    process ( knowledge representation

    problem)

  • 8/9/2019 Chapter2 Search

    47/47

    Summary

    Four steps for designing a program to solve a

    problem:

    1. Define the problem precisely

    2. Analyse the problem3. Identify and represent the knowledge required by

    the task

    4. Choose one or more techniques for problem

    solving and apply those techniques to theproblem.