Mesterséges intelligencia - 8. előadásCselekvéstervezés¶
Cselekvéstervezési feladatok¶
- Logisztikai hálózatok, műholdak, szerelési művelettervezés
- cselekvéssorozat adott kiindulási állapotból célállapotba, elérhető akciók sorozatának végrehajtásával
- speciális feladatoknak már van dedikált megoldásuk
Feltevések¶
- csak determinisztikus cselekvéstervezés (környezet tökéletesen ismert és megfigyelhető)
- tervkészítés offline, végrehajtás csukott szemmel
- zárt világ feltevés → a világ véges, teljes egészében megismerhető
Tervezési feladat leírása¶
-
világ leírása: kezdeti állapot (teljesen specifikált), célállapot (teljesen vagy részben specifikált)
- elsőrendű logikával → atomi elsőrendű logikai kifejezések kojunkcijával
- pl: airplane(Plane1) ∧ at(Plane1, BUD) ∧ ...
- nem megengedett: változók (at(Plane2, x)), függvény (Plane3, BasisOf(Plane3)), diszjunkció (∨)
- célfeltétel: részlegesen definiált, ponált és negált literálok is megengedettek
- célállapot = tartalmazza a célfetétel összes ponált literálját, és nem tartalmazza egyik negált literálját se!
-
lehetséges akciók: cselekvés sémák (adott helyzetben mit csinálhatunk, milyen hatása lesz)
-
cselekvés séma: akció neve, paraméter lista, előfeltételek, hatások
-
pl:
(:action fly :parameters(?p ?s ?d) :precondition (and (airplane ?p) (airport ?s) (airport ?d) (at ?p ?s) (not (=?s ?d))) :effect (and (at ?p ?d) (not (at ?p ?s)))) -
ilyen nyelv pl: PDDL
-
-
feladatpéldány definíciója: entitások, kezdeti állapot és célfeltétel defíniálása
- vannak statikus predikátumok → ami fix, nem változik
- vannak dinamikus predikátumok → amik változnak, pl hogy hol van a repülő vagy teherautó
-
terv
- cselekvések (részben) rendezett halmaza

Tervkészítő algoritmusok¶
Megközelítések¶
- szituációkalkulus → elsőrendű logika kiterjesztése szituáció tényezőkkel, következés relációt is felveszünk, már elavult
- keresés az állapottérben → csomópont = világállapot, egymást követő állapotok = egy terv
- keresés a tervtérben → csomópont = egy részleges terv, egy következő állapot = egy tovább finomított terv
- egyéb technikák → gráf-alapú tervkészítés, fordítás kielégíthetőségi feladat (SAT)
Keresés állapottérben - előreláncoló keresés¶
- ötlet:
- 1 csomópont = 1 világállapot
- gyökér = kezdeti állapot
- egy állapotban valamilyen cselekvés sémát alkalmazunk → így jutunk következő állapotba
- addig ismételjük, amíg meg nem érkezünk egy célállapotba
- terv = egy sorozat a gyökérből egy megtalált célállapotig
- milyen keresést használjunk?
- tetszőleges fakeresés használható
- szélességi és legjobbat-előszőr → exponenciális lesz :(
- mélységi, mohó, IDA* → memóriaigény lineáris, teljesek :)
- milyen heurisztika alapján?
- kézenfekvő ötletek: kiegészítetlen célfeltételek száma → NEM jó: alulbecsülhet (egy cselekvés törli a másik hatását), túlbecsülhet (egy cselekvés több feltételt is előállíthat)
- FastForward heurisztika (FF)→ elfogadható (pl A*-hoz)
- minden csomópontban oldjunk meg egy egyszerűsített cselekvéstervezési feladatot
- egyszerűsítés = csak a számunkra kedvező hatást nézzük → At() ne teljesüljön helyett NotAt() teljesüljön! (nincs negatív következmény)
- jóhír: mindig alábecsüli!
Keresés a tervek terében¶
- ötlet:
- állapotteres csúnya redundanciákat tudott tartalmazni!
- cselekvések midnen sorrendjét végigpróbáltuk
- 1 csomópont = 1 részleges terv
- gyökér = üres terv
- ezt finomítjuk, míg teljesen specifikált tervet nem kapunk
- állapotteres csúnya redundanciákat tudott tartalmazni!
- részben rendezett tervkészítő
- cselekvések, változók értékének lekötése, cselekvés-párok közötti sorrendiség korlát
- sorrend → folytonos nyíl
- okozati kapcsolat → szaggatott nyíl (előállította a következő feltételét)
- okozati kapcsolatból sorrendi korlát is következik!
- Hiányosság:
- kielégítetlen előfeltétel → ezeket kell megszüntetnünk adott cselekvés megtalálásával (valami olyannal ami biztosítja ezen előfeltételt, és leköt bizonyos változókat)
- ezek közt okozati kapcsolat lesz!
- okozati kapcsolat fenyegetése → ha egy a cselekvés biztosítja b cselekvés p előfeltételét, ÉS egy másik c cselekvés képes törölni p-t → fenyegetés megszűntetése új korlát által
- precedencia: b → c, azaz biztosítjuk, hogy a fenyegető cselekvés később fog megtörténni, mint az a cselekvés, aminek előfeltételét veszélyezteti
- precedencia: c → a, azaz biztosítjuk, hogy a fenyegető cselekvés előbb fog megtörténni, mint az a cselekvés ami a veszélyeztetett előfeltételt biztosítja
- változók lekötése → lekötjük úgy a változókat,hogy megszűnjön a veszély
- kielégítetlen előfeltétel → ezeket kell megszüntetnünk adott cselekvés megtalálásával (valami olyannal ami biztosítja ezen előfeltételt, és leköt bizonyos változókat)
- tervtérbeli keresés (PSP)
Heurisztikák a tervek terében¶
- nehezebb jó heurisztikát találni, mint állapottérben
- lehetséges heurisztika: nyitott előfeltételek száma
- új operátor több előfeltételt kielégíthet (felülbecslés, mert mást el is ronthat)
- interferencia különböző operátorok hatásai között (alulbecslés, mert segíthetik is egymást)
Tervtér vs állapottér → melyik hatékonyabb?¶
- kevesebb redundancia (tervtér) vs jobb heurisztikák (állapottér)
- állapotteres vezet, a jobb heurisztikák miatt
Cselekvéstervezés korlátai¶
- optimális tervek kellenének → bonyolult költségfüggvények (nem alkalmasak az eddig nézettek, pl numerikus képességeik sincsenek)
- legnépszerűbb cselekvéstervezők még a legrövidebb tervet se mindig találják meg!
- számítási hatékonyság → kénytelenek leszünk dedikált megoldót készíteni :(
- tervkészítés bizonytalan környezetben → eddig bemutatott dolgok ilyet NEM kezeltek!
