You've already forked ui-cheats
lekcia 3
This commit is contained in:
55
README.md
55
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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user