Čtení: 45 minHodnotí se: test 3 (20 b), zkouška

5 Automatické plánování

Po přečtení umíš
  • určit aplikovatelné akce a spočítat stav po akci
  • simulovat dopředné a zpětné plánování
  • vyřešit kazy v plánování v prostoru plánů
  • sestavit plánovací graf a poznat mutexy

5.1 Ukázka: letecká přeprava

Stav je množina platných faktů, například At(C1, SFO). Akce má předpoklady a efekty. Plán je posloupnost akcí, která převede počáteční stav do stavu splňujícího cíl.

Definice 5.2 (Aplikace akce)

Akce aa je aplikovatelná ve stavu ss, pokud precond+(a)⊆sprecond^+(a) \subseteq s a precond−(a)∩s=∅precond^-(a) \cap s = \emptyset. Výsledek je

γ(s,a)=(s∖effect−(a))∪effect+(a).\gamma(s, a) = (s \setminus effect^-(a)) \cup effect^+(a).

Platí uzavřený svět: co ve stavu není, neplatí.

Příklad 5.3 (Plán z cvičení)

Start: At(C1, SFO), At(C2, JFK), At(P1, SFO), At(P2, JFK). Cíl: At(C1, JFK), At(C2, SFO). Operátory Load, Unload a Fly. Sestav plán.

Řešení
  1. Load(C1, P1, SFO)
  2. Load(C2, P2, JFK)
  3. Fly(P1, SFO, JFK)
  4. Fly(P2, JFK, SFO)
  5. Unload(C1, P1, JFK)
  6. Unload(C2, P2, SFO)

Dvojice akcí jsou nezávislé, takže jako paralelní plán má délku 3.

5.2 Dopředné a zpětné plánování

Dopředné začíná ve startu a zkouší aplikovatelné akce. Větvící faktor bývá velký a mnoho akcí je k ničemu.

Zpětné začíná v cíli a bere jen relevantní akce: akce musí splnit aspoň jeden literál cíle a žádný nesmí smazat. Inverzní aplikace je

γ−1(g,a)=(g∖effect+(a))∪precond(a).\gamma^{-1}(g, a) = (g \setminus effect^+(a)) \cup precond(a).

5.3 Plánování v prostoru plánů

Místo stavů se upravuje částečný plán: akce, precedence, vazby proměnných a kauzální podmínky. Algoritmus opravuje kazy.

5.4 Plánovací graf

Definice 5.4 (Plánovací graf)

Střídají se stavové vrstvy PiP_i a akční vrstvy AiA_i. Vrstva je sjednocením všeho, co může platit. No-op akce přenáší atom do další vrstvy.

Definice 5.5 (Mutex)

Dvě akce jsou ve vzájemném vyloučení, pokud jedna maže předpoklad nebo efekt druhé, nebo mají předpoklady v mutexu. Dva atomy jsou v mutexu, pokud všechny dvojice akcí, které je produkují, jsou v mutexu.

Vrstvy monotónně rostou a mutexy ubývají. Graphplan rozšiřuje graf, dokud cíl není v poslední vrstvě bez mutexů, a pak zpětně extrahuje plán. Neúspěšné cíle si pamatuje jako nogoody. Expanze je polynomiální.

5.5 Další přístupy

5.6 Kvíz

Kvíz

1. Ve stavu At(P1, JFK) je akce Fly(P1, JFK, SFO):
2. Proč zpětné plánování nepoužije akci, která maže literál cíle?
3. Co je léčba hrozby? Může být správně více možností, ale také žádná.
4. Co se děje v plánovacím grafu s rostoucí vrstvou?
5. Jakou délku má paralelní plán v příkladu s Load, Fly a Unload?
6. K čemu jsou v plánovacím grafu no-op akce?
Ukázat řešeníOšetřují rámec: atom, který nikdo nezmění, přejde do další vrstvy. Díky nim jsou i atomy součástí mutexů.

5.7 Příklady na procvičení

Cvičení 5.6

Vyjmenuj aplikovatelné akce ve stavu At(P1, JFK), At(P2, SFO) bez nákladu, pokud jsou jediná letiště JFK a SFO.

Řešení

Jen lety: Fly(P1, JFK, SFO), Fly(P1, JFK, JFK), Fly(P2, SFO, JFK), Fly(P2, SFO, SFO). Zadání nezakazuje let na stejné letiště.

5.8 Tahák

Tahák
  • Aplikovatelná: precond+⊆sprecond^+ \subseteq s, precond−∩s=∅precond^- \cap s = \emptyset.
  • γ(s,a)=(s−e−)∪e+\gamma(s, a) = (s - e^-) \cup e^+.
  • Zpětně: relevantní akce, γ−1(g,a)=(g−e+)∪pre\gamma^{-1}(g, a) = (g - e^+) \cup pre.
  • PSP: otevřený cíl, hrozba a její tři léčby.
  • Graf: střídání vrstev, no-op, mutexy, monotonie.
  • SATPlan: časová expanze.

Zdroje

  • UMI přednáška 6: jazyk strany 5, operátory 6–7, aplikovatelnost 8–9, dopředné a zpětné plánování 14–18, prostor plánů 20–34
  • UMI přednáška 7: plánovací graf strany 8, paralelní plány 9, mutexy 11–12, expanze a extrakce 14–17, SAT 18–21, HTN 25–26
  • UMI seminář 4: automatické plánování