1
0
This commit is contained in:
2025-04-22 20:35:19 +02:00
parent d666246115
commit dad7aa19b8

View File

@@ -49,19 +49,64 @@
# Lekcia 2: Riešenie problémov - vyjadrenie problému
- Vyjadrenie problému v AI (začiatočný stav, množina operátorov, stavový priestor, cieľový test, cena cesty)
- Aaa
- Začiatočný stav - v ňom sa agent nachádza.
- Množina operátorov - opisujú aký stav vznikne vykonaním akcie v danom stave.
- Stavový priestor - množina všetkých dosiahnuteľných stavov zo začiatočného stavu ľubovoľnou postupnosťou akcií.
- Cieľový test:
- Testuje, či sa dosiahol cieľ.
- Predstavuje hodnotenie nejakého stavu alebo hodnotenie cesty v stavovom priestore.
- Môže byť daný:
1. _explicitne_ - ako množina stavov,
2. _implicitne_ - vlastnosťou stavu.
- Cena cesty:
- Súčet cien jednotlivých akcií na ceste.
- Pri viacerých riešeniach daného problému, pomocou ceny cesty nájdeme riešenie, ktoré pozostáva z menšieho počtu alebo lacnejších akcií.
- **cena riešenia** = **cena cesty k riešeniu** _+_ **cena hľadania**
- Základné problémy pre algoritmy hľadania riešenia
- Aaa
- Hľadanie riešenia je prístup, pri ktorom nevychádzame z algoritmu riešenia problému. Vychádzame z algoritmu ako riešenie hľadať.
- Problém **nie** je algoritmicky riešiteľný pre neefektívnosť alebo preto, že algoritmus nepoznáme.
- Neinformatívne hľadanie - prehľadávanie do šírky, stratégia rovnomernej ceny
- Aaa
- Prehľadávanie do šírky:
- Rozvinie sa koreňový uzol, potom všetky uzly vzniknuté jeho rozvitím, potom sa rozvijú všetky ich nasledovníci atď...
- V strome hľadania sa expandujú všetky uzly v hĺbke `d` skôr ako sa rozvijú uzly v hĺbke `d + 1`.
- Patrí medzi systematické stratégie.
- Nevynechá ani jeden uzol.
- Žiadny uzol sa nevyberie dvakrát.
- Ak riešenie existuje, pri hľadaní sa **určite nájde**, t.j. stratégia je **úplná**.
- Pri hľadaní sa nájde _najplytkejšie_ riešenie.
- Stratégia rovnomernej ceny (_uniform - cost search_):
- Na expanziu sa vyberie vždy uzol, ktorý je na najlacnejšej ceste.
- Optimálne riešenie sa nájde vždy, ak sa pri postupe nezníži, napr. súčet cien aplikácie operátov a pod.
- Obojsmerné hľadanie
- Aaa
- Môže sa použiť iba keď máme problém, ktorého riešením je cesta a cieľový stav je známy.
- Musí byť splnená podmienka existencie inverzných operátorov.
- Stratégia:
1. Od počiatočného stavu bude hľadanie postupovať vpred smerom k cieľovému stavu (priame hľadanie),
2. Od cieľového stavu bude hľadanie postupovať vzad (inverzné operátory) smerom k počiatočnému stavu (spätné hľadanie),
3. Ak oba procesy vygenerujú ten istý stav, nájde sa cesta spájajúca počiatočný stav s cieľovým.
- Problémy:
1. _Ak sa dajú definovať inverzné operátory, **nie** je ich výpočet zložitejší?_
2. _Ako postupovať aj je viacej cieľových stavov?_
2. Ak sú ciele dané implicitne, je ťažko nájsť predchodcov.
- Prehľadávanie do hĺbky a jeho modifikácie
- Aaa
- V strome hľadania sa najprv expanduje uzol, ktorého hĺbka je **najväčšia**. Keď sa narazí na uzol bez nasledovníkov, dôjde k navracaniu (_back tracking_), teda hľadanie sa vráti k expanzii uzlov na plytších úrovniach.
- Často rýchlejší ako prehľadávanie do šírky.
- Nezaručuje nájdenie riešenia (hlavne pri problémoch) - je **neúplná**.
- Hľadanie sa nemusí orientovať smerom k optimálnemu riešeniu.
- Modifikácie:
- Ohraničené prehľadávanie do hĺbky:
- Zamedzí, aby riešenie uviazlo hlboko v strome.
- Stanoví sa hraničná hĺbka, do ktorej sa bude hľadať.
- Cyklicky sa prehlbujúce hľadanie:
- Postupne vyskúša všetky možné hraničné hĺbky - od najmenšej po najväčšiu.
- Hľadanie do hĺbky s návratom:
- Pri výbere uzla na skúmanie sa generuje iba jeden jeho nasledovník, ktorá ak nie je listový uzol sa ďalej skúma, inak sa vráti k najbližšiemu nerozvitému uzlu.
- Šetrí pamäť a nevygeneruje uzly napravo od cesty.
- Nemožno použiť žiadnu doplňujúcu informáciu na výber najlepšieho nasledovníka, lebo sa vždy vygeneruje iba jeden.
---