Title: More advanced aspects of search
1More advanced aspects of search
2Extensions of A
- Iterated deepening A
- Simplified Memory-bounded A
3Iterative-deepening A
4Memory problems with A
- A is similar to breadth-first
- Here 2 extensions of A that improve memory
usage.
5Iterative deepening A
How to establish the f-bounds? - initially
f(S) generate all successors record the minimal
f(succ) gt f(S) Continue with minimal f(succ)
instead of f(S)
6Example
f-limited, f-bound 100
7Example
f-limited, f-bound 120
8Example
f-limited, f-bound 125
9f-limited search
1. QUEUE lt-- path only containing the root
f-bound lt-- ltsome natural numbergt f-new
lt-- ? 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 with f(path) ?
f-bound to front of QUEUE
f-new lt-- minimum of current f-new
and of the minimum of new f-values which
are larger than f-bound 3. IF goal
reached THEN success ELSE report f-new
10Iterative deepening A
11Properties of IDA
- Complete and optimal
- under the same conditions as for A
- Memory
- Let ? be the minimal cost of an arc
- O( b (cost(B) /?) )
- Speed
- depends very strongly on the number of
f-contours there are !! - In the worst case f(p) ? f(q) for every 2
paths - 1 2 . N O(N2)
12Why is this optimal,even without monotonicity ??
13Properties practical
- If there are only a reduced number of different
contours
- Else, the gain of the extended f-contour is not
sufficient to compensate recalculating the
previous - In such cases
14Simplified Memory-bounded A
15Simplified Memory-bounded A
- Fairly complex algorithm.
- Optimizes A to work within reduced memory.
- Key idea
(15)
16Generate children 1 by 1
17Too long path give up
18Adjust f-values
better estimate for f(S)
19SMA an example
(15)
13
12
20Example continued
15
(15)
(24)
20
13
15
(?)
13
20
(?)
(?)
24
15
21SMA properties
- Complete If available memory allows to store
the shortest path. - Optimal If available memory allows to store
the best path. - Otherwise returns the best path that fits in
memory. - Memory Uses whatever memory available.
- Speed If enough memory to store entire tree
same as A