Кіріспе

Іздеу стратегиясы

Компьютерлік ғылымда, қайталанатын тереңдеу іздеуі немесе дәлірек айтқанда, қайталанатын тереңдеу тереңдік бірінші іздеу (IDS немесе IDDFS) – бұл күй кеңістігі/графтық іздеу стратегиясы, онда мақсатқа қол жеткенге дейін тереңдік шектеулі тереңдік бірінші іздеудің нұсқасы қайта-қайта орындалады. IDDFS оптималды, яғни ең шалқая мақсатты табады. Итеративті тереңдету күйлерді бірнеше рет қарастырады, бұл ысырапқа салынғандықтай көрінуі мүмкін. Дегенмен, егер IDDFS іздеу ағашын белгілі бір тереңдікке дейін зерттесе, жалпы жұмсалған күш-жігердің көп бөлігі осы тереңдіктегі күйлерді зерттеуге жұмсалады. Осы тереңдіктегі күйлер санына қатысты, осы тереңдіктен жоғарыдағы күйлерді қайта-қайта қарастырудың құны әрқашан аз болады. IDDFS-тің ойын ағаштарын іздеудегі басты артықшылығы – бастапқы іздеулер әдетте қолданылатын эвристикаларды жақсартады, мысалы, «өлтіруші» эвристика және альфа-бета кесу, соның салдарынан соңғы тереңдіктегі іздеуде әртүрлі түйіндердің бағасын дәлірек анықтауға болады, ал іздеу жақсы тәртіпте орындалғандықтан тез аяқталады. Мысалы, альфа-бета кесу ең тиімді, егер ол ең жақсы қадамдарды бірінші іздесе. Тармақталу факторы неғұрлым жоғары болса, қайта-қайта кеңейтілген күйлерге келетін шығын соғұрлым төмен болады. Итеративті тереңдету A* – бұл ең жақсы бірінші іздеу, ол A* алгоритмінде есептелгендей "f" мәндеріне негізделген итеративті тереңдетуді жүзеге асырады.

Екі бағыттағы IDDFS

IDDFS-тің екі бағытты теңдесі бар, ол екі іздеуді кезекпен орындайды: біреуі бастапқы түйінен басталып, бағытталған қабырғалар бойынша жүреді, ал екіншісі мақсатты түйінен басталып, қарама-қарсы бағыттағы бағытталған қабырғалар бойынша (қабырғаның бастапқы түйінінен қабырғаның соңғы түйініне дейін) жүреді. Іздеу процесі бастапқы түйін мен мақсатты түйіннің бірдей екенін тексереді, егер солай болса, бір ғана бастапқы/мақсатты түйінен тұратын тривиальды жолды қайтарады. Әйтпесе, алға іздеу процесі бастапқы түйіннің (жинақ ) бала түйіндерін кеңейтеді, артқа іздеу процесі мақсатты түйіннің (жинақ ) ата-ана түйіндерін кеңейтеді және олардың қиылысы бар-жоғы тексеріледі. Егер қиылыс болса, ең қысқа жол табылады. Әйтпесе, іздеу тереңдігі артырылып, есептеу қайтадан орындалады. Алгоритмнің бір шектеуі – жұп емес, тақ саны қабырғалардан тұратын ең қысқа жол табылмайды. Мысалы, ең қысқа жол болсын. Тереңдік қабырғалар бойынша екі қадамға жеткенде, алға іздеуден бастап , артқа іздеуден бастап жүреді. Іздеу шекаралары бір-бірінен өтіп кетеді, нәтижесінде жұп саны қабырғалардан тұратын ең оңтайлы емес жол қайтарылады. Бұл төмендегі суреттерде көрсетілген: кеңістіктік жайлылығына келетін болсақ, алгоритм екі іздеу процесінің кездесетін ортаңғы түйіннің бар екенін анықтау үшін алға іздеу процесіндегі ең терең түйіндерді белгілейді. Екі бағытты IDDFS-ті қолданудың қосымша қиындығы – егер бастапқы және мақсатты түйіндер әртүрлі күшті байланысқан компоненттерде болса, мысалы, егер бастапқы түйінен шығатын және мақсатты түйінге кіретін қабырға болмаса, іздеу ешқашан аяқталмайды.