Ústup od kritéria optimality

12
Ú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á?

Upload: faunus

Post on 16-Jan-2016

61 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Ústup od kritéria optimality

Ú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á?

Page 2: Ústup od kritéria optimality

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.

Page 3: Ústup od kritéria optimality

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*

Page 4: Ústup od kritéria optimality

Č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.

Page 5: Ústup od kritéria optimality

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.

Page 6: Ústup od kritéria optimality

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).

Page 7: Ústup od kritéria optimality

Č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ť

Page 8: Ústup od kritéria optimality

Č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

Page 9: Ústup od kritéria optimality

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á.

Page 10: Ústup od kritéria optimality

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

Page 11: Ústup od kritéria optimality

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

Page 12: Ústup od kritéria optimality

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ť