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

Ústup od kritéria optimality

Jan 16, 2016

Download

Documents

faunus

Ú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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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ť