Presentation is loading. Please wait.

Presentation is loading. Please wait.

G5BAIM Artificial Intelligence Methods Graham Kendall Searching.

Similar presentations


Presentation on theme: "G5BAIM Artificial Intelligence Methods Graham Kendall Searching."— Presentation transcript:

1

2 G5BAIM Artificial Intelligence Methods Graham Kendall Searching

3 G5BAIM Searching Problem Definition - 1 Initial State –The initial state of the problem, defined in some suitable manner Operator –A set of actions that moves the problem from one state to another

4 G5BAIM Searching Problem Definition - 1 Neighbourhood (Successor Function) –The set of all possible states reachable from a given state State Space –The set of all states reachable from the initial state

5 G5BAIM Searching Problem Definition - 2 Goal Test –A test applied to a state which returns if we have reached a state that solves the problem Path Cost –How much it costs to take a particular path

6 G5BAIM Searching Problem Definition - Example 54 618 732 123 84 765 123 456 78 147 258 36 Initial StateGoal State

7 G5BAIM Searching Problem Definition - Example States –A description of each of the eight tiles in each location that it can occupy. It is also useful to include the blank Operators –The blank moves left, right, up or down

8 G5BAIM Searching Problem Definition - Example Goal Test –The current state matches a certain state (e.g. one of the ones shown on previous slide) Path Cost –Each move of the blank costs 1

9 G5BAIM Searching Problem Definition - Datatype Datatype PROBLEM –Components INITIAL-STATE, OPERATORS, GOAL-TEST, PATH-COST-FUNCTION

10 G5BAIM Searching How Good is a Solution? Does our search method actually find a solution? Is it a good solution? –Path Cost –Search Cost (Time and Memory) Does it find the optimal solution? –But what is optimal?

11 G5BAIM Searching Evaluating a Search Completeness –Is the strategy guaranteed to find a solution? Time Complexity –How long does it take to find a solution?

12 G5BAIM Searching Evaluating a Search Space Complexity –How much memory does it take to perform the search? Optimality –Does the strategy find the optimal solution where there are several solutions?

13 G5BAIM Searching Search Trees x xxx x x x x x o x o x x o x ………..

14 G5BAIM Searching Search Trees ISSUES –Search trees grow very quickly –The size of the search tree is governed by the branching factor –Even this simple game has a complete search tree of 984,410 potential nodes –The search tree for chess has a branching factor of about 35

15 G5BAIM Searching Implementing a Search - What we need to store State –This represents the state in the state space to which this node corresponds Parent-Node –This points to the node that generated this node. In a data structure representing a tree it is usual to call this the parent node

16 G5BAIM Searching Implementing a Search - What we need to store Operator –The operator that was applied to generate this node Depth –The number of nodes from the root (i.e. the depth) Path-Cost –The path cost from the initial state to this node

17 G5BAIM Searching Implementing a Search - Datatype Datatype node –Components: STATE, PARENT-NODE, OPERATOR, DEPTH, PATH-COST

18 G5BAIM Searching Using a Tree – The Obvious Solution? Advantages –It’s intuitive –Parent’s are automatically catered for

19 G5BAIM Searching Using a Tree – The Obvious Solution? But –It can be wasteful on space –It can be difficult the implement, particularly if there are varying number of children (as in tic-tac-toe) –It is not always obvious which node to expand next. We may have to search the tree looking for the best leaf node (sometimes called the fringe or frontier nodes). This can obviously be computationally expensive

20 G5BAIM Searching Using a Tree – Maybe not so obvious Therefore –It would be nice to have a “simpler” data structure to represent our tree –And it would be nice if the next node to be expanded was an O(1) operation

21 G5BAIM Searching Basic Queue Operations Make-Queue(Elements) –Create a queue with the given elements Empty?(Queue) –Returns true if the queue is empty Remove-Front(Queue) –Removes the element at the head of the queue and returns it

22 G5BAIM Searching Queue Operations - Adding Elements Queuing- FN(Elements,Queue) –Inserts a set of elements into the queue. Different queuing functions produce different search algorithms.

23 G5BAIM Searching General Search Function GENERAL-SEARCH(problem, QUEUING-FN) returns a solution or failure –nodes = MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) –Loop do If nodes is empty then return failure node = REMOVE-FRONT(nodes) If GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes = QUEUING-FN(nodes,EXPAND(node,OPERATORS[problem])) –End End Function

24 G5BAIM Searching General Search Function GENERAL-SEARCH(problem, QUEUING-FN) returns a solution or failure –nodes = MAKE-QUEUE(MAKE- NODE(INITIAL-STATE[problem])) –Loop do If nodes is empty then return failure node = REMOVE-FRONT(nodes) If GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes = QUEUING-FN(nodes,EXPAND(node,OPERATORS[problem])) –End End Function

25 G5BAIM Searching General Search Function GENERAL-SEARCH(problem, QUEUING-FN) returns a solution or failure –nodes = MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) –Loop do If nodes is empty then return failure node = REMOVE-FRONT(nodes) If GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes = QUEUING-FN(nodes,EXPAND(node,OPERATORS[problem])) –End End Function

26 G5BAIM Searching General Search Function GENERAL-SEARCH(problem, QUEUING-FN) returns a solution or failure –nodes = MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) –Loop do If nodes is empty then return failure node = REMOVE-FRONT(nodes) If GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes = QUEUING-FN(nodes,EXPAND(node,OPERATORS[problem])) –End End Function

27 G5BAIM Searching General Search Function GENERAL-SEARCH(problem, QUEUING-FN) returns a solution or failure –nodes = MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) –Loop do If nodes is empty then return failure node = REMOVE-FRONT(nodes) If GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes = QUEUING-FN(nodes,EXPAND(node,OPERATORS[problem])) –End End Function

28 G5BAIM Searching General Search Function GENERAL-SEARCH(problem, QUEUING-FN) returns a solution or failure –nodes = MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) –Loop do If nodes is empty then return failure node = REMOVE-FRONT(nodes) If GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes = QUEUING-FN(nodes,EXPAND(node,OPERATORS[problem])) –End End Function

29 G5BAIM Searching General Search Function GENERAL-SEARCH(problem, QUEUING-FN) returns a solution or failure –nodes = MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) –Loop do If nodes is empty then return failure node = REMOVE-FRONT(nodes) If GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes = QUEUING- FN(nodes,EXPAND(node,OPERATOR S[problem])) –End End Function

30 G5BAIM Artificial Intelligence Methods Graham Kendall End of Searching


Download ppt "G5BAIM Artificial Intelligence Methods Graham Kendall Searching."

Similar presentations


Ads by Google