Heuristic Search
Heuristic Search
Heuristic Search
1
Heuristic Search Techniques
• Direct techniques (blind search) are not
always possible (they require too much time
or memory).
2
Example: 8 Puzzle
1 2 3 1 2 3
7 8 4 8 4
6 5 7 6 5
3
1 2 3 GOAL 1 23
8 4 7 84
7 6 5 6 5
up
left right
123 1 2 3 1 2 3
784 7 8 4 7 4
65 6 5 6 8 5
5
8 Puzzle Heuristics
• For now - we just want to establish some
ordering to the possible moves (the values
of our heuristic does not matter as long as it
ranks the moves).
• Later - we will worry about the actual
values returned by the heuristic function.
6
A Simple 8-puzzle heuristic
• Number of tiles in the correct position.
– The higher the number the better.
– Easy to compute (fast and takes little memory).
– Probably the simplest possible heuristic.
7
Another approach
• Number of tiles in the incorrect position.
– This can also be considered a lower bound on
the number of moves from a solution!
– The “best” move is the one with the lowest
number returned by the heuristic.
– Is this heuristic more than a heuristic (is it
always correct?).
• Given any 2 states, does it always order them
properly with respect to the minimum number of
moves away from a solution?
8
1 2 3 GOAL 1 23
8 4 7 84
7 6 5 6 5
up
left right
123 1 2 3 1 2 3
784 7 8 4 7 4
65 6 5 6 8 5
h=2 h=4 h=3
9
Another 8-puzzle heuristic
• Count how far away (how many tile
movements) each tile is from it’s correct
position.
• Sum up this count over all the tiles.
• This is another estimate on the number of
moves away from a solution.
10
1 2 3 GOAL 1 23
8 4 7 84
7 6 5 6 5
up
left right
123 1 2 3 1 2 3
784 7 8 4 7 4
65 6 5 6 8 5
h=2 h=4 h=4
11
Techniques
• There are a variety of search techniques that
rely on the estimate provided by a heuristic
function.
• In all cases - the quality (accuracy) of the
heuristic is important in real-life application
of the technique!
12
Generate-and-test
• Very simple strategy - just keep guessing.
13
Example - Traveling Salesman
Problem (TSP)
• Traveler needs to visit n cities.
• Know the distance between each pair of
cities.
• Want to know the shortest route that visits
all the cities once.
• n=80 will take millions of years to solve
exhaustively!
14
TSP Example
A 6 B
1 2
5 3
D 4 C
15
Generate-and-test Example
• TSP - generation of
possible solutions is done
A B C D
in lexicographical order
of cities:
1. A - B - C - D B C D
2. A - B - D - C
3. A - C - B - D C D B D C B
4. A - C - D - B
... D C D B B C
16
Hill Climbing
• Variation on generate-and-test:
– generation of next state depends on feedback
from the test procedure.
– Test now includes a heuristic function that
provides a guess as to how good each possible
state is.
• There are a number of ways to use the
information returned by the test procedure.
17
Simple Hill Climbing
• Use heuristic to move only to states that are
better than the current state.
18
Simple Hill Climbing
Function Optimization
y = f(x)
y
x 19
Potential Problems with
Simple Hill Climbing
• Will terminate when at local optimum.
20
Simple Hill Climbing Example
• TSP - define state space as the set of all
possible tours.
21
TSP Hill Climb State Space
ABCD Initial State
22
Steepest-Ascent Hill Climbing
• A variation on simple hill climbing.
• Instead of moving to the first state that is
better, move to the best possible state that is
one move away.
• The order of operators does not matter.
26
Best-First Search (cont.)
While goal not reached:
1. Generate all potential successor states and
add to a list of states.
2. Pick the best state in the list and go to it.
27
Simulated Annealing
• Based on physical process of annealing a
metal to get the best (minimal energy) state.
• Hill climbing with a twist:
– allow some moves downhill (to worse states)
– start out allowing large downhill moves (to
much worse states) and gradually allow only
small downhill moves.
28
Simulated Annealing (cont.)
• The search initially jumps around a lot,
exploring many regions of the state space.
29
Simulated Annealing
6
2 4
3 5
1
30
A* Algorithm (a sure test topic)
• The A* algorithm uses a modified
evaluation function and a Best-First search.
31
A* evaluation function
• The evaluation function f is an estimate of
the value of a node x given by:
f(x) = g(x) + h’(x)
• g(x) is the cost to get from the start state to
state x.
• h’(x) is the estimated cost to get from state
x to the goal state (the heuristic).
32
Modified State Evaluation
• Value of each state is a combination of:
– the cost of the path to the state
– estimated cost of reaching a goal from the state.
• The idea is to use the path to a state to
determine (partially) the rank of the state
when compared to other states.
• This doesn’t make sense for DFS or BFS,
but is useful for Best-First Search.
33
Why we need modified
evaluation
• Consider a best-first search that generates the
same state many times.
• Which of the paths leading to the state is the
best ?
34
A* Algorithm
• The general idea is:
– Best First Search with the modified evaluation
function.
– h’(x) is an estimate of the number of steps from
state x to a goal state.
– loops are avoided - we don’t expand the same
state twice.
– Information about the path to the goal state is
retained.
35
A* Algorithm
1. Create a priority queue of search nodes (initially the
start state). Priority is determined by the function f )
2. While queue not empty and goal not found:
get best state x from the queue.
If x is not goal state:
generate all possible children of x (and save
path information with each node).
Apply f to each new node and add to queue.
Remove duplicates from queue (using f to pick
the best).
36
Example - Maze
START GOAL
37
Example - Maze
START GOAL
38
A* Optimality and Completeness
• If the heuristic function h’ is admissible the
algorithm will find the optimal (shortest
path) to the solution in the minimum
number of steps possible (no optimal
algorithm can do better given the same
heuristic).
• An admissible heuristic is one that never
overestimates the cost of getting from a
state to the goal state (is optimistic).
39
Admissible Heuristics
• Given an admissible heuristic h’, path
length to each state given by g, and the
actual path length from any state to the goal
given by a function h.
• We can prove that the solution found by A*
is the optimal solution.
40
A* Optimality Proof
• Assume A* finds the (suboptimal) goal G2
and the optimal goal is G.
• Since h’ is admissible: h’(G2)=h’(G)=0
• Since G2 is not optimal: f(G2) > f(G).
• At some point during the search, some node
n on the optimal path to G is not expanded.
We know:
f(n) f(G)
41
root (start state)
G G2
42
Proof (cont.)
• We also know node n is not expanded
before G2, so:
f(G2) f(n)
• Combining these we know:
f(G2) f(G)
• This is a contradiction ! (G2 can’t be
suboptimal).
43
Another view of A* Optimality
(with admissible heuristic)
• Call the optimal (minimum) length path C*
• A* will:
– expand all search nodes n such that f(n) < C*
– expand some nodes n such that f(n) = C*
– expand no nodes n such that f(n) > C*
44
A* Example
Towers of Hanoi
Little Disk Peg 1 Peg 3
Peg 2
Big Disk
45