Iterative Deepening ist eine Suche algorithm used in künstliche Intelligenz that combines the advantages of both Tiefensuche and breadth-first search. It is particularly useful in scenarios where the depth of the solution is unknown or when memory Ressourcen sind begrenzt.
The algorithm works by repeatedly performing depth-first searches to a specified depth limit, incrementally increasing this limit with each iteration. Initially, it starts with a depth limit of zero, searches for solutions at that depth, and then increases the limit by one for the next search. This process continues until a solution is found or the maximum depth is reached.
Einer der wichtigsten Vorteile von Iterative Deepening ist, dass es im Vergleich zur Breitensuche weniger Speicher benötigt, da nur ein einzelner Pfad vom Wurzelknoten bis zum aktuellen Knoten und alle Geschwisterknoten auf dieser Tiefe gespeichert werden, anstatt alle Knoten auf der aktuellen Ebene zu speichern. Dies macht es skalierbarer für Probleme mit großen Suchräumen.
Additionally, Iterative Deepening ensures that the algorithm is complete and optimal, meaning that if a solution exists, it will eventually be found, and it will do so in the shortest path possible. The trade-off is that it may involve repeated exploration of the same nodes, leading to higher time complexity in some cases. However, for many practical applications, the efficiency in memory usage and guaranteed completeness makes Iterative Deepening a favored choice.