Description: a search algorithm, a combination of the A* algorithm and the DFS algorithm. Invented by Korf in 1985.
The idea is that successive iterations correspond not to increasing depth of search, but rather to increasing values of the total cost of a path.
For A*, this total cost is composed of the cost so far in reaching the node (g) plus the estimated cost of the path from the node to a goal state (h).

Algorithm: At each iteration, perform a depth-first search, cutting off a branch when its total cost (g + h) exceeds a given threshold.
This threshold starts at the estimate of the cost of the initial state, and increases for each iteration of the algorithm. At each iteration, the threshold used for the next iteration is the minimum cost of all values that exceeded the current threshold.

A well-known property of A* is that it always finds a cheapest solution path if the heuristic is admissible, or in other words never overestimates the actual cost to the goal.
This property also holds for iterative-deepening-A*. Furthermore, IDA* expands the same number of nodes, asymptotically, as A* in an exponential tree search.

Notes: The standard algorithms for brute-force search have serious drawbacks.
Breadth-first search uses too much space, and depth-first search in general uses too much time and is not guaranteed to find a shortest path to the solution.
The depth-first iterative-deepening algorithm, however, is asymptotically optimal in terms of cost of solution, running time, and space required for brute-force tree searches. DFID can also be applied to bi-directional search, heuristic best-first search, and two-person game searches.
Since almost all heuristic searches have exponential complexity, iterative-deepening-A* is an optimal admissible tree search in practice.
For example, IDA* is the only known algorithm that can find optimal paths for randomly generated instances of the Fifteen Puzzle
within practical time and space constraints.

Iterative-deepening-A* known as IDA*

a search algorithm, a combination of the A* algorithm and the DFS algorithm. Invented by Korf in 1985.Description:

The idea is that successive iterations correspond not to increasing depth of search, but rather to increasing values of the total cost of a path.

For A*, this total cost is composed of the cost so far in reaching the node (g) plus the estimated cost of the path from the node to a goal state (h).

Algorithm:At each iteration, perform a depth-first search, cutting off a branch when its total cost (g + h) exceeds a given threshold.This threshold starts at the estimate of the cost of the initial state, and increases for each iteration of the algorithm. At each iteration, the threshold used for the next iteration is the minimum cost of all values that exceeded the current threshold.

A well-known property of A* is that it always finds a cheapest solution path if the heuristic is admissible, or in other words never overestimates the actual cost to the goal.

This property also holds for iterative-deepening-A*. Furthermore, IDA* expands the same number of nodes, asymptotically, as A* in an exponential tree search.

Notes:The standard algorithms for brute-force search have serious drawbacks.Breadth-first search uses too much space, and depth-first search in general uses too much time and is not guaranteed to find a shortest path to the solution.

The depth-first iterative-deepening algorithm, however, is asymptotically optimal in terms of cost of solution, running time, and space required for brute-force tree searches. DFID can also be applied to bi-directional search, heuristic best-first search, and two-person game searches.

Since almost all heuristic searches have exponential complexity, iterative-deepening-A* is an optimal admissible tree search in practice.

For example, IDA* is the only known algorithm that can find optimal paths for randomly generated instances of the Fifteen Puzzle

within practical time and space constraints.

Reference:IDA* by korf