توضیح
ژرفسازی تکرارشونده باعث میشود یک ابتدا با حدی کوچک جستوجو کند و سپس تحلیل را با حدهای پیدرپی بزرگتر تکرار کند. در شطرنج، عمق معمولاً با پلای سنجیده میشود و یک پلای یک حرکت از سوی یک طرف است.
در نگاه نخست این کار اتلاف به نظر میرسد، زیرا وضعیتهای نزدیک آغاز چند بار دیده میشوند. با این حال، تکرارهای پیشین اطلاعات ارزشمندی تولید میکنند: بهترین حرکت موقت، واریانت اصلی، یعنی خطی که در آن لحظه بهترین دانسته میشود، نتایج ذخیرهشده و شواهدی برای . جستوجوی گزینههای امیدبخش در ابتدای تکرار بعدی اغلب اجازه میدهد شاخههای بیشتری زود متوقف شوند و بخش بزرگی از کار تکراری را جبران میکند.
روشنترین فایدهٔ عملی آن مدیریت زمان است. اگر ساعت موتور را وادار کند هنگام تکراری عمیقتر متوقف شود، نتیجهٔ کامل تکرار قبلی همچنان در دسترس است. موتور لازم نیست همهچیز را به جستوجویی وابسته کند که شاید ناتمام بماند.
ژرفسازی تکرارشونده به معنای گسترش فقط یک خط محبوب نیست. هر تکرار وضعیت آغازین را با حدی بزرگتر دوباره بررسی میکند، هرچند فنون گزینشی ممکن است درون درخت عمقهای محلی متفاوتی اختصاص دهند. این روش را نیز به بیرون میراند، اما آن را حذف نمیکند.
کاربرد و بافت
رابطها اغلب عمق تکرار جاری را نشان میدهند، اما عدد بزرگتر بهتنهایی ثابت نمیکند دو موتور متفاوت کار قابل مقایسهای انجام دادهاند.
اشتباههای رایج
تکرار بیهوده
کار قبلی ترتیب حرکتها، واریانت اصلی و اطلاعات جستوجوی ذخیرهشده فراهم میکند، بنابراین تکرار بعدی واقعاً از صفر آغاز نمیشود.
ژرفسازی و بسط گزینشی
ژرفسازی تکرارشونده حد کلی را میان گذرها افزایش میدهد، در حالی که بسط به خطهای خاص جستوجوی محلی میافزاید.
منابع
- 1.Depth-first iterative-deepening: An optimal admissible tree search, Artificial Intelligence / Elsevier
- 2.Iterative Deepening, Chess Programming Wiki
- 3.search.cpp, Stockfish
