Plánováníá a rozvrhování Roman Barták, KTIML roman.bartak@mff.cuni.cz cz http://ktiml.mff.cuni.cz/~bartak Čas a plánování Konceptuální model plánování pracuje s implicitním časem: akce a události jsou instantní (nemají trvání) splnění cílů je požadováno jen na konci Tento omezený pohled se hodí pro studium logik a formální složitosti plánování. Realita je ale trochu jiná: akce zabírají jistý časový ýúsek předpoklad akce nemusí být vžadován jen při startu akce, ale i v době jejího trvání efekt mohou začít platit před koncem akce, mohou být omezen jen na dobu trvání akce nebo jsou opožděn efekt akcí se mohou sdružovat mohou se vsktovat průběžné cíle
Model času Základní princip Co je to čas? Matematická ti struktura pro čas je obecně ě množina s tranzitivní a asmetrickou relací uspořádání. Množina může být spojitá (pro nás R) nebo diskrétní (pro nás Z). Plánovací sstém bude používat databázi časových údajů, kterou bude v průběhu plánování updatovat a bude se dotazovat na její konzistenci. S časem můžeme pracovat: kvalitativně zajímají nás relativní vztah (akce A skončila dříve než začala akce B) kvantitativně ě zajímají nás absolutní hodnot (akce A začala v čase 0 a skončila v čase 23)
Kvalitativní přístup příklad Robot začal vjíždět do zón nakládání v čase t 1 a zastavil se zde v čase t 2. Jeřáb začal zvedat kontejner v čase t 3 a ukončil nakládání v čase t 4. V čase t 5 bl kontejner umístěn na robota a setrval zde až do času t 6. i 1 vjíždění t 1 t 2 i 3 t 5 naloženo t 6 i 2 t 3 zvedání a nakládání t 4 Možné sítě podmínek: < t 1 t 2 t 5 t 6 < < je před i 1 i 3 = začíná před dotýká se t 3 t < 4 i 2 Kvalitativní přístup Při modelování času nás budou zajímat: časové reference (kd se něco stalo a kd něco platilo) formálně ě bod změn (okamžik) kd stavová proměnná nabla jiné hodnot okamžik je proměnná nad reálnými čísl časové period (interval) během kterých dané tvrzení platí interval je dvojice proměnných (,) nad reálnými čísl taková, že < relativní vztah mezi časovými referencemi uspořádání časových referencí
Algebra okamžiků základ Smbolický kalkulus pro práci s okamžik. Dva okamžik t 1 a t 2 můžeme svázat pouze následujícími třemi způsob: [t 1 < t 2] [t 1 > t 2 ] [t 1 = t 2 ] Relace P ={< {<,=,>} >}budeme nazývat primitivní vztah. Primitivní vztah můžeme spojit do množin a vjadřovat tak libovolný ý( (i méně přesný) vztah mezi okamžik (množina primitivních vztahů vjadřuje jejich disjunkci): {}, {<}, {=}, {>}, {<,=}, {>,=}, {<,>}, {<,=,>} vztah r mezi idvěma ě časovými ý i bod t a t budeme zapisovat [t r t ] Algebra okamžiků nám umožní pracovat se vztah smbolick bez nutnosti umístit okamžik do přesného času. Algebra okamžiků Máme množinu vztahů R: {{}, {<}, {=}, {>}, {<,=}, {>,=}, {<,>}, {<,=,>}} Operace nad R: množinové operace, slouží pro vjádření konjunkce a disjunkce vztahů operace pro tranzitivitu pro odvození nového vztahu na základě eistujících vztahů [t 1 r t 2 ] a [t 2 q t 3 ] dává [t 1 r q t 3 ] podle tabulk < = > < < < P = < = > > P > > Nejužitečnější budou operace a, které umožní kombinovat eistující vztah a vztah odvozené z tranzitivit: [t 1 r t 2 ] a [t 1 q t 3 ] a [t 3 s t 2 ]dá dává á[ [t 1 r (q s) t 2 ] operace
Algebra okamžiků konzistence Množina okamžiků X společně s množinou (binárních) vztahů r i,j R nad těmito okamžik C tvoří síť podmínek (X,C). Pokud není v C eplicitně uveden vztah mezi dvěma okamžik (i,j), bereme univerzální vztah P. Říkáme, že síť podmínek (X,C) je konzistentní, t jestliže je možné každému okamžiku přiřadit reálné číslo tak, že všechn vztah jsou splněn (eistuje řešení). Tvrzení: Síť podmínek (X,C) je konzistentní, právě kdž eistuje množina primitivních vztahů p i,j r i,j takových, že pro libovolnou trojici těchto vztahů platí p i,j p i,k p k,j. Poznámk: Pro zjištění konzistence sítě stačí udělat její tranzitivní uzávěr např. pomocí algoritmu konzistence po cestě (PC). Pokud někde dostaneme vztah {}, potom síť není konzistentní. V opačném případě je síť konzistentní (ale PC nemusí odstranit všechn primitivní vztah, které jsou nekonzistentní). Algebra intervalů základ Smbolický kalkulus pro práci s interval (interval je dán dvojicí okamžiků i - a i + takových, že [i - <i + ]). Primitivní vztah mezi interval: before + < - meets + = - overlaps - < - < + + < + starts - = - + < + during - < - + < + finishes - < - + = + equals - = - + = + b, m, o, s, d, f smetrické vztah
Algebra intervalů operace a konzistence Primitivní vztah opět můžeme kombinovat v množinách (2 13 vztahů). Někd se vbírá jen podmnožina možných vztahů, které mají v dané aplikaci nějaký význam. např. {b,m,b,m } znamená nepřekrývání a hodí se pro modelování unárních zdrojů množinové operace, a operace pro tranzitivitu Říkáme, že síť podmínek s interval (X,C) je konzistentní, jestliže eistují reálná čísla - + i, i+ popisující každý interval i tak, že všechn vztah jsou splněn. Tvrzení: Síť podmínek s interval (X,C) je konzistentní, právě kdž eistuje množina primitivních vztahů p i,j r i,j takových, že pro libovolnou trojici těchto vztahů platí p i,j p i,k p k,j. Poznámk: Konzistence po cestě není pro sítě podmínek s interval úplná konzistenční technika! Může ale detekovat některé nekonzistence. Problém konzistence sítě podmínek s interval je NP-úplný. Interval lze převést na okamžik, ale některé podmínk pak nebudou binární. Kvantitativní přístup příklad Do přístavu míří dvě lodě, Uranus a Rigel. Uranus přijede za jeden až dva dn. Uranus bude odjíždět buď s lehkým nákladem, pak stráví v přístavu tři až čtři dn, nebo odjede plně naložený a pak stráví v přístavu minimálně šest dní. Rigel bude obsloužen buď v epresním doku, kde stráví dva až tři dn, nebo v normálním doku, kde stráví čtři až pět dní. Uranus musí odjet jeden až dva dn po příjezdu Rigelu. Rigel musí odjet šest až sedm dní ode dneška. Příjezd Uranus [3,4] nebo [6, ] Odjezd Uranus [1,2] [1,2] Příjezd Rigel teď [2,3] nebo [4,5] [6,7] Odjezd Rigel
Kvantitativní přístup formálně ě Základními primitiv jsou opět okamžik, tentokrát ale s numerick vjádřenými vztah. Jednoduché časové podmínk pro okamžik t i a t j : unární: a i t i b i binární: a ij t i t j b ij, a i, b i, a ij, b ij jsou (reálné) konstant Poznámk: Unární vztah můžeme převést na binární, pokud použijeme nějaký pevný referenční bod t 0. Podmínku mezi okamžik t i a t j budeme zapisovat [a ij,b ij ]. Můžeme pracovat s disjunkcemi jednoduchých časových podmínek. Simple Temporal Network (STN) pracujeme pouze s jednoduchými časovými podmínkami r ij = [a ij,b ij ] operace: skládání podmínek: r ij r jk = [a ij +a jk, b ij +b jk ] průnik podmínek: r ij r ij = [ma{a ij,a ij }, min{b ij,b ij }] STN STN je konzistentní pokud eistuje přiřazení hodnot do okamžiků takové, že všechn podmínk jsou splněn. Konzistenci STN lze zařídit jednoprůchodovým algoritmem pro konzistenci po cestě (dokonce odfiltruje všechn nekonzistence) nebo známým Flod-Warshallovým algoritmem pro hledání minimálních vzdáleností mezi každou dvojicí bodů.
Konzistence po cestě v podstatě počítá tranzitivní uzávěr binárních relací r pro STN stačí jeden průchod (obecně algoritmus iteruje dokud dochází ke změnám) může fungovat inkrementálně jednoprůchodový pro STN Algoritm Flod-Warshallův algoritmus počítá nejkratší vzdálenost mezi každou dvojicí bodů síť se musí nejprve upravit vrchol i a j spojuje hrana se vzdáleností b ij vrchol j a i spojuje hrana se vzdáleností -a ij. STN je konzistentní, právě kdž v grafu nejsou negativní ckl, tj. d(i,i) 0 i) 0 j obecný Temporal Constraint Network (TCSP) TCSP Povolíme olíme disjunkce jednoduchých časových podmínek. Operace a se musí provádět s množinami intervalů. TCSP je konzistentní pokud eistuje přiřazení hodnot do okamžiků ů takové, že všechn podmínk jsou splněn. ě Algoritmus konzistence po cestě zde není úplný (negarantuje konzistenci)! Jednoduchý řešící přístup: síť podmínek se rozloží na několik STN (pro každou disjunkci se zvolí jedna část) odděleně se vřeší získané STN výsledek se získá sjednocením řešení jednotlivých STN
[Znalosti 2007] Temporální síť s alternativami (TNA) je orientovaný ýgraf se speciálním tvarem logických závislostí mezi uzl relace větvení. ALT PAR TNA Proces se může rozdělit na paralelní větve, tj. uzl paralelních větví budou zpracován paralelně (všechn uzl zvětvímusíbýtpřítomn v řešení). Proces může také volit mezi alternativními větvemi,, tj. zpracují se uzl právě jedné větve (pouze uzl z vbrané větve budou přítomn v řešení). Otázkou je, které uzl jsou validní v řešení (jsou přítomn ve vbraném pod-grafu, který splňuje logické i temporální podmínk). Složitost problému Pokud uděláme všechn uzl nevalidní (všechn uzl jsou z grafu odstraněn), potom získáme triviální řešení splňující všechn podmínk. Předpokládejme nní, že některé předem vbrané uzl musí být validní, tj. jsou určen pro zahrnutí do hledaného pod- grafu. například, uzel odpovídající objednávce musí být přítomen Otázkou je, jestli je potom těžké rozhodnout, zda lze vbrat pod-graf obsahující zvolené uzl tak, ab bl splněn podmínk větvení. Jinými slov, je možné vbrat proces tak, ab bla splněna objednávka? Modelování alternativ v temporálních sítích
Je to těžký problém! Problém rozhodnutí o validitě/ne-validitě uzlů vp/agrafujenp-úplný NP-úplný. ALT a b c formula PAR a b d abc abc abc abc Abc AbC ABC a a b b c c a a ALT PAR A B C a a b b c c převedeme na něj problém 3SAT kódujeme klauzuli jako P/A graf tak, že klauzule je splněna právě kdž eistuje pod-graf splňující větvící podmínk příklad (a b c) přidáme uzl pro proměnné a jejich hodnot a uzel pro formuli ALT A B C nastavíme validní uzl Modelování alternativ v temporálních sítích Reálné proces Reálné výrobní proces mají často velmi specifickou strukturu. Procesní síť často vzniká postupnou dekompozicí meta-procesů na specifické pod-proces/operace: sériová dekompozice paralelní/alternativní dekompozice
Zahnízděné graf graf zkonstruované z jedné hran postupnou aplikací následující dekompoziční operace: A A z z z z z z k = 1 k = 2 k = 3 A A Vlastnosti: jedná se o temporální síť s alternativami zahnízděné graf lze algoritmick rozpoznat problém výběru validních uzlů je polnomiálně řešitelný Logické relace Problém výběru validních uzlů lze popsat jako problém splňování omezujících podmínek. A B A B1 B2 B3 každý uzel A je popsán poměno proměnou V A sdoméno doménou {0,1} každá hrana (A,B) z paralelního větvení definuje podmínku V A = V B nechť (A,B1),, (A,Bk) jsou všechn hran nějakého alternativního větvení, potom lze definovat podmínku V A = Σ i=1,,k V Bi Popsaný základní model nedosahuje globální konzistence (A = 1, A = B+C, D = B+C D = 1), ale pro zahnízděné sítě lze získat globální konzistenci.
Temporální relace Zatím jsme předpokládali, že hrana v grafu představuje precedenci (jeden uzel předchází před druhým). Každou hranu (X,Y) můžeme také označit jednoduchou temporální podmínkou [a,b] s významem a Y-X b. (Zahnízděné) Temporální sítě s alternativami Základní CSP model: každý uzel A je popsán temporální proměnnou T A s doménou 0,MaTime, kde MaTime je uživatelem zadaná konstanta. Temporální relace [a,b] mezi uzl X a Y musí platit pokud jsou oba uzl validní! V X *V Y *(T X +a) T Y V X *V Y *(T Y b) T X. Poznámk: V X =0 V Y =0 0 T Y 0 T X V X = V Y = 1 (T X + a) T Y (T Y b) T X. Zmíněné temporální podmínk neuvažují tp větvení! 0,70 0,70 1,70 [0,0] [50, ] 0,50 0,70 [1, ] [0,0] ALT 0,70 ALT [15, ] MaTime = 70 [10, ] 0,70 [1, ] [ ] 0,37 0,70 [1, ] 1,38 0,70 1,70 [10, ] 11,48 0,70 11,70 [5, ] 1,44 0,70 1,70 [1, ] ] 2,45 0,70 2,70, Slabá filtrace temporálních relací Základní model opět nedosahuje globální konzistence! Nejlevnější uzel nemůže být validní kvůli temporálním podmínkám. [2, ] [2, ] Sílu filtrace ale můžeme zvýšit následujícími 13,50 0,70 13,70,, způsob: 28,65 0,70 28,70 [5, ] [15, ] 0,70 33,70, temporální podmínk budou vžd filtrovat, budeme integrovat logické a temporální uvažování.
Temporální filtrace 1 1 2 2 Silnější filtrace je založena na dvou mšlenkách: vžd filtrujeme temporální podmínku (dokud nějaká doména nebude prázdná) při temporální filtraci uvažujeme tp větvení Propagace po proudu (proti proudu obdobně) paralelní větvení 3 3 j d(t j) d(t j) i=1,,k { (d(t i) + a i,,b i, ) } je-li neprázdné d(v j ) d(v j ) {0} pokud se doména temporální prom. vprázdní alternativní větvení (konstruktivní disjunkce) j d(t j ) d(t j ) i=1,,k {(d(t i ) + a i,, b i, )} je-li neprázdné d(v j ) d(v j ) {0} pokud se doména vprázdní ádí Složitost problému Je možné polnomiálně získat globální konzistenci temporálních podmínek v zahnízděných sítích? Bohužel, jedná se o NP-úplný problém Na problém konzistence temporálních podmínek lze převéstř subset sum problém. Nechť Z i, i = 1,,n jsou celá čísla. Eistuje podmnožina S z {1,,n} taková, že Σ i S Z i = K? [0,0] 0] [K,K] [Z 1, Z 1 ] [Z 2, Z 2 ] [Z n, Z n ] ALT ALT ALT ALT ALT ALT