diff --git a/README.md b/README.md index 45f132d..1eb5ef7 100644 --- a/README.md +++ b/README.md @@ -113,19 +113,64 @@ # Lekcia 3: Heuristické prehľadávanie, Genetické algoritmy, Hry ako problém hľadania - Lačné hľadanie - - Aaa + - Najlepší uzol je uzol s minimálnou odhadnutou cenou dosiahnutia cieľa. + - Podobá sa hľadaniu do hĺbky. + - Je **neúplné** a **neoptimalizované** riešenie. - Algoritmus A* - - Aaa + - Stratégia rovnomernej ceny je **úplná** a **optimalizuje cestu**, keďže minimalizuje cenu cesty `g(u)` zo začiatočného uzla do uzla `u`. + - Je _neefektívna_, keďže nevyužíva heuristickú informáciu o vzdialenosti k cieľu. + - Najviac výhod zachováme, keď tieto stratégie skombinujeme do novej s heuristickou funkciou `f(u) = g(u) + h(u)`. + - `f(u)` - odhad ceny najlacnejšej cesty vedúcej cez uzol `u`. + - Je hľadanie najskôr najlepší s heuristickou funkciou `f(u)` a prípustnou heuristikou `h(u)`. + - Nedostatkom je _exponenciálna_ časová a pamäťová zložitosť. - Heuristiky zmenšujúce priestor stavov - - Aaa + - Heuristické informácie môžeme použiť aj na orezanie stavového priestoru a ten prehľadať jednoduchším (_slepým_) algoritmom. + - Stavový priestor je možné zmenšiť tak, že heuristické informácie zahrnieme do podmienok aplikovateľnosti akcií (pravidiel). + - Nasleduje stavový priestor (červené spojnice) orezaný pomocou heuristík z predchádzajúceho obrázku. + - Napokon je uvedený strom hľadania generovaný z orezaného stavového priestoru prehľadávaním do šírky. - Genetické algoritmy - - Aaa + - Vychádzajú z myšlienok Darwinovej teórie evolúcie. + - Evolúcia k optimálnym riešeniam prebieha v mnohých generáciách celých populácií riešení pomocou prirodzeného výberu. + - Neúspešné riešenia vymierajú, úspešné prežívajú a množia sa. + - Hybnou silou evolúcie je _kríženie_ (výmena "genetickej" informácie medzi riešeniami) a mutácia. + - Každý stav označujeme ako **chromozóm** - binárny reťazec `x` dĺžky `N`. + - Pracujeme s populáciou `P` obsahujúcou `M` chromozómov. + - Každému chromozómu x sa priradí hodnota funkcie úspešnosti fitnes `f(x)`. + - Hľadáme globálne maximum fitnes. + - Medzi chromozómami prebieha proces reprodukcie (nová populácia obsahujúca rovnaký počet chromozómov ako pôvodná populácia). + - Časti reprodukcie: + 1. Výber - do procesu reprodukcie vstupujú dvojice chromozómov. + 2. Kríženie - vybrané chromozómy si vymenia rovnako dlhé podúseky svojich binárnych reťazcov. + 3. Mutovanie - chromozómy sa podrobia mutácii (preklopia sa náhodne vybrané bity z ich reťazcov). + - Prehľadávajú mnoho častí stavového priestoru daného problému. + - Dajú sa použiť pre riešenie ťažko riešiteľných problémov. + - Vždy poskytnú nejaké riešenie. + - Nevýhody: + - Nedajú vždy optimálne riešenie. + - Potreba nastavenia množstva parametrov. - Herné problémy, algoritmus Min-Max - - Aaa + - Herné problémy: + - Jedná o hry s dvoma hráčmi (agent rieši úlohu z pohľadu jedného hráča), prítomnosť protihráča vnáša do problému. + - Hľadanie má neurčitosť spôsobenú nedostatkom času. + - Potrebuje zahrnúť čo najviac heuristických znalostí ako do generátora tak aj do testera. + - Poskytujú dobre definovaný problém. + - Jednoduché rozpoznanie úspechu resp. neúspechu. + - Problém sa dá opísať pomerne jednoduchými pravidlami. + - Algoritmus Min-Max: + - Určuje najlepšiu stratégiu pre hráča _MAX_. + - Vychádza z predpokladu, že súper vždy zahrá najhorší možný ťah pre _MAX_. + - Postup: + 1. Preskúma všetky stavy, vygeneruje celý strom hľadania až po koncové stavy. + 2. Rozhodne sa, ktoré postavenie je najlepšie. + 3. Vykoná sa ťah vedúci do najlepšieho postavenia. + - Problémy: + - Pri masívnych herných stromoch sa musí navšíviť veľa uzlov. + - Predpokladá, že je dosť času prezrieť strom hľadania až k cieľovým uzlom (pre väčšinu hier nereálne). + - Prezeranie je potrebné useknúť skôr než v cieľovom stave a listy následne vyhodnotiť nie pomocou bodovacej ale heuristickej vyhodnocovacej funkcie. ---