IDA* Search - artificial intelligence:
A* search is a sophisticated and successful search strategy. In fact, a problem with A* search is that it must keep all states in its memory, so memory is often a much bigger consideration than time in designing agents to undertake A* searches. As we overcame the same problem with breadth first search by using an iterative deepening search (IDS), we do similar with A*.
Like IDS, an IDA* search is a series of depth first searches where the depth is increased after each and every iteration. In fact, the depth is not measured in terms of the path length, as it is in IDS, but rather in terms of the A* combined function f(n) as described above. To do this, we require to defines contours as regions of the search space containing states where f is below some limit for all the states, as shown pictorially here:
Each node in a contour scores less than a particular rate and IDA* search agents are told how much to increase the contour boundary by on each iteration. This specify the depth for successive searches. Whenever using contours, it is useful for the function f(n) to be monotonic, i.e., f is monotonic if when an operator takes a state s1 to a state s2, then f(s2) >= f(s1). Or we can say other words, if the value of f always increases along a path, so f is monotonic. As an exercise, where and why do we require monotonicity to ensure optimality in IDA* search?