Explication
L'approfondissement itératif amène un à effectuer d'abord une recherche avec une petite limite, puis à répéter l'analyse avec des limites progressivement plus élevées. Aux échecs, la profondeur se mesure couramment en plies, un ply étant un coup joué par un seul camp.
Cela semble d'abord gaspiller du travail, puisque les positions proches du début sont visitées à plusieurs reprises. Les itérations précédentes produisent toutefois des informations précieuses: un coup provisoirement considéré comme le meilleur, la variante principale, c'est-à-dire la ligne alors considérée comme la meilleure, des résultats stockés et des indications pour l'. Examiner d'abord les choix prometteurs lors de l'itération suivante permet souvent d'arrêter davantage de branches rapidement et compense une grande partie du travail répété.
Son avantage pratique le plus clair concerne la gestion du temps. Si la pendule oblige le moteur à s'arrêter pendant une itération plus profonde, il conserve tout de même le résultat complet de la précédente. Il ne doit pas tout risquer sur une recherche susceptible de rester inachevée.
L'approfondissement itératif ne consiste pas à prolonger seulement une variante favorite. Chaque itération reprend la position initiale avec une limite supérieure, même si des techniques sélectives peuvent attribuer différentes profondeurs locales dans l'arbre. Il repousse également l' sans le supprimer.
Usage et contexte
Les interfaces affichent souvent la profondeur de l'itération actuelle, mais un nombre plus élevé ne prouve pas à lui seul que deux moteurs différents ont accompli un travail comparable.
Confusions fréquentes
Répétition inutile
Le travail antérieur fournit l'ordonnancement des coups, une variante principale et des informations de recherche stockées, si bien que l'itération suivante ne repart pas réellement de zéro.
Approfondissement et extension sélective
L'approfondissement itératif augmente la limite générale entre les passages; une extension ajoute localement de la recherche à certaines variantes.
Sources
- 1.Depth-first iterative-deepening: An optimal admissible tree search, Artificial Intelligence / Elsevier
- 2.Iterative Deepening, Chess Programming Wiki
- 3.search.cpp, Stockfish
