Ústup od kritéria optimality
DESCRIPTION
Ústup od kritéria optimality. 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? - PowerPoint PPT PresentationTRANSCRIPT
Ústup od kritéria optimality
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
Ú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 rovnomer-
nej 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
Ak h je prípustné, dá sa ukázať, že aj f je prípustné pre 0 ≤ w < ½, ale mimo tohto intervalu môže stra-tiť 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² + b³ + ... + bd, t.j. O(bd), čiže exponen-ciálna – (d je hĺbka riešenia)
Pri šachu, ktorý má stupeň vetvenia 35, dosiahne pamäťová zložitosť pri hĺbke 10 už 250.888 TB, ča- sová 874 rokov.
Zložitosť hľadania do hĺbky
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
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 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
Zložitosť je O(bd/2),
čo je zlepšenie o
polovicu, ale stále
je to exponenciál-
na zložitosť
Časová a pamäťová zložitosť III
Sumarizácia vlastností neinformovaných procedúr
Aj algoritmus A* má exponenciálnu časovú aj pa-mäťovú zložitosť, zlý je najmä nedostatok pamäte
IDA*
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, kto-rý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
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
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ší optima-lizač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
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ýsled-kom 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ť