0% found this document useful (0 votes)
57 views22 pages

A StarSearch

This document discusses tree search algorithms like A* search. A* uses an evaluation function f(n) = g(n) + h(n) where g(n) is the cost to reach node n and h(n) is an admissible heuristic estimate of the cost to reach the goal from n. A* is optimal if h(n) is admissible. The document also discusses properties like dominance, relaxed problems, consistent heuristics, and memory bounded variants like recursive best-first search and simple memory bounded A*.

Uploaded by

Bụi Đường
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views22 pages

A StarSearch

This document discusses tree search algorithms like A* search. A* uses an evaluation function f(n) = g(n) + h(n) where g(n) is the cost to reach node n and h(n) is an admissible heuristic estimate of the cost to reach the goal from n. A* is optimal if h(n) is admissible. The document also discusses properties like dominance, relaxed problems, consistent heuristics, and memory bounded variants like recursive best-first search and simple memory bounded A*.

Uploaded by

Bụi Đường
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

A* Search

Tree search algorithms

Basic idea:

Exploration of state space by generating


successors of already-explored states
(a.k.a.~expanding states).
Every states is evaluated: is it a goal state?

Tree search example

Tree search example

Tree search example

Best-first search

Idea: use an evaluation function f(n) for each node

f(n) provides an estimate for the total cost.


Expand the node n with smallest f(n).

Implementation:
Order the nodes in fringe increasing order of cost.

Romania with straight-line dist.

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
Best First search has f(n)=h(n)
Uniform Cost search has f(n)=g(n)

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 TREESEARCH is optimal

Dominance

If h2(n) h1(n) for all n (both admissible)


then h2 dominates h1
h2 is better for search: it is guaranteed to expand
less or equal nr of nodes.

Typical search costs (average number of nodes


expanded):

d=12

d=24

IDS =
A*(h1)
A*(h2)
IDS =
A*(h1)
A*(h2)

3,644,035 nodes
= 227 nodes
= 73 nodes
too many nodes
= 39,135 nodes
= 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

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 )
f(n )

=
=

g(n ) + h(n )
g(n) + c(n,a,n') + h(n )
g(n) + h(n) = f(n)
f(n)

(by def.)
(g(n )=g(n)+c(n.a.n ))
(consistency)

It s the triangle
inequality !

i.e., f(n) is non-decreasing along any path.

keeps all checked nodes


in memory to avoid repeated
Theorem:
If h(n) is consistent, A* using GRAPH-SEARCH is optimal states

A* search example

*
A

search example

A* search example

A* search example

A* search example

A* search example

Properties of A*

Complete? Yes (unless there are infinitely many


nodes with f f(G) , i.e. step-cost > )
Time/Space? Exponential: b d
except if: | h (n ) h * (n ) | O (log h * (n ))
Optimal? Yes
Optimally Efficient: Yes (no algorithm with the
same heuristic is guaranteed to expand fewer nodes)

Memory Bounded Heuristic


Search: Recursive BFS

How can we solve the memory problem for


A* search?
Idea: Try something like depth first search,
but let s not forget everything about the
branches we have partially explored.
We remember the best f-value we have
found so far in the branch we are deleting.

RBFS:
best alternative
over fringe nodes,
which are not children:
i.e. do I want to back up?
RBFS changes its mind
very often in practice.
This is because the
f=g+h become more
accurate (less optimistic)
as we approach the goal.
Hence, higher level nodes
have smaller f-values and
will be explored first.
Problem: We should keep
in memory whatever we can.

Simple Memory Bounded A*

This is like A*, but when memory is full we delete


the worst node (largest f-value).
Like RBFS, we remember the best descendent in
the branch we delete.
If there is a tie (equal f-values) we delete the oldest
nodes first.
simple-MBA* finds the optimal reachable solution
given the memory constraint.
A Solution is not reachable
if a single path from root to goal
does not fit into memory
Time can still be exponential.

You might also like