100% found this document useful (1 vote)
93 views12 pages

Intro To Iterative Deepening

Iterative Deepening Search (IDS) combines the best aspects of breadth-first search (BFS) and depth-first search (DFS) to balance optimality and memory usage. IDS performs a DFS at each depth level, starting at depth 0 and incrementally increasing the depth limit. This allows IDS to find optimal solutions like BFS while only requiring memory proportional to the maximum depth like DFS. Iterative Deepening A* (IDA*) further improves memory usage by imposing a limit on the estimated total path cost at each iteration, finding optimal solutions with greatly reduced memory compared to A*. IDS forms the basis for state-of-the-art complete and optimal search algorithms that aim to balance optimality and
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
93 views12 pages

Intro To Iterative Deepening

Iterative Deepening Search (IDS) combines the best aspects of breadth-first search (BFS) and depth-first search (DFS) to balance optimality and memory usage. IDS performs a DFS at each depth level, starting at depth 0 and incrementally increasing the depth limit. This allows IDS to find optimal solutions like BFS while only requiring memory proportional to the maximum depth like DFS. Iterative Deepening A* (IDA*) further improves memory usage by imposing a limit on the estimated total path cost at each iteration, finding optimal solutions with greatly reduced memory compared to A*. IDS forms the basis for state-of-the-art complete and optimal search algorithms that aim to balance optimality and
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Iterative Deepening

Click to edit Master subtitle style

G51IAI Introduction to AI Andrew Parkes


http://www.cs.nott.ac.uk/~ajp/

Motivations

BFS & A*

good for optimality bad on memory, O(bd) solutions not guaranteed optimal: dives and misses good nodes good for memory O(bd)

DFS

Iterative Deepening refers to a method that tries to combine the best of the above

Depth-Limited Search

Simply put an upper limit on the depth (cost) of paths allowed Motivation:

e.g. inherent limit on range of a vehicle

tell me all the places I can reach on 10 litres of petrol

prevents search diving into deep solutions might already have a solution of known depth (cost), but are looking for a shallower (cheaper) one

Depth-Limited Search

Impose an upper limit on the depth (cost) of paths allowed

Only add nodes to the queue if their depth does not exceed the bound

DepthLimitedDFS ( k ) : DFS but only consider nodes with depth d k

Trees: Depth-Limited

Depth limit of 2 would mean that children of E are ignored

d= 0 d= 1

F B J C G

d= 2

A D
d= 4

d= 3

Iterative Deepening Search


Follow the BFS pattern of search all nodes of depth d before depth d+1 But do the search at depth d using Depth-Limited-DFS Schematically: IDS: k=0; while ( not success && k < depth of tree ) { Depth-Limited-DFS ( k ); k++ }

Properties of IDS

Memory Usage

Same as DFS O(bd)

Time Usage:

Worse than BFS because nodes at each level will be expanded again at each later level BUT often is not much worse because almost all the effort is at the last level anyway, because trees are leaf heavy Typically might be at most a factor two worse

Memory Usage of A*

We store the tree in order to


to return the route avoid repeated states

Takes a lot of memory But scanning a tree is better with DFS

IDA*

Combine A* and iterative deepening f is the estimate of total path cost for start to goal IDA*:

Greatly reduces memory usage Can repeat far too much work, and so be slow

Impose a limit on f Use DFS to search within the f limit Iteratively relax the limit

Summary

Algorithm IDS:

IDS : BFS plus DFS for tree search the basis of state of the art complete & optimal algorithms

Algorithm IDA*:

Summary

BFS & A*: good for optimality, but not memory DFS: good for memory O(bd), but not optimality Iterative Deepening refers to

IDS Iterative Deeepening Search

mix of DFS and BFS on trees

a broad approach used for general search, with general aim to combine optimality with low memory usage of DFS

Self-Study: carefully work through ids.ppt Expectations:


know about the motivations and ideas and the search pattern do not need details of how to code IDA*

Questions?

You might also like