Plánování: reprezentace problému 15. března 2018 1 Úvod 2 Konceptuální model 3 Množinová reprezentace 4 Klasická reprezentace Zdroj: Roman Barták, přednáška Plánování a rozvrhování, Matematicko-fyzikální fakulta, Karlova univerzita v Praze, 2014. http: // kti. ms. mff. cuni. cz/ ~bartak/ planovani
Plánování: příklad Plán: zvedni(c) polož_na(c,stůl) zvedni(b) polož_na(b,d) zvedni(c) polož_na(c,b) Hana Rudová, FI MU IV126: Plánování: reprezentace problému 2 15. března 2018
Plánování v kostce Vstup: počáteční (současný) stav světa popis akcí schopných měnit stav světa požadovaný stav světa Výstup: seznam akcí (plán) Hana Rudová, FI MU IV126: Plánování: reprezentace problému 3 15. března 2018
Plánování v kostce Stavové proměnné x {a, b, c}, y {a, b}, z {a, b, c} Počáteční stav {x a, y a, z a} Cílový stav {x c, z b} Akce a.k.a. operátory a 1 : a 2 :... Problém x a, y a x a, z c 3 4 y := b, z := c z := b nalézt posloupnost akcí, které transformují počáteční stav na stav, který je konzistentní s cílovým stavem účelová funkce: součet ceny akcí Hana Rudová, FI MU IV126: Plánování: reprezentace problému 4 15. března 2018
Plánování v kostce: STRIPS plánování Všechny proměnné mají doménu {T, F} V podmínce akce a v cílovém stavu pouze v T Notace a : x T, y T zapsaná jako 5 w := F, y := F, z := T precond(a) = {x, y}, effects + = {z}, effects = {w, y}, cost(a) = 5 Příklad: zvedneme ležící kostku nahoru B precond(lezi-b) = {}, effects + ={nahore-b}, effects = {lezi-b} Hana Rudová, FI MU IV126: Plánování: reprezentace problému 5 15. března 2018
Plánování v kostce: temporální plánování Rozdíly od klasického plánování akce mají dobu trvání řešení nejsou posloupnosti ale rozvrhy akcí akce se mohou překrývat účelová fukce typicky minimalizace makespanu makespan = čas dokončení všech akcí akce mají tři množiny předpokladů at start, over all, at end akce mají dvě množiny důsledků at start, at end Hana Rudová, FI MU IV126: Plánování: reprezentace problému 6 15. března 2018
Plánování v kostce: temporální plánování Stavové proměnné x {a, b, c}, y {a, b}, z {a, b, c} Počáteční stav {x a, y a, z a} Cílový stav {x c, z b} Akce zabírají časový úsek a 1 :... x x at start a, x over all b, y at start at start at end at end := b, x := a, z := c Problém nalézt rozvrh akcí, které transformují počáteční stav na stav, který je konzistentní s cílovým stavem účelová funkce: minimalizace makespanu rozvrhu Hana Rudová, FI MU IV126: Plánování: reprezentace problému 7 15. března 2018 a 10
Plánování a rozvrhování Plánování (planning) rozhodování, jaké akce jsou potřeba pro dosažení daných cílů téma umělé inteligence složitost často horší než NP-c (obecně nerozhodnutelné) Rozvrhování (scheduling) rozhodování, jak zpracovat dané akce použitím omezených zdrojů a času téma operačního výzkumu složitost typicky NP-c Hana Rudová, FI MU IV126: Plánování: reprezentace problému 8 15. března 2018
Deep Space 1 Start: 24. října 1998 Cíl: Borrelliova kometa Testování 12 nových technologií autonomní vzdálený agent plánuje, provádí a monitoruje akce kosmické lodi na základě obecných příkazů operátora tři zkušební scénáře 12 hodin nízké autonomie (provádění a monitorování) 6 dní vysoké autonomie (snímání kamerou, simulace poruch) 2 dny vysoké autonomie (udržení směru) pozor na backtracking! pozor na deadlock v plánu! Hana Rudová, FI MU IV126: Plánování: reprezentace problému 9 15. března 2018
Plánování: obsah Klasické plánování Konceptuální model Reprezentace problému Plánovací algoritmy plánování se stavovým prostorem plánování s prostorem plánů Hana Rudová, FI MU IV126: Plánování: reprezentace problému 10 15. března 2018
Formalizace: konceptuální model Plánování se zabývá volbou a organizací akcí, které mění stav systému Systém Σ modelující stavy a přechody: množina stavů S (rekurzivně spočetná) množina akcí A (rekurzivně spočetná) plánovač kontroluje akce! no-op (prázná akce) množina událostí E (rekurzivě spočetná) událost mimo kontrolu plánovače! neutrální událost ε přechodová funkce γ : S A E P(S) někdy se akce a události aplikují odděleně γ : S (A E) P(S) Hana Rudová, FI MU IV126: Plánování: reprezentace problému 11 15. března 2018
Cíle plánování Cílem plánování je zjistit, jaké akce a na které stavy se mají aplikovat, abychom za dané situace dosáhli požadovaných cílů. Co je cílem plánování? cílový stav nebo množina cílových stavů splnění dané podmínky nad posloupností stavů, přes které systém prochází např. stavy, kterým se vyhnout, nebo stavy, které se musí navštívit optimalizace dané objektivní funkce nad posloupností stavů např. maximum nebo součet ohodnocení stavů Hana Rudová, FI MU IV126: Plánování: reprezentace problému 12 15. března 2018
Příklad Σ = (S, A, E, γ) S = {s 0,..., s 5 } E = {} resp. {ε} A = {move1, move2, put, take, load, unload} γ: obrázek počáteční stav: s 0 cíl: s 5 Hana Rudová, FI MU IV126: Plánování: reprezentace problému 13 15. března 2018
Předpoklady: zjednodušení modelu Systém je konečný Systém je plně pozorovatelný máme úplné informace o stavu systému Systém je deterministický s S u (A E) : γ(s, u) 1 Systém je statický množina událostí je prázdná, E = Cíle jsou omezené cílem je dosažení některého stavu z množiny cílových stavů Plány jsou sekvenční plánem je úplně uspořádaná posloupnost akcí Čas je implicitní akce i události jsou instantní (okamžité, tj. nemají žádné trvání) Plánujeme offline stav systému se nemění v průběhu plánování Hana Rudová, FI MU IV126: Plánování: reprezentace problému 14 15. března 2018
Klasické plánování (STRIPS plánování) Pracujeme s deterministickým, statickým, konečným a plně pozorovatelným stavovým modelem s omezenými cíli a implicitním časem Σ = (S, A, γ). Plánovací problém P = (Σ, s 0, g): s 0 je počáteční stav g charakterizuje cílové stavy Řešením plánovacího problému P je posloupnost akcí a 1, a 2,..., a k odpovídající posloupnosti stavů s 0, s 1,..., s k takové, že 1 s i = γ(s i 1, a i ), 2 s k splňuje g Hana Rudová, FI MU IV126: Plánování: reprezentace problému 15 15. března 2018
Zjednodušení? Plánování ve zjednodušeném modelu je pouhé hledání cesty v grafu. Je to opravdu tak jednoduché? 5 míst, 3 hromady na každém místě, 100 kontejnerů, 3 roboti 10 277 stavů, tj. 10 190 krát více než jsou největší odhady počtu částic ve vesmíru Co tedy potřebujeme? Jak tedy reprezentovat stavy a akce tak, aby nebylo třeba vyjmenovat množiny A a S? nemůžeme přímo pracovat s 10 277 stavy... Jak efektivně hledat řešení plánovacího problému? Jak najít cestu v grafu s 10 277 uzly? Hana Rudová, FI MU IV126: Plánování: reprezentace problému 16 15. března 2018
Klasické plánování: množinová reprezentace Stav systému je popsán množinou výroků např. {onground, at2} Každá akce je syntaktický výraz specifikující: jaké výroky musí patřit do stavu, aby na něj byla akce aplikovatelná např. take: {onground} jaké výroky akce přidá nebo smaže, aby vytvořila nový stav např. take: {onground}, {holding} + Hana Rudová, FI MU IV126: Plánování: reprezentace problému 17 15. března 2018
Množinová reprezentace: plánovací doména Nechť L = {p 1,..., p n } je konečná množina výrokových symbolů (jazyk). Plánovací doména Σ nad L je trojice (S, A, γ): S P(L), tj. stav s je podmnožina L popisující, jaké výroky platí pokud p s, potom p ve stavu s platí pokud p s, potom p ve stavu s neplatí Akce a A je trojice podmnožin L a = (precond(a), effects (a), effects + (a)) effects (a) effects + (a) = akce a je použitelná na stav s, pokud precond(a) s Přechodová funkce γ: γ(s, a) = (s effects (a)) effects + (a), je-li a použitelná na s Hana Rudová, FI MU IV126: Plánování: reprezentace problému 18 15. března 2018
Množinová reprezentace: plánovací problém Plánovací problém P je trojice (Σ, s 0, g): Σ = (S, A, γ) je plánovací doména nad L s 0 je počáteční stav, s 0 S g L je množina cílových výroků S g = {s S g s} je množina cílových stavů Plán π je posloupnost akcí a 1, a 2,..., a k délka plánu π je k = π stav produkovaný plánem π (zobecnění funkce γ) γ(s, π) = s, je-li k = 0 (plán π je prázdný) γ(s, π) = γ(γ(s, a 1 ), a 2,..., a k ), je-li k > 0 a a 1 je použitelná na s γ(s, π) nedefinováno v ostatních případech Plán π je řešením P právě když g γ(s 0, π) redundantní řešení: obsahuje vlastní podposloupnost, která je také řešením P minimální řešení: neexistuje řešení P s kratší délkou Hana Rudová, FI MU IV126: Plánování: reprezentace problému 19 15. března 2018
Množinová reprezentace: příklad L = {onground, onrobot, holding, at1, at2} s 0 = {onground, at2} g = {onrobot} load = ( {holding, at1}, {holding}, {onrobot}) take, move1, load, move2 je plán, ale není minimální (není nutné move2, v g není podmínka na location) Hana Rudová, FI MU IV126: Plánování: reprezentace problému 20 15. března 2018
Množinová reprezentace: vlastnosti Srozumitelnost přehlednější než výčet stavů Kolik stavů pro n kontejnerů? Výpočty přechodová funkce se snadno realizuje pomocí množinových operací pokud precond(a) s, potom γ(s, a) = (s effects (a)) effects + (a) Expresivita některé množiny výroků neodpovídají žádnému stavu např. {holding, onrobot, at} některé stavové prostory stejně mají obrovskou množinovou reprezentaci Hana Rudová, FI MU IV126: Plánování: reprezentace problému 21 15. března 2018
Klasická reprezentace Klasická reprezentace zobecňuje množinovou reprezentaci směrem k predikátové logice: Přesněji: stavy jsou množiny logických atomů, které jsou v dané interpretaci buď pravda nebo nepravda akce jsou reprezentovány plánovacími operátory, které mění pravdivostní hodnotu těchto atomů L (jazyk) je konečná množina predikátových symbolů a konstant (nemáme funkce!) atom je predikátový symbol s argumenty např. on(c3, c1) můžeme používat proměnné např. on(x,y) Hana Rudová, FI MU IV126: Plánování: reprezentace problému 22 15. března 2018
Klasická reprezentace: reprezentace stavů Stav je množina instanciovaných atomů (bez proměnných). Opět jich je konečně mnoho! Pravdivostní hodnota některých atomů se mění flexibilní atomy (fluent) např. at(r1,loc2) Některé atomy nemění svoji pravdivostní hodnotu s různými stavy neměnné atomy (rigid) např. adjacent(loc1,loc2) Předpoklad uzavřeného světa (closed world assuption): atom, který není ve stavu explicitně uveden, neplatí! Hana Rudová, FI MU IV126: Plánování: reprezentace problému 23 15. března 2018
Klasická reprezentace: plánovací operátory Operátor o je trojice: (name(o), precond(o), effects(o)) name(o): jméno operátoru ve tvaru n(x 1,..., x k ) n: symbol operátoru (jednoznačný pro každý operátor) x 1,..., x k : symboly proměnných (parametry operátoru) musí obsahovat všechny symboly proměnných v operátoru! precond(o): předpoklady literály, které musí být splnitelné, aby šlo operátor použít effects(o): důsledky literály, které se stanou pravdivými aplikací operátoru nesmí být něměnné atomy! Hana Rudová, FI MU IV126: Plánování: reprezentace problému 24 15. března 2018
Klasická reprezentace: akce Akce jsou plně instanciované operátory za proměnné jsou dosazeny konstanty Hana Rudová, FI MU IV126: Plánování: reprezentace problému 25 15. března 2018
Klasická reprezentace: aplikace akce Notace: S + = {pozitivní atomy v S} S = {atomy, jejichž negace je v S} Akce a je použitelná na stav s právě když precond + (a) s precond (a) s = Výsledkem aplikace akce a na s je γ(s, a) = (s effects (a)) effects + (a) Hana Rudová, FI MU IV126: Plánování: reprezentace problému 26 15. března 2018
Klasická reprezentace: plánovací doména Nechť L je jazyk a O je množina operátorů. Plánovací doména Σ nad jazykem L a s operátory O je trojice (S, A, γ): stavy S P({všechny instanciované atomy nad L}) akce A = {všechny instanciované operátory z O nad L} akce a je použitelná na stav s, pokud precond + (a) s precond (a) s = přechodová funkce γ: γ(s, a) = (s effects (a)) effects + (a), je-li a použitelná na s S je uzavřená vzhledem ke γ pokud s S, potom pro každou akci a aplikovatelnou na s platí γ(s, a) S Hana Rudová, FI MU IV126: Plánování: reprezentace problému 27 15. března 2018
Klasická reprezentace: plánovací problém Plánovací problém P je trojice (Σ, s 0, g): Σ = (S, A, γ) je plánovací doména s 0 je počáteční stav, s 0 S g L je množina instanciovaných literálů stav s splňuje g právě tehdy, když g + s g s = S g = {s S s splňuje g} je množina cílových stavů Zápis plánovacího problému je trojice (O, s 0, g) Plán π je posloupnost akcí a 1, a 2,..., a k Plán π je řešením P, právě když γ(s 0, π) splňuje g Hana Rudová, FI MU IV126: Plánování: reprezentace problému 28 15. března 2018
Klasická reprezentace: ukázka plánu Hana Rudová, FI MU IV126: Plánování: reprezentace problému 29 15. března 2018
Srovnání reprezentací Vyjadřovací síla obou reprezentací je stejná (co lze reprezentovat množinově, lze i klasicky a naopak) Při převodu z klasické na množinovou reprezentaci ale může dojít k exponenciálnímu nárůstu velikosti. Hana Rudová, FI MU IV126: Plánování: reprezentace problému 30 15. března 2018
Domácí úkol (nebodovaný) Navrhněte množinovou a klasickou reprezentaci pro svět kostek. Svět kostek (the blocks world) nekonečně velký stůl, konečný počet kostek poloha kostky na stole nás nezajímá kostka může ležet buď na stole nebo na jiné kostce při plánování chceme přesouvat kostky tak, že v dané chvíli můžeme držet maximálně jednu kostku Příklad: Hana Rudová, FI MU IV126: Plánování: reprezentace problému 31 15. března 2018