1 / 12

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

faunus
Download Presentation

Ústup od kritéria optimality

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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*

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

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

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

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

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

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

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

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

  12. 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ť

More Related