Informed search
algorithms
Material
|
|
|
Chapter 4 Section 1 - 3 |
|
Excludes memory-bounded heuristic
search |
Outline
|
|
|
Best-first search |
|
Greedy best-first search |
|
A* search |
|
|
|
Heuristics |
|
|
|
Local search algorithms |
|
|
|
Online search problems |
|
|
Review: Tree search
|
|
|
|
|
|
|
|
|
|
|
|
|
A search strategy is defined by picking
the order of node expansion |
Best-first search
|
|
|
|
Idea: use an evaluation function f(n) for
each node |
|
estimate of "desirability" |
|
Expand most desirable unexpanded node |
|
|
|
Implementation: |
|
Order the nodes in fringe in
decreasing order of desirability |
|
|
|
Special cases: |
|
greedy best-first search |
|
A* search |
Romania with step costs
in km
Greedy best-first search
|
|
|
Evaluation function f(n) = h(n) (heuristic) |
|
= estimate of cost from n to goal |
|
e.g., hSLD(n) =
straight-line distance from n to Bucharest |
|
Greedy best-first search expands the
node that appears to be closest to goal |
Greedy best-first search
example
Greedy best-first search
example
Greedy best-first search
example
Greedy best-first search
example
Properties of greedy
best-first search
|
|
|
Complete? No ¨C can get stuck in loops,
e.g., Iasi ¨¤ Neamt ¨¤ Iasi ¨¤ Neamt ¨¤ ¡ |
|
Time? O(bm), but a good
heuristic can give
dramatic improvement |
|
Space? O(bm): keeps all
nodes in memory |
|
Optimal? No |
A* search
|
|
|
Idea: avoid expanding paths that are
already expensive |
|
Evaluation function f(n) = g(n) + h(n) |
|
g(n) = cost so far to reach n |
|
h(n) = estimated cost from n to goal |
|
f(n) = estimated total cost of path
through n to goal |
A* search
example
A* search
example
A* search
example
A* search
example
A* search
example
A* search
example
Admissible heuristics
|
|
|
A heuristic h(n) is admissible if for
every node n, |
|
h(n) ¡Ü h*(n), where h*(n)
is the true cost to reach the goal state from n. |
|
An admissible heuristic never
overestimates the cost to reach the goal, i.e., it is optimistic |
|
Example: hSLD(n) (never
overestimates the actual road distance) |
|
Theorem: If h(n) is admissible, A*
using TREE-SEARCH is optimal |
Optimality of A*
(proof)
|
|
|
Suppose some suboptimal goal G2
has been generated and is in the fringe. Let n be an unexpanded node in the
fringe such that n is on a shortest path to an optimal goal G. |
|
|
|
|
|
|
|
|
|
|
|
f(G2)¡¡ = g(G2) since h(G2) =
0 |
|
g(G2) > g(G) since G2
is suboptimal |
|
f(G)¡¡¡¡
= g(G) since h(G) = 0 |
|
f(G2)¡¡ > f(G) from above |
Optimality of A*
(proof)
|
|
|
Suppose some suboptimal goal G2
has been generated and is in the fringe. Let n be an unexpanded node in the
fringe such that n is on a shortest path to an optimal goal G. |
|
|
|
|
|
|
|
|
|
|
|
f(G2) > f(G) from
above |
|
h(n) ¡Ü h^*(n) since h is admissible |
|
g(n) + h(n) ¡Ü g(n) + h*(n) |
|
f(n) ¡Ü f(G) |
|
Hence f(G2) > f(n), and A*
will never select G2 for expansion |
|
|
Consistent heuristics
|
|
|
A heuristic is consistent if for every
node n, every successor n' of n generated by any action a, |
|
|
|
h(n) ¡Ü c(n,a,n') + h(n') |
|
|
|
If h is consistent, we have |
|
f(n') = g(n') + h(n') |
|
¡¡¡¡¡¡¡¡¡¡
= g(n) + c(n,a,n') + h(n') |
|
¡¡¡¡¡¡¡¡¡¡
¡Ý g(n) + h(n) |
|
¡¡¡¡¡¡¡¡¡¡
= f(n) |
|
|
|
i.e., f(n) is non-decreasing along any
path. |
|
|
|
Theorem: If h(n) is consistent, A*
using GRAPH-SEARCH is optimal |
Optimality of A*
|
|
|
A* expands nodes in order of
increasing f value |
|
|
|
Gradually adds "f-contours"
of nodes |
|
Contour i has all nodes with f=fi,
where fi < fi+1 |
Properties of A*
|
|
|
Complete? Yes (unless there are
infinitely many nodes with f ¡Ü f(G) ) |
|
Time? Exponential |
|
Space? Keeps all nodes in memory |
|
Optimal? Yes |
Admissible heuristics
|
|
|
E.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 heuristics
|
|
|
E.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) = ? 8 |
|
h2(S) = ? 3+1+2+2+2+3+3+2 =
18 |
Dominance
|
|
|
If h2(n) ¡Ý h1(n)
for all n (both admissible) |
|
then h2 dominates h1 |
|
h2 is better for search |
|
|
|
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 |
Relaxed problems
|
|
|
A problem with fewer restrictions on
the actions is called a relaxed problem |
|
The cost of an optimal solution to a
relaxed problem is an admissible heuristic for the original problem |
|
If the rules of the 8-puzzle are
relaxed so that a tile can move anywhere, then h1(n) gives the
shortest solution |
|
If the rules are relaxed so that a tile
can move to any adjacent square, then h2(n) gives the shortest
solution |
Local search algorithms
|
|
|
In many optimization problems, the path
to the goal is irrelevant; the goal state itself is the solution |
|
|
|
State space = set of
"complete" configurations |
|
Find configuration satisfying
constraints, e.g., n-queens |
|
|
|
In such cases, we can use local search
algorithms |
|
keep a single "current"
state, try to improve it |
Example: n-queens
|
|
|
Put n queens on an n ¡Á n board with no
two queens on the same row, column, or diagonal |
Hill-climbing search
|
|
|
"Like climbing Everest in thick
fog with amnesia" |
|
|
Hill-climbing search
|
|
|
Problem: depending on initial state,
can get stuck in local maxima |
|
|
Hill-climbing search:
8-queens problem
|
|
|
|
|
h = number of pairs of queens that are
attacking each other, either directly or indirectly |
|
h = 17 for the above state |
Hill-climbing search:
8-queens problem
Simulated annealing
search
|
|
|
Idea: escape local maxima by allowing
some "bad" moves but gradually decrease their frequency |
|
|
Properties of simulated
annealing search
|
|
|
One can prove: If T decreases slowly
enough, then simulated annealing search will find a global optimum with
probability approaching 1 |
|
|
|
Widely used in VLSI layout, airline
scheduling, etc |
Local Beam Search
|
|
|
Why keep just one best state? |
|
|
|
|
|
|
|
|
|
|
|
|
|
Can be used with randomization too |
Genetic algorithms
|
|
|
A successor state is generated by
combining two parent states |
|
|
|
Start with k randomly generated states
(population) |
|
|
|
A state is represented as a string over
a finite alphabet (often a string of 0s and 1s) |
|
|
|
Evaluation function (fitness function).
Higher values for better states. |
|
|
|
Produce the next generation of states
by selection, crossover, and mutation |
Genetic algorithms
|
|
|
|
|
|
|
|
|
|
|
|
|
Fitness function: number of
non-attacking pairs of queens (min = 0, max = 8 ¡Á 7/2 = 28) |
|
24/(24+23+20+11) = 31% |
|
23/(24+23+20+11) = 29% etc. |
Genetic algorithms
Online search and
exploration
|
|
|
|
Many problems are offline |
|
Do search for action and then perform
action |
|
|
|
Online search interleave search &
execution |
|
Necessary for exploration problems |
|
New observations only possible after
acting |
|
|
Competitive Ratio
|
|
|
Actual cost of path |
|
Best possible cost |
|
(if agent knew space in advance) |
|
|
|
|
|
30/20 = 1.5 |
|
|
|
For cost, lower is better |
|
|
|
|
Exploration problems
|
|
|
|
|
Exploration problems: agent physically
in some part of the state space. |
|
e.g. solving a maze using an agent with
local wall sensors |
|
Sensible to expand states easily
accessible to agent (i.e. local states) |
|
Local search algorithms apply (e.g.,
hill-climbing) |
Hex!
Hex!
Assignment
|
|
|
|
Build a game player |
|
Restricted by time per move (specifics
TBA) |
|
|
|
Interact with the game driver through
command line |
|
Each turn, we will run your program,
providing a a grid as input. |
|
Your output will be just the
coordinates of your stone placement. |
Homework #1 - Hex
|
|
|
|
|
|
Note: we haven¡¯t yet covered all of the
methods to solve this problem |
|
|
|
This week: start thinking about it,
discuss among yourselves (remember the G.I. Rule!) |
|
What heuristics are good to use? |
|
What type of search makes sense to use? |