Iterative Deepening A* (IDA*) is an extension of A* search that combines the benefits of depth-first and breadth-first search. It performs depth-first search with an iterative deepening limit on the cost function f(n), increasing the limit if the goal is not found. This allows IDA* to be optimal and complete like breadth-first search while having modest memory requirements like depth-first search. The algorithm starts with an initial f-limit of the start node's f-value, pruning any nodes where f exceeds the limit. If the goal is not found, the limit is increased to the minimum f among pruned nodes for the next iteration.