Hueristic Searchh
Hueristic Searchh
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
3 A B C
S 5 5
G
4 D 2 E F 3
4
A 10.4 B 6.7 C 4
11 The estimate
S
8.9 G can be wrong!
D E 6.9 F 3
3
Examples (2): 8-puzzle
f1(T) = the number correctly placed tiles on the
board: 1 3 2
f1 8 4 =4
5 6 7
1 3 2
f2 8 4 =1+1+2+2=6
5 6 7
5
Hill climbing
S
Perform depth-first,
A 10.4 D 8.9 BUT:
instead of left-to-
right selection,
A 10.4 6.9
E FIRST select the child
with the best heuristic
value
6.7 B F 3.0
7
Hill climbing_1 algorithm:
1. QUEUE <-- path only containing the root;
3. IF goal reached
THEN success;
ELSE failure;
8
Beam search
Perform breadth-
Depth 2) first, BUT:
S
Only keep the
A D WIDTH best new
nodes
6.7 8.9 10.4 6.9 depending on
B D A E heuristic
X X
ignore ignore at each new level.
10
Beam search (2):
Depth 3) S
A D Optimi-
zation:
4.0 B D A E
6.9 X X 6.7 B 3.0 ignore
_C E F
leafs
X
end
ignore that are
not goal
Depth 4) S nodes
(see C)
A D
B D A E
_C E X X B F
X
10.4 A 0.0
_C G
11
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 or WIDTH*d if no solution is found
12
Hill climbing_2
== Beam search with a width of 1.
13
Problems with
Hill climbing_2:
Foothills: Plateaus
Local
maximum
Ridges
14
Comments:
Foothills are local minima: hill climbing_2 can’t
detect the difference.
Plateaus don’t allow you to progress in any direction.
15
Local search
Hill climbing_2 is an example of local S
search. A
In local search, we only keep track of 1
path and use it to compute a new path in B
the next step. C
QUEUE is always of the form: D
( p)
Another example:
MINIMAL COST search: A
3 4
If p is the current path:
B C
the next path extends p by adding the
2 3 5
node with the smallest cost from the
endpoint of p D E F
16
Greedy search
S 30
10 40
1 20 At each step,
3 select the
node with the
35 15 best (in this
2 27 18 case: lowest)
heuristic
value.
25 45 The ‘open’
nodes
18
Greedy search algorithm:
1. QUEUE <-- path only containing the root;