0% found this document useful (0 votes)
78 views20 pages

Heuristic Search Methods: Methods That Use A Heuristic Function To Provide Specific Knowledge About The Problem

The document discusses various heuristic search methods that use heuristic functions to provide problem-specific knowledge. It describes heuristic functions, hill climbing, beam search, and greedy search. Hill climbing and beam search use a heuristic to select the most promising child node to expand next at each step. Greedy search always expands the node with the best heuristic value first. The document provides examples of heuristic functions for problems like route finding, the 8-puzzle, chess, and discusses issues with hill climbing like local maxima.

Uploaded by

Sachin Shukla
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views20 pages

Heuristic Search Methods: Methods That Use A Heuristic Function To Provide Specific Knowledge About The Problem

The document discusses various heuristic search methods that use heuristic functions to provide problem-specific knowledge. It describes heuristic functions, hill climbing, beam search, and greedy search. Hill climbing and beam search use a heuristic to select the most promising child node to expand next at each step. Greedy search always expands the node with the best heuristic value first. The document provides examples of heuristic functions for problems like route finding, the 8-puzzle, chess, and discusses issues with hill climbing like local maxima.

Uploaded by

Sachin Shukla
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

Heuristic Search Methods

Methods that use a heuristic function to provide specific knowledge about the problem:

Heuristic Functions Hill climbing Beam search Hill climbing (2) Greedy search

Heuristic Functions
To further improve the quality of the previous methods, we need to include problem-specific knowledge on the problem.
How to do this in such a way that the algorithms remain generally applicable ???

HEURISTIC FUNCTIONS: f: States --> Numbers f(T) : expresses the quality of the state T allow to express problem-specific knowledge, BUT: can be imported in a generic way in the algorithms.
2

Examples (1):
Imagine the problem of finding a route on a road map and that the NET below is the road map: 4 4 A B C 3 5 5 S G 4 3 D 2 E F 4 Define f(T) = the straight-line distance from T to G A 10.4 S 11 D 8.9 E 6.9 F 3
3

B 6.7

C 4 The estimate G can be wrong!

Examples (2): 8-puzzle


f1(T) = the number correctly placed tiles on the board: 1 3 2 f1
8 5 4 6 7

=4

f2(T) = number or incorrectly placed tiles on board:


gives (rough!) estimate of how far we are from goal 1 8 5 3 2 4 6 7

f2

=4

Most often, distance to goal heuristics are more useful !


4

Examples (3): Manhattan distance


f3(T) = the sum of ( the horizontal + vertical distance that each tile is away from its final destination):
gives a better estimate of distance from the goal node 1 8 3 5 2 4 6 7

f3

= 1 + 4 + 2 + 3 = 10

Examples (4): Chess:


F(T) = (Value count of black pieces) - (Value count of white pieces)

= v( ) + v( ) + v( ) + v( ) - v( ) - v( )

Hill climbing
A basic heuristic search method: depth-first + heuristic

Hill climbing_1
Example: using the straight-line distance:
S A 10.4 D 8.9

A 10.4

6.9 3.0

6.7 B

F G

Perform depth-first, BUT: instead of left-toright selection, FIRST select the child with the best heuristic value

Hill climbing_1 algorithm:


1. QUEUE <-- path only containing the root;

2. WHILE
DO

QUEUE is not empty AND goal is not reached

remove the first path from the QUEUE; create new paths (to all children); reject the new paths with loops; sort new paths (HEURISTIC) ; add the new paths to front of QUEUE;

3. IF goal reached THEN success; ELSE failure;


9

Beam search
Narrowing the width of the breadth-first search

Beam search (1):


Depth 1)
10.4
A S

8.9
D

Assume a prefixed WIDTH (example : 2 ) Perform breadthfirst, BUT: Only keep the WIDTH best new nodes
E

Depth 2)
A

S D D A

6.7

8.9

10.4

6.9

X X ignore ignore

depending on heuristic

at each new level.


11

Beam search (2):


Depth 3)
A S D

4.0

B C _

X end ignore

6.9

6.7 B

Depth 4)
A

S D

Optimization: E ignore 3.0 F leafs that are not goal nodes (see C)
E

B
C _

F G

10.4 A

C _

0.0
12

Beam search algorithm:


See exercises!

Properties:
Completeness:
Hill climbing: YES (backtracking), Beam search: NO

Speed/Memory:
Hill climbing: same as Depth-first (in worst case) Beam search: QUEUE always has length WIDTH, so memory usage is constant = WIDTH, time is of the order of WIDTH*m*b or WIDTH*d*b if no solution is found

13

Hill climbing_2
== Beam search with a width of 1. Inspiring Example: climbing a hill in the fog.
Heuristic function: check the change in altitude in 4 directions: the strongest increase is the direction in which to move next.

Is identical to Hill climbing_1, except for dropping the backtracking. Produces a number of classical problems:

14

Problems with Hill climbing_2:


Foothills: Local maximum Plateaus

Ridges

15

Comments:
Foothills are local minima: hill climbing_2 cant detect the difference. Plateaus dont allow you to progress in any direction.
Foothills and plateaus require random jumps to be combined with the hill climbing algorithm.

Ridges neither: the directions you have fixed in advance all move downwards for this surface.
Ridges require new rules, more directly targeted to the goal, to be introduced (new directions to move) .
16

Local search
Hill climbing_2 is an example of local search. In local search, we only keep track of 1 path and use it to compute a new path in the next step.
QUEUE is always of the form: ( p)
S A B C D

Another example:
MINIMAL COST search:

If p is the current path:


the next path extends p by adding the node with the smallest cost from the endpoint of p
2 D

3 B 3 E 5

4 C F
17

Greedy search
Always expand the heuristically best nodes first.

Greedy search, or Heuristic best-first search:

S 1
35 15 10

30
40

3
27

20

2
25 45

18

At each step, select the node with the best (in this case: lowest) heuristic value.

The open nodes


19

Greedy search 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 and sort the entire QUEUE;
(HEURISTIC)

3. IF goal reached THEN success; ELSE failure;

20

You might also like