stup od kritria optimality l l A asto












- Slides: 12
Ústup od kritéria optimality l l A* často strávi veľa času rozvíjaním ciest, ktoré majú približne rovnakú cenu – z toho vyplývajú otázky: Chceme viac minimalizovať hľadanie než minimalizovať cenu riešenia. Je vtedy f = g + h vhodná voľba? Možno zvýšiť rýchlosť hľadania za cenu zníženia nároku na kvalitu riešenia? Ako ovplyvňuje hľadanie heuristika, ktorá nie je prípustná?
Váhovanie g a h l l Úlohou funkcie g je pridávať do hľadania princíp hľadania do šírky Úlohou h je odhadnúť vzdialenosť od koncového vrcholu, ale nemusí to byť vždy dobrý odhad Uvažujme funkciu f(n) = (1 – w) g(n) + w h(n) Pre w = 0, 1/2 a 1 to zodpovedá stratégii rovnomernej ceny, A* a BF*. Zmenou parametra w medzi 0 a 1 môžeme dosiahnuť vhodný pomer medzi konzervativizmom a radikalizmom, podľa toho, ako dôverujeme h.
Parameter w l l l Ak h je prípustné, dá sa ukázať, že aj f je prípustné pre 0 ≤ w < ½, ale mimo tohto intervalu môže stratiť prípustnosť, podľa toho, ako ďaleko je h od h* Niektoré zaujímavé výsledky boli dosiahnuté aj v takom prípade, keď ½ < w < 1 Viac experimentov ukazuje, že najlepšie výsledky z hľadiska kvality hľadania dosahuje aj tento vážený algoritmus A* pre w = ½, t. j. pre klasický algoritmus A*
Časová a pamäťová zložitosť Hľadanie do šírky – stupeň vetvenia je b a hĺbka, v ktorej sa nachádza riešenie je d. Potom zložitosť je 1 + b² + b³ +. . . + bd, t. j. O(bd), čiže exponenciálna – (d je hĺbka riešenia) l Pri šachu, ktorý má stupeň vetvenia 35, dosiahne pamäťová zložitosť pri hĺbke 10 už 250. 888 TB, časová 874 rokov. l
Zložitosť hľadania do hĺbky l l Hľadanie do hĺbky – pamäť. zložitosť b * m uzlov Časová je v najhoršom O(bm), ale možno nájde skôr – (m je maximálna hĺbka) Podobnú zložitosť má aj ohraničené hľadanie do hĺbky, problém je určiť ohraničenie. Zovšeobecníme ho na stratégiu cyklicky sa prehlbujúceho hľadania – ktoré vyskúša postupne všetky ohraničenia hĺbky, začne od ohraničenia 1 a bude ho postupne zvyšovať krokom 1.
Zložitosť hľadania do hĺbky II l l l Aj keď opakovane prezeráme niektoré vrcholy, pamäťová ani časová zložitosť príliš nenarastie a ak nepoznáme vhodné ohraničenie hĺbky, tak je toto najvhodnejšia stratégia Zložitosť je (d+1). 1 + d. b + (d-1). b² +. . . + 3. bd-2 + 2. bd-1 + 1. bd uzlov Pre b = 10 a d = 5 je to 123 456 uzlov, pri hľadaní do hĺbky s takýmito parametrami je to 111 uzlov (viacnásobné sa rozvíja malý počet uzlov v malej hĺbke).
Časová a pamäťová zložitosť II Obojsmerné hľadanie – hľadáme riešenie od počiatočného vrcholu k nejakému cieľovému stavu a zároveň postupujeme od nejakého cieľového stavu smerom k počiatočnému stavu - ak sa vygeneruje stav, ktorý je spoločný, našli sme riešenie l Zložitosť je O(bd/2), čo je zlepšenie o polovicu, ale stále je to exponenciálna zložitosť l
Časová a pamäťová zložitosť III l Sumarizácia vlastností neinformovaných procedúr l Aj algoritmus A* má exponenciálnu časovú aj pamäťovú zložitosť, zlý je najmä nedostatok pamäte
IDA* l l Cyklicky sa prehlbujúce hľadanie algoritmom A* Každé opakovanie bude obmedzeným hľadaním do hĺbky – namiesto ohraničenej hĺbky sa pracuje s hraničnou cenou, vygenerovanou algoritmom A*. V jednom opakovaní sa rozvíjajú všetky uzly, ktorých hĺbky nepresiahnu vygenerovanú hraničnú cenu (rozdiel oproti BT globálne, BF lokálne) Algoritmus IDA* je úplný a prípustný. Podobne ako hľadanie do hĺbky, vyžaduje pamäť úmernú dĺžke najdlhšej cesty, ktorú prezerá.
Stratégie cyklického vylepšovania l l l Ak hľadáme cieľový stav a nie cestu, môžeme cyklicky postupovať tak, že vygenerujeme možné riešenie a testujeme, či je riešením problému Môžeme generovať náhodne (algoritmus Britského múzea) alebo úplným prehľadávaním (hrubá sila) – to sú hraničné prípady, medzi nimi sú také, kde sa vynechávajú tie riešenia, ktoré nie sú sľubné Cyklické vylepšovanie vychádza z ľubovoľného stavu a postupne vylepšuje zadanú konfiguráciu, aby sa približovala k cieľovému stavu
Stratégia lokálneho vylepšovania a simulované žíhanie l l l My poznáme horolezecký algoritmus, ktorý je stratégiou lokálnej optimalizácie – má svoje nedostatky, lebo ľahko uviazne v lokálnom minime Prekonať jeho nedostatky dokáže simulované žíhanie – pripúšťa sa aj krok, ktorý zhorší optimalizačné kritérium, čo sa kontroluje parametrom teploty, ktorá sa postupne znižuje – ide o analógiu s chladnutím roztaveného materiálu z fyziky Simulované žíhanie vytvoril fyzik V. Černý z FMFI UK v Bratislave
Genetické algoritmy l l l Cyklicky vylepšujú aj genetické algoritmy, založené na operáciách výberu, kríženia a mutácie. Základným krokom je reprodukcia, ktorej výsledkom je nová populácia, ktorá má rovnaký počet prvkov, ale má vyššie hodnotenie (fitness). Kríženie znamená premiešanie dvoch reťazcov Mutácia znamená náhodnú zmenu v jednom bite reťazca Problémom genetických algoritmov je kedy ich zastaviť