A graph search algorithm that will find the shortest path with SOme given property, even when the graph contains cycles. When searching for a path through a graph, starting at a given initial node, where the path (or its end node) has SOme desired property, a depth-first search may never find a SOlution if it enters a cycle in the graph. Rather than avoiding cycles (i.e. never extend a path with a node it already contains), iterative deepening explores all paths up to length (or "depth") N, starting from N=0 and increasing N until a SOlution is found. (2004-01-26)