Neinformované procedúry Horolezecký algoritmus Algoritmus lokálnej optimalizácie, pretože postupujeme vždy v smere najväčšieho zlepšenia – v grafovej reči algoritmus expanduje vrchol, vyberie najlepšieho syna, ale nezachová linku na otca alebo ostatných synov – je to nevratná stratégia - najčastejšie skončí v lokálnom minime – ostatné stratégie sú vratné Hľadanie do hĺbky Hľadanie s návratom (back-tracking) Hľadanie do šírky Neinformované hľadanie v A/ALEBO grafoch
Hľadanie do hĺbky - LIFO Na expandovanie sa vyberá vrchol, ktorý má najväčšiu hĺbku Aby bola jednoznačne riešená hĺbka, zoznam OTVOR je organizovaný ako zásobník Ide o vratnú stratégiu – nemusí sa vrátiť Obyčajne sa pridáva ohraničenie hĺbky – ktoré spôsobí návrat a výber ďalšieho vrcholu, rovnako sa vracia vtedy, ak je vrchol vyhodnotený ako slepá ulica (angl. dead-end) ZATVOR – vždy obsahuje tzv. traverzný strom
Hľadanie do hĺbky - algoritmus 1. Daj vrchol s do OTVOR 2. Ak OTVOR je prázdny, skonči s neúspechom 3. Zober najvrchnejší vrchol z OTVOR a daj ho do ZATVOR. Nazvi ho n. 4. Ak hĺbka n sa rovná ohraničeniu hĺbky, vyčisti ZATVOR a choď na 2 5. Expanduj n a daj jeho synov do OTVOR spolu so smerníkom na n. 6. Ak niektorý zo synov je koncový vrchol, skonči s riešením, ktoré získaš pomocou smerníkov 7. Ak niektorý zo synov je slepá ulica, zober ho z OTVOR a vyčisti ZATVOR 8. Choď na 2
Príklad 4 dám
Príslušný traverzný strom V každom momente obsahuje ZATVOR cestu od s do expandovaného vrcholu Na grafoch sa uplatňuje striktne LIFO
Hľadanie s návratom 1. Daj vrchol s do OTVOR 2. Ak OTVOR je prázdny, skonči s neúspechom 3. Zober najvrchnejší vrchol z OTVOR a nazvi ho n. 4. Ak hĺbka n sa rovná ohraničeniu hĺbky alebo ak všetky hrany z n už boli preskúmané, zober n z OTVOR a choď na 2 5. Generuj nasledovníka n (pozdĺž nepreskúmanej hrany) a nazvi ho n´. Daj ho do OTVOR spolu so smerníkom na n. Označ hranu (n,n´) ako preskúmanú. 6. Ak n´ je koncový vrchol, skonči s riešením, ktoré získaš pomocou smerníkov 7. Ak n´ je slepá ulica, zober ho z OTVOR 8. Choď na 2
Hľadanie s návratom II Jeho výhodou je pamäťová úspornosť Variácia sa volá back-marking – návrat o viac úrovní naraz (príklad 4 dám) Pri optimalizačných problémoch nájdené riešenie umožňuje vylúčiť zbytočne dlhé vetvy (príklad minim. sumy stĺpcov)
Hľadanie do šírky - FIFO Vyberá na expandovanie vrchol, ktorý je najbližšie k počiatočnému vrcholu Zoznam OTVOR je organizovaný ako rad Na rozdiel od hľadania do hĺbky je garantované, že hľadanie do šírky nájde riešenie, ak existuje a dokonca nájde najkratšie riešenie Cenou za to je to, že namiesto traverznej cesty treba držať v pamäti celú časť implicitného prehľadávacieho grafu – to ľudia nikdy nerobia
Prehľadávanie do šírky II Hľadanie do šírky je výhodné, ak riešenie je dosť plytko →
Stratégia rovnomernej ceny Pri optimalizačných problémoch sa používa jeho modifikácia – stratégia rovnomernej ceny – na expandovanie sa vyberá vrchol, ktorý je na ceste s najmenšou cenou k počiatočnému vrcholu
Neinformované hľadanie v PR Hľadanie do hĺbky a do šírky sa dajú ľahko adaptovať na hľadanie v A/ALEBO grafoch, no test na ukončenie nie je vlastnosťou jedného vrcholu Po každom kroku generovania sa uplatňuje označovacia procedúra. Vrcholy označené ako „neriešiteľné“ sa ďalšej neuvažujú. Tieto procedúry budeme rozoberať neskôr ako špeciálny prípad procedúr s heuristikami, kde heuristika bude potlačená´, teraz sa sústredíme teraz len na hľadanie s návratom
Hľadanie s návratom na A/ALEBO grafoch