1 search CS 331/531 Dr M M Awais REPRESENTATION METHODS Represent the information: Animals are...

Post on 18-Jan-2016

212 views 0 download

Transcript of 1 search CS 331/531 Dr M M Awais REPRESENTATION METHODS Represent the information: Animals are...

CS 331/531 Dr M M Awais 1

search

REPRESENTATION METHODS

Represent the information:

Animals are generally divided into birds and mammals. Birds are further classified into large birds and small birds. Small birds include sparrows, and crows. The large birds are ostriches. The mammals include whales, monkeys, and elephants. Charlie is a elephant.

CS 331/531 Dr M M Awais 2

search

Predicate

• types(Animals, Birds,Mammals)

• types(Birds, Largebirds, Smallbirds)

• Etc…

• Unify to answer the queries

• IS THERE ANY OTHER WAY?

CS 331/531 Dr M M Awais 3

search

Semantic Nets (Graphical Methods)

Instance

IS-A

IS-A IS-A

Animal

Bird Mammal

Elephant whales

charlie

small

Large

IS-A

IS-A IS-A

sparrow

crow

instance

instance

Super Class: Animal

CS 331/531 Dr M M Awais 4

search

Semantic Nets (Graphical Methods)

Instance

IS-A

IS-A IS-A

Animal

Bird Mammal

Elephant whales

charlie

small

Large

IS-A

IS-A IS-A

sparrow

crow

instance

instance

IS_A: Relation

Animal: SuperBird: Class

Mammal: Class

CS 331/531 Dr M M Awais 5

search

Semantic Nets (Graphical Methods)

Instance

IS-A

IS-A IS-A

Animal

Bird Mammal

Elephant whales

charlie

small

Large

IS-A

IS-A IS-A

sparrow

crow

instance

instance

Instance: defines a specific instance of a class

CS 331/531 Dr M M Awais 6

search

Semantic Nets (Graphical Methods)

Instance

IS-A

IS-A IS-A

Animal

Bird Mammal

Elephant whales

charlie

small

Large

IS-A

IS-A IS-A

sparrow

crow

instance

instance

CS 331/531 Dr M M Awais 7

search

Semantic Nets (Graphical Methods)

Instance

IS-A

IS-A IS-A

Animal

Bird Mammal

Elephant whales

charlie

small

Large

IS-A

IS-A IS-A

sparrow

crow

instance

instance

bananas

likes

Can have attribute link: likes for instance, class, superclass

CS 331/531 Dr M M Awais 8

search

SEARCH METHODS

• Formulate a problem as a search

• Can answer queries such as:

Is CHARLIE an animal?

CS 331/531 Dr M M Awais 9

search

Search RepresentationAnimal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Level 0: Root node

CS 331/531 Dr M M Awais 10

search

Search RepresentationAnimal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Level 0: Root node

Level 1

CS 331/531 Dr M M Awais 11

search

Search RepresentationAnimal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Level 0: Root node

Level 1

Level 2

CS 331/531 Dr M M Awais 12

search

Search RepresentationAnimal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Level 0: Root node

Level 1

Level 2

Level 3

CS 331/531 Dr M M Awais 13

search

Answering QueriesAnimal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Level 0: Root node

Level 1

Level 2

Level 3

Is charlie an animal?Answer:Traverse the treeIf charlie node present then answer is YES otherwise NO

CS 331/531 Dr M M Awais 14

search

Answering QueriesAnimal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Level 0: Root node

Level 1

Level 2

Level 3

Is charlie an animal?Answer:Traverse the treeIf charlie node present then answer is YES otherwise NO

The way one traverses the tree defines SEARCH TYPES

CS 331/531 Dr M M Awais 15

search

SEARCH METHODS

• Blind Search

•Breadth First

•Depth First

•Iterative Deepening

• Heuristic search

•Hill Climbing

•Best First

•A* Search

CS 331/531 Dr M M Awais 16

search

Standard Terms

Animal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Root node

CS 331/531 Dr M M Awais 17

search

Standard Terms

Animal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Child of Animal node

CS 331/531 Dr M M Awais 18

search

Standard Terms

Animal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Bird and Mammal are Siblings

CS 331/531 Dr M M Awais 19

search

Standard Terms

Animal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Root node

Path to a node is the list of nodes from the root to the goal node.

GOAL node

CS 331/531 Dr M M Awais 20

search

Standard Terms

Animal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

Root node

Path to a node is the list of nodes to the goal node (bold lines).

GOAL node

CS 331/531 Dr M M Awais 21

search

How to Traverse the Tree to find PATH?

Animal

Bird Mammal

Elephant whales

charlie

smallLarge

sparrow

crow

CS 331/531 Dr M M Awais 22

search

ANALYSIS OF SEARCH STRATEGIES

Completeness: is the strategy guaranteed to find a solution where there is one?

Time Complexity: How long does it take to find a solution?

Space Complexity: How much memory does it need to perform the search?

Optimality: Does the strategy find the highest quality solution when there are several different solutions?

CS 331/531 Dr M M Awais 23

search

Exhaustive Search

One can systematically check every state that is reachable from initial state to end state if it is a goal state.

Search Space

The set of all states is the search space

• For simple/small search space exhaustive search is applicable [BRUTE FORCE or BLIND SEARCH]

• For complex search space HEURISTIC SEARCH is used

CS 331/531 Dr M M Awais 24

search

GRAPHS AND TREES

Graphs:-

• Consist of a set of nodes with links between them

• links can be directed / undirected

• Path is the sequence of nodes connected nodes via links.

Acyclic graphs = (Paths linking a node

with itself are absent)

Trees???

CS 331/531 Dr M M Awais 25

search

Tree:-

A tree is a special kind of graph with only one path to each node, usually represented with a special root node at

the top

Relationship between nodes

• Parent

• Children

• Sibling

Ancestor Node, Descendant Node, Leaf Node

CS 331/531 Dr M M Awais 26

search

Graphs VS Trees Compare the searches in the two (which

is efficient)

a

b

c

d a

b c

de f g

CS 331/531 Dr M M Awais 27

searchRelating State and Graph Nodes

Every physical state of a problem can be represented as a node in a graph/tree

The link between the nodes represent action required to change the states

For a navigation problem: Link: driving action Node:cities

For the Wumpus world problem: Link: movement of the agent Node:present position of the agent

CS 331/531 Dr M M Awais 28

search

8 Puzzle Problem: states vs. nodes

A state is a (representation of) a physical configuration

A node is a data structure constituting part of a search tree includes state, parent node, action, path cost g(x), depth

CS 331/531 Dr M M Awais 29

search

8 Puzzle Problem: states vs. nodes

A state is a (representation of) a physical configuration

A node is a data structure constituting part of a search tree includes state, parent node, action, path cost g(x), depth

CS 331/531 Dr M M Awais 30

search

Tree search algorithms Basic idea:

offline, simulated exploration of state space by generating successors of already-explored states (a.k.a.~expanding states)

CS 331/531 Dr M M Awais 31

search

Example: Romania

CS 331/531 Dr M M Awais 32

search

Example: Romania

On holiday in Romania; currently in Arad. Flight leaves tomorrow from Bucharest Formulate goal:

be in Bucharest Formulate problem:

states: various cities actions: drive between cities

Find solution: sequence of cities, e.g., Arad, Sibiu, Fagaras,

Bucharest

CS 331/531 Dr M M Awais 33

search

Tree search example

CS 331/531 Dr M M Awais 34

search

Tree search example

CS 331/531 Dr M M Awais 35

search

Tree search example

Keep on expanding unless you reach the goal

CS 331/531 Dr M M Awais 36

search

Search strategies A search strategy is defined by picking the order of

node expansion Strategies are evaluated along the following

dimensions: completeness: does it always find a solution if one

exists? time complexity: number of nodes generated space complexity: maximum number of nodes in

memory optimality: does it always find a least-cost solution?

Time and space complexity are measured in terms of b: maximum branching factor of the search tree d: depth of the least-cost solution m: maximum depth of the state space (may be ∞)

CS 331/531 Dr M M Awais 37

search

Blind Search: Strategies

Breadth First (Breadth wise expansion)

Depth First (Depth wise expansion) Iterative Deepening (Depth Limit)

CS 331/531 Dr M M Awais 38

search

Breadth-first search Expand shallowest unexpanded

node Implementation:

FIFO queue, i.e., new successors go at end

CS 331/531 Dr M M Awais 39

search

Breadth-first search

CS 331/531 Dr M M Awais 40

search

Breadth-first search

CS 331/531 Dr M M Awais 41

search

Breadth-first search

CS 331/531 Dr M M Awais 42

search 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)

CS 331/531 Dr M M Awais 43

search

1. Start with queue = [initial - state] and found = FALSE

2. While queue not empty and not found do:

(a) Remove the first node n from queue

(b) if N is a goal state then found = TRUE

(c ) Find all the successor nodes of X, and put them on the end of the queue

Breath First: Algorithm

CS 331/531 Dr M M Awais 44

search

1. Open = [A]; closed = []

• Evaluate A not goal

Goal: D

CS 331/531 Dr M M Awais 45

search

1. Open = [A]; closed = []

• Evaluate A not goal

2. Open = [B,C];closed =[A]

• Evaluate B not goal

Goal: D

CS 331/531 Dr M M Awais 46

search

1. Open = [A]; closed = []

• Evaluate A not goal

2. Open = [B,C];closed =[A]

• Evaluate B not goal

3. Open = [C,D,E];closed = [B,A]

• Evaluate C not goal

Goal: D

CS 331/531 Dr M M Awais 47

search

1. Open = [A]; closed = []

• Evaluate A not goal

2. Open = [B,C];closed =[A]

• Evaluate B not goal

3. Open = [C,D,E];closed = [B,A]

• Evaluate C not goal

4. Open = [D,E,G,F];closed = [C,B,A]

1. Evaluate D is goal: STOP

Goal: D

Path: A B D

Path Cost: The cost in reaching D from A

Path cost = 2A to B=1, B to D=1(assuming a unit cost between nodes)

CS 331/531 Dr M M Awais 48

search

Uniform-cost search

Expand least-cost unexpanded node Implementation:

queue ordered by path cost Equivalent to breadth-first if step costs all

equal

CS 331/531 Dr M M Awais 49

search

Depth-first search Expand deepest unexpanded node Implementation:

LIFO queue, i.e., put successors at front

CS 331/531 Dr M M Awais 50

search

Depth-first search

CS 331/531 Dr M M Awais 51

search

Depth-first search

CS 331/531 Dr M M Awais 52

search

Depth-first search

CS 331/531 Dr M M Awais 53

search

Depth-first search

CS 331/531 Dr M M Awais 54

search

Depth-first search

CS 331/531 Dr M M Awais 55

search

Depth-first search

CS 331/531 Dr M M Awais 56

search

Depth-first search

CS 331/531 Dr M M Awais 57

search

Depth-first search

CS 331/531 Dr M M Awais 58

search

Depth-first search

CS 331/531 Dr M M Awais 59

search

Depth-first search

CS 331/531 Dr M M Awais 60

search

Depth-first search

CS 331/531 Dr M M Awais 61

search Properties of depth-first search

Complete? No: fails in infinite-depth spaces, spaces with loops Modify to avoid repeated states along path

complete in finite spaces

Time? O(bm): terrible if m is much larger than d but if solutions are dense, may be much faster

than breadth-first Space? O(bm), i.e., linear space! Optimal? No

CS 331/531 Dr M M Awais 62

search

1. Start with agenda = [initial - state] and found = FALSE

2. While agenda not empty and not found do:

(a) Remove the first node N from agenda

(b) if N is not in visited then

(I) Add N to visited

(II) if N is a goal state then found = TRUE

(III) Put N’s successors on the front of the stack

Depth First

CS 331/531 Dr M M Awais 63

search

Open=[A],closed=[] Evaluate A not a goal

Goal: C

CS 331/531 Dr M M Awais 64

search

Open=[A],closed=[] Evaluate A not a goal

Open=[B,C];closed=[A] Evaluate B not a

goal

Goal: C

CS 331/531 Dr M M Awais 65

search

Open=[A],closed=[] Evaluate A not a goal

Open=[B,C];closed=[A] Evaluate B not a goal

Open=[D,E,C];closed=[B,A] Evaluate D not a goal

Goal: C

CS 331/531 Dr M M Awais 66

search

Open=[A],closed=[] Evaluate A not a goal

Open=[B,C];closed=[A] Evaluate B not a goal

Open=[D,E,C];closed=[B,A] Evaluate D not a goal

Open=[H,I,E,C];closed=[D,B,A] Evaluate H not a goal

Goal: C

CS 331/531 Dr M M Awais 67

search

Open=[A],closed=[] Evaluate A not a goal

Open=[B,C];closed=[A] Evaluate B not a goal

Open=[D,E,C];closed=[B,A] Evaluate D not a goal

Open=[H,I,E,C];closed=[D,B,A] Evaluate H not a goal

Open=[I,E,C];closed=[H,D,B,A] Evaluate I not a goal

Goal: C

CS 331/531 Dr M M Awais 68

search

Open=[A],closed=[] Evaluate A not a goal

Open=[B,C];closed=[A] Evaluate B not a goal

Open=[D,E,C];closed=[B,A] Evaluate D not a goal

Open=[H,I,E,C];closed=[D,B,A] Evaluate H not a goal

Open=[I,E,C];closed=[H,D,B,A] Evaluate I not a goal

Open=[E,C];closed=[I,H,D,B,A] Evaluate E not a goal

Goal: C

CS 331/531 Dr M M Awais 69

search

Open=[A],closed=[] Evaluate A not a goal

Open=[B,C];closed=[A] Evaluate B not a goal

Open=[D,E,C];closed=[B,A] Evaluate D not a goal

Open=[H,I,E,C];closed=[D,B,A] Evaluate H not a goal

Open=[I,E,C];closed=[H,D,B,A] Evaluate I not a goal

Open=[E,C];closed=[I,H,D,B,A] Evaluate E not a goal

Open=[J,K,C];closed=[E,I,H,D,B,A]

Evaluate J not a goal

Goal: C

CS 331/531 Dr M M Awais 70

search

Open=[A],closed=[] Evaluate A not a goal

Open=[B,C];closed=[A] Evaluate B not a goal

Open=[D,E,C];closed=[B,A] Evaluate D not a goal

Open=[H,I,E,C];closed=[D,B,A] Evaluate H not a goal

Open=[I,E,C];closed=[H,D,B,A] Evaluate I not a goal

Open=[E,C];closed=[I,H,D,B,A] Evaluate E not a goal

Open=[J,K,C];closed=[E,I,H,D,B,A] Evaluate J not a goal

Open=[K,C];closed=[K, E,I,H,D,B,A]

Evaluate K not a goal

Goal: C

CS 331/531 Dr M M Awais 71

search

Open=[A],closed=[] Evaluate A not a goal

Open=[B,C];closed=[A] Evaluate B not a goal

Open=[D,E,C];closed=[B,A] Evaluate D not a goal

Open=[H,I,E,C];closed=[D,B,A] Evaluate H not a goal

Open=[I,E,C];closed=[H,D,B,A] Evaluate I not a goal

Open=[E,C];closed=[I,H,D,B,A] Evaluate E not a goal

Open=[J,K,C];closed=[E,I,H,D,B,A] Evaluate J not a goal

Open=[K,C];closed=[J,E,I,H,D,B,A]

Evaluate K not a goal

Open=[C];closed=[K,E,I,H,D,B,A]

Evaluate C is goal: STOP

Goal: C

CS 331/531 Dr M M Awais 72

search

Depth-limited search depth-first search with depth limit L nodes at depth L have no successors Do not apply depth first after a certain depth

Iterative Deepening tries almost all depth limits

Searches the tree with L=0, L=1, L=2, etc…

CS 331/531 Dr M M Awais 73

search

Iterative deepening search L=0

For depth 0, evaluate the root node and stop

CS 331/531 Dr M M Awais 74

search

Iterative deepening search L=1

CS 331/531 Dr M M Awais 75

search

Iterative deepening search L=1

CS 331/531 Dr M M Awais 76

search

Iterative deepening search L=1

CS 331/531 Dr M M Awais 77

search

Iterative deepening search L=2

CS 331/531 Dr M M Awais 78

search

Iterative deepening search L=2

CS 331/531 Dr M M Awais 79

search

Iterative deepening search L=3

CS 331/531 Dr M M Awais 80

search

Iterative deepening search Number of nodes generated in a depth-limited

search to depth d with branching factor b:

NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd

Number of nodes generated in an iterative deepening search to depth d with branching factor b:

NIDS = (d+1)b0 + d b1 + (d-1)b2 + … + 3bd-2 +2bd-1 + 1bd

For b = 10, d = 5, NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111 NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456

Overhead = (123,456 - 111,111)/111,111 = 11%

CS 331/531 Dr M M Awais 81

search Properties of iterative deepening search

Complete? Yes

Time? (d+1)b0 + d b1 + (d-1)b2 + … + bd = O(bd)

Space? O(bd)

Optimal? Yes, if step cost = 1

CS 331/531 Dr M M Awais 82

search

Summary of algorithms