Lecture 02 – Part B Problem Solving by Searching Search Methods : Informed (Heuristic) search.

Post on 26-Mar-2015

231 views 1 download

Tags:

Transcript of Lecture 02 – Part B Problem Solving by Searching Search Methods : Informed (Heuristic) search.

Lecture 02 – Part BProblem Solving by Searching

Search Methods : Informed (Heuristic)

search

Using problem specific knowledge to aid searching

Without incorporating knowledge into searching, one can have no bias (i.e. a preference) on the search space.

Without a bias, one is forced to look everywhere to find the answer. Hence, the complexity of uninformed search is intractable.

2

Search everywhere!!

Using problem specific knowledge to aid searching

3

With knowledge, one can search the state space as if he was given “hints” when exploring a maze.Heuristic information in search = Hints

Leads to dramatic speed up in efficiency.

A

B C ED

F G H I J

K L

O

M N

Search only in this subtree!!

More formally, why heuristic functions work?

4

In any search problem where there are at most b choices at each node and a depth of d at the goal node, a naive search algorithm would have to, in the worst case, search around O(bd) nodes before finding a solution (Exponential Time Complexity).

Heuristics improve the efficiency of search algorithms by reducing the effective branching factor from b to (ideally) a low constant b* such that1 =< b* << b

Heuristic Functions

5

A heuristic function is a function f(n) that gives an estimation on the “cost” of getting from node n to the goal state – so that the node with the least cost among all possible choices can be selected for expansion first.

Three approaches to defining f:

f measures the value of the current state (its “goodness”)

f measures the estimated cost of getting to the goal from the current state: f(n) = h(n) where h(n) = an estimate of the cost to get from n to a

goal

f measures the estimated cost of getting to the goal state from the current state and the cost of the existing path to it. Often, in this case, we decompose f: f(n) = g(n) + h(n) where g(n) = the cost to get to n (from initial state)

Approach 1: f Measures the Value of the Current StateUsually the case when solving optimization

problems Finding a state such that the value of the metric f is

optimized

Often, in these cases, f could be a weighted sum of a set of component values:

N-Queens Example: the number of queens under attack …

Data mining Example: the “predictive-ness” (a.k.a. accuracy) of a rule

discovered

6

Approach 2: f Measures the Cost to the Goal

A state X would be better than a state Y if the estimated cost of getting from X to the goal is lower than that of Y – because X would be closer to the goal than Y

7

• 8–Puzzle

h1: The number of misplaced tiles (squares with number).

h2: The sum of the distances of the tiles from their goal positions.

Approach 3: f measures the total cost of the solution path (Admissible Heuristic Functions)

A heuristic function f(n) = g(n) + h(n) is admissible if h(n) never overestimates the cost to reach the goal.Admissible heuristics are “optimistic”: “the cost is not that much …”

However, g(n) is the exact cost to reach node n from the initial state.Therefore, f(n) never over-estimate the true cost to reach the goal

state through node n.Theorem: A search is optimal if h(n) is admissible.

I.e. The search using h(n) returns an optimal solution.

Given h2(n) > h1(n) for all n, it’s always more efficient to use h2(n).h2 is more realistic than h1 (more informed), though both are optimistic.

8

Traditional informed search strategies

Greedy Best First Search“Always chooses the successor node with the

best f value” where f(n) = h(n)We choose the one that is nearest to the final

state among all possible choices

A* SearchBest first search using an “admissible” heuristic

function f that takes into account the current cost g

Always returns the optimal solution path

9

Greedy Best-FirstSearcheval-fn: f(n) = h(n)

Informed (Huristic) Search Strategies

An implementation of Best First Search

11

function BEST-FIRST-SEARCH (problem, eval-fn)

returns a solution sequence, or failure

queuing-fn = a function that sorts nodes by eval-fn

return GENERIC-SEARCH (problem,queuing-fn)

Greedy Best First Search

12

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

13

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

14

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

15

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

16

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

17

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

18

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

19

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

20

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search

21

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

f(n) = h (n) = straight-line distance heuristic

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

140

Greedy Best First Search

22

AStart

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

23

A

BC

E

Start75118

140 [374][329]

[253]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

24

A

BC

E

F

99

GA

80

Start75118

140 [374][329]

[253]

[193]

[366][178]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

25

A

BC

E

F

I

99

211

GA

80

Start

Goal

75118

140 [374][329]

[253]

[193]

[366][178]

E[0][253]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

26

A

BC

E

F

I

99

211

GA

80

Start

Goal

75118

140 [374][329]

[253]

[193]

[366][178]

E[0][253]

dist(A-E-F-I) = 140 + 99 + 211 = 450

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Best First Search : Optimal ?

27

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

dist(A-E-G-H-I) =140+80+97+101=418

140

28

State Heuristic: h(n)

A 366

B 374

** C 250

D 244

E 253

F 178

G 193

H 98

I 0

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

f(n) = h (n) = straight-line distance heuristic

140

Greedy Best First Search : Optimal ?

Greedy Search: Tree Search

29

AStart

State

h(n)

A 366

B 374

C 250

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

30

A

BC

E

Start75118

140 [374][250]

[253]

State

h(n)

A 366

B 374

C 250

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

31

A

BC

E

D

111

Start75118

140 [374][250]

[253]

[244]

State

h(n)

A 366

B 374

C 250

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

32

A

BC

E

D

111

Start75118

140 [374][250]

[253]

[244]

C[250]Infinite Branch !

State

h(n)

A 366

B 374

C 250

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

33

A

BC

E

D

111

Start75118

140 [374][250]

[253]

[244]

C

D

[250]

[244]

Infinite Branch !

State

h(n)

A 366

B 374

C 250

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Tree Search

34

A

BC

E

D

111

Start75118

140 [374][250]

[253]

[244]

C

D

[250]

[244]

Infinite Branch !

State

h(n)

A 366

B 374

C 250

D 244

E 253

F 178

G 193

H 98

I 0

Greedy Search: Time and Space Complexity ?

35

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

140

• Greedy search is not optimal.

• Greedy search is incomplete without

systematic checking of repeated states.

• In the worst case, the Time and Space Complexity of Greedy Search are both

O(bm)

Where b is the branching factor and m the maximum path

length

A* Search

eval-fn: f(n)=g(n)+h(n)

Informed Search Strategies

A* (A Star)

37

Greedy Search minimizes a heuristic h(n) which is an estimated cost from a node n to the goal state. However, although greedy search can considerably cut the search time (efficient), it is neither optimal nor complete.

Uniform Cost Search minimizes the cost g(n) from the initial state to n. UCS is optimal and complete but not efficient.

New Strategy: Combine Greedy Search and UCS to get an efficient algorithm which is complete and optimal.

A* (A Star)

38

A* uses a heuristic function which combines g(n) and h(n) f(n) = g(n) + h(n)

g(n) is the exact cost to reach node n from the initial state. Cost so far up to node n.

h(n) is an estimation of the remaining cost to reach the goal.

A* (A Star)

39

n

g(n)

h(n)

f(n) = g(n)+h(n)

A* Search

40

State Heuristic: h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

f(n) = g(n) + h (n)

g(n): is the exact cost to reach node n from the initial state.

A

B

D

C

E

F

I

99

211

G

H

80

Start

Goal

97

101

75118

111

140

A* Search: Tree Search

41

A Start

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A* Search: Tree Search

42

A

BC E

Start

75118140

[393]

[449][447

]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

C[447] = 118 + 329E[393] = 140 + 253B[449] = 75 + 374

A* Search: Tree Search

43

A

BC E

F

99

G

80

Start

75118140

[393]

[449][447

]

[417]

[413]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A* Search: Tree Search

44

A

BC E

F

99

G

80

Start

75118140

[393]

[449][447

]

[417]

[413]

H

97

[415]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A* Search: Tree Search

45

A

BC E

F

I

99

G

H

80

Start

97

101

75118140

[393]

[449][447

]

[417]

[413]

[415]

Goal [418]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A* Search: Tree Search

46

A

BC E

F

I

99

G

H

80

Start

97

101

75118140

[393]

[449][447

]

[417]

[413]

[415]

Goal [418]

I [450]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A* Search: Tree Search

47

A

BC E

F

I

99

G

H

80

Start

97

101

75118140

[393]

[449][447

]

[417]

[413]

[415]

Goal [418]

I [450]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

A* Search: Tree Search

48

A

BC E

F

I

99

G

H

80

Start

97

101

75118140

[393]

[449][447

]

[417]

[413]

[415]

Goal [418]

I [450]

State

h(n)

A 366

B 374

C 329

D 244

E 253

F 178

G 193

H 98

I 0

Conditions for optimalityAdmissibility

An admissible heuristic never overestimates the cost to reach the goal

Straight-line distance hSLD obviously is an admissible heuristic

49

Admissibility / Monotonicity The admissible heuristic

h is consistent (or satisfies the monotone restriction) if for every node N and every successor N’ of N:

h(N) c(N,N’) + h(N’)

(triangular inequality)A consistent heuristic is

admissible.

A* is optimal if h is admissible or consistent

N

N’ h(N)

h(N’)

c(N,N’)

A* with systematic checking for repeated states

An Example: Map Searching

A* Algorithm

SLD Heuristic: h()Straight Line Distances to Bucharest

51

Town SLDArad 366

Bucharest

0

Craiova 160

Dobreta 242

Eforie 161

Fagaras 178

Giurgiu 77

Hirsova 151

Iasi 226

Lugoj 244

Town SLDMehadai 241

Neamt 234

Oradea 380

Pitesti 98

Rimnicu 193

Sibiu 253

Timisoara 329

Urziceni 80

Vaslui 199

Zerind 374

We can use straight line distances as an admissible heuristic as they will never overestimate the cost to the goal. This is because there is no shorter distance between two cities than the straight line distance. Press space to continue with the slideshow.

Distances Between Cities

52

Arad

Bucharest

OradeaZerind

Faragas

Neamt

Iasi

Vaslui

Hirsova

Eforie

Urziceni

Giurgui

Pitesti

Sibiu

Dobreta

Craiova

Rimnicu

Mehadia

Timisoara

Lugoj

87

92

142

86

98

86

211

101

90

99

151

71

75

140118

111

70

75

120

138

146

97

80

140

80

97

101

Sibiu

Rimnicu

Pitesti

Map Searching

Greedy Search in Action …

54

Press space to see an Greedy search of the Romanian map featured in the previous slide. Note: Throughout the animation all nodes are labelled with f(n) = h(n). However,we will be using the abbreviations f, and h to make the notation simpler

OradeaZerind

Fagaras

Sibiu

RimnicuTimisoara

Arad

We begin with the initial state of Arad. The straight line distance from Arad to Bucharest (or h value) is 366 miles. This gives us a total value of ( f = h ) 366 miles. Press space to expand the initial state of Arad.

F= 366

F= 366

F= 374

F= 374

F= 253

F=253F= 329

F= 329

Once Arad is expanded we look for the node with the lowest cost. Sibiu has the lowest value for f. (The straight line distance from Sibiu to the goal state is 253 miles. This gives a total of 253 miles). Press space to move to this node and expand it.

We now expand Sibiu (that is, we expand the node with the lowest value of f ). Press space to continue the search.

F= 178

F= 178

F= 380

F= 380

F= 193

F= 193

We now expand Fagaras (that is, we expand the node with the lowest value of f ). Press space to continue the search.

BucharestF= 0

F= 0

Map Searching

A* in Action …

56

Press space to see an A* search of the Romanian map featured in the previous slide. Note: Throughout the animation all nodes are labelled with f(n) = g(n) + h(n). However,we will be using the abbreviations f, g and h to make the notation simpler

OradeaZerind

Fagaras

Pitesti

Sibiu

Craiova

RimnicuTimisoara

Bucharest

Arad

We begin with the initial state of Arad. The cost of reaching Arad from Arad (or g value) is 0 miles. The straight line distance from Arad to Bucharest (or h value) is 366 miles. This gives us a total value of ( f = g + h ) 366 miles. Press space to expand the initial state of Arad.

F= 0 + 366

F= 366

F= 75 + 374

F= 449

F= 140 + 253

F= 393F= 118 + 329

F= 447

Once Arad is expanded we look for the node with the lowest cost. Sibiu has the lowest value for f. (The cost to reach Sibiu from Arad is 140 miles, and the straight line distance from Sibiu to the goal state is 253 miles. This gives a total of 393 miles). Press space to move to this node and expand it.

We now expand Sibiu (that is, we expand the node with the lowest value of f ). Press space to continue the search.

F= 239 + 178

F= 417

F= 291 + 380

F= 671

F= 220 + 193

F= 413

We now expand Rimnicu (that is, we expand the node with the lowest value of f ). Press space to continue the search.

F= 317 + 98

F= 415F= 366 + 160

F= 526

Once Rimnicu is expanded we look for the node with the lowest cost. As you can see, Pitesti has the lowest value for f. (The cost to reach Pitesti from Arad is 317 miles, and the straight line distance from Pitesti to the goal state is 98 miles. This gives a total of 415 miles). Press space to move to this node and expand it.

We now expand Pitesti (that is, we expand the node with the lowest value of f ). Press space to continue the search.

We have just expanded a node (Pitesti) that revealed Bucharest, but it has a cost of 418. If there is any other lower cost node (and in this case there is one cheaper node, Fagaras, with a cost of 417) then we need to expand it in case it leads to a better solution to Bucharest than the 418 solution we have already found. Press space to continue.

F= 418 + 0

F= 418

In actual fact, the algorithm will not really recognise that we have found Bucharest. It just keeps expanding the lowest cost nodes (based on f ) until it finds a goal state AND it has the lowest value of f. So, we must now move to Fagaras and expand it. Press space to continue.

We now expand Fagaras (that is, we expand the node with the lowest value of f ). Press space to continue the search.

Bucharest(2)F= 450 + 0

F= 450

Once Fagaras is expanded we look for the lowest cost node. As you can see, we now have two Bucharest nodes. One of these nodes ( Arad – Sibiu – Rimnicu – Pitesti – Bucharest ) has an f value of 418. The other node (Arad – Sibiu – Fagaras – Bucharest(2) ) has an f value of 450. We therefore move to the first Bucharest node and expand it. Press space to continue

BucharestBucharestBucharest

We have now arrived at Bucharest. As this is the lowest cost node AND the goal state we can terminate the search. If you look back over the slides you will see that the solution returned by the A* search pattern ( Arad – Sibiu – Rimnicu – Pitesti – Bucharest ), is in fact the optimal solution. Press space to continue with the slideshow.

Iterative Deepening A*

Informed Search Strategies

Iterative Deepening A*:IDA*

58

Use f(N) = g(N) + h(N) with admissible and consistent h

Each iteration is depth-first with cutoff on

the value of f of expanded nodes

IDA* AlgorithmIDA* Algorithm

59

In the first iteration, we determine a “f-cost limit” – cut-off value f(n0) = g(n0) + h(n0) = h(n0), where n0 is the start node.

We expand nodes using the depth-first algorithm and backtrack whenever f(n) for an expanded node n exceeds the cut-off value.

If this search does not succeed, determine the lowest f-value among the nodes that were visited but not expanded.

Use this f-value as the new limit value – cut-off value and do another depth-first search.

Repeat this procedure until a goal node is found.

8-Puzzle8-Puzzle

60

4

6

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

Cutoff=4

8-Puzzle8-Puzzle

61

4

4

6

Cutoff=4

6

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

62

4

4

6

Cutoff=4

6

5

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

63

4

4

6

Cutoff=4

6

5

5

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

64

4

4

6

Cutoff=4

6

5

56

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

65

4

6

Cutoff=5

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

66

4

4

6

Cutoff=5

6

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

67

4

4

6

Cutoff=5

6

5

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

68

4

4

6

Cutoff=5

6

5

7

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

69

4

4

6

Cutoff=5

6

5

7

5

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

70

4

4

6

Cutoff=5

6

5

7

5 5

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

8-Puzzle8-Puzzle

71

4

4

6

Cutoff=5

6

5

7

5 5

f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

The Effect of Heuristic Accuracy on Performance

An Example: 8-puzzle

Heuristic Evaluation

Admissible heuristicsE.g., for the 8-puzzle: h1(n) = number of misplaced tiles h2(n) = total Manhattan distance(i.e., no. of squares from desired location of each tile)

h1(S) = ? h2(S) = ?

Admissible heuristicsE.g., for the 8-puzzle: h1(n) = number of misplaced tiles h2(n) = total Manhattan distance(i.e., no. of squares from desired location of each tile)

h1(S) = ? 8h2(S) = ? 3+1+2+2+2+3+3+2 = 18

DominanceIf h2(n) ≥ h1(n) for all n (both admissible)then h2 dominates h1 h2 is better for search

Why?

Typical search costs (average number of nodes expanded):

d=12 IDS = 3,644,035 nodes A*(h1) = 227 nodes A*(h2) = 73 nodes

d=24 IDS = too many nodes A*(h1) = 39,135 nodes

A*(h2) = 1,641 nodes

Self Study

When to Use Search Techniques

76

The search space is small, andThere are no other available techniques, orIt is not worth the effort to develop a more

efficient technique

The search space is large, andThere is no other available techniques, andThere exist “good” heuristics

Conclusions

77

Frustration with uninformed search led to the idea of using domain specific knowledge in a search so that one can intelligently explore only the relevant part of the search space that has a good chance of containing the goal state. These new techniques are called informed (heuristic) search strategies.

Even though heuristics improve the performance of informed search algorithms, they are still time consuming especially for large size instances.

ReferencesChapter 3 of “Artificial Intelligence: A

modern approach” by Stuart Russell, Peter Norvig.

Chapter 4 of “Artificial Intelligence Illuminated” by Ben Coppin

78