Termeléstervezés és -irányítás Ütemezés BMEGEGT7008 2014 Monostori László egyetemi tanár Váncza József egyetemi docens 1
Ütemezés Erőforrások időben való allokációja tevékenységek egy halmazának végrehajtása érdekében Végrehajtható ütemterv kell a korlátozásokat be kell tartani Sok lehetséges közül jó (a legjobb) ütemterv kell optimálás Tiszta ütemezés tevékenységek kezdő és befejező időpontjának meghatározása Tiszta erőforrás allokáció Tevékenységek és erőforrások egymáshoz rendelése Együttes probléma Tevékenységek kezdő és befejező időpontjának meghatározása Erőforrások tevékenységekhez való rendelése Tevékenységek versenyeznek szűkös erőforrásokért 2
Ütemezés: példák Szállítási, logisztikai problémák Forgalomirányítás Legénység beosztás Légi kampány tervezés Termelés Diszkrét/folytonos gyártási folyamatok Emberi erőforrás gazdálkodás Órarendbeosztás Projekt ill. misszió ütemezés Építkezés Űrkutatás (Hubble űrteleszkóp, Deep Space One) Hálózat tervezés és routing Processzor ütemezés 3
Alapfogalmak Idő Tevékenységek Erőforrások Korlátozások Optimálási kritériumok (célfüggvények) A feladat komplexitása A feladat mérete Válaszidő a megoldásra rendelkezésre álló idő 4
Tevékenység (Activity, Task) Időbeli leírás kezdet és vég start i, end i Időtartam d i időablak release due date start release d i end due Erőforrás igény Egy tevékenység erőforrás(oka)t igényel Adott mennyiségben De csak végrehajtásának ideje alatt 5
Tevékenység (2) Végrehajtás jellege megszakíthatatlan megszakítható release due release Átmenet Külön költség idő van/nincs (setup) Munka (job) Adott tevékenységek halmaza Precedencia korlátozásokkal összekötve due 6
Erőforrások (R) Típusok Egyetlen tevékenység által használható (unary) Van vagy nincs Diszkrét Diszkrét egységekben igénybe vehető (gépcsoport, pénz, munkaóra) Tároló Diszkrét egységekben Fogyasztható és feltölthető (pl. költségvetés) Rendelkezésre állás: korlátozott kapacitás Rögzített Időben változó Tevékenységek és erőforrások kapcsolata A tevékenység igényli (előállítja) az R erőforrás q egységét. Alternatív erőforrások Ugyanaz a tevékenység több erőforrással is elvégezhető 7
Korlátozások Időbeli Időablak Legkorábbi kezdés (rendelés elfogadása) határidő Precedencia tevékenységek között Termékszerkezet (BOM) Technológiai sorrend (routing) Erőforrás Tevékenység csak akkor hajtható végre, ha hozzá van rendelve a szükséges erőforrás. Soha egyetlen erőforrást sem lehet a rendelkezésre álló kapacitásnál nagyobb mértékben használni. Egyéb, az aktuális problémából eredő korlátozások Mellék-korlátozások Példák Hőkezelést műszak végén be kell fejezni. Azonos vevő több megrendelését egyszerre kell leszállítani. Daruval adott súlynál nehezebb csomagokat nem lehet rakodni. 8
Optimalizálási kritérium Egyetlen, jól definiált kritérium Szállítóképesség Átfutási idő minimuma (makespan) Késések (súlyozott) összegének minimuma (tardiness, ill. lateness) Késések számának minimuma Költségek minimuma (cost) Tevékenységek összköltsége Work-in-process (WIP) Erőforrás kihasználtság Feldolgozási idő minimuma Maximális/átlagos erőforrás kihasználtság Jól definiált kritériumok kombinációja Súlyozott összege Pareto optimum Preferenciák Puha korlátozások 9
Összegezve, a feladat Adott Tevékenységek leírása Erőforrások leírása Korlátozások Optimalizálási kritérium Keresett Egy megoldás Adott szempont szerint legjobb megoldás Adott szempont szerinti összes legjobb megoldás A válaszidőn belül 10
Determinisztikus Ütemezési modellek A bemenő paraméterek megegyeznek a tényleges realizációval Sztochasztikus Egyes bemenő adatok eloszlása ismert csak Kezdési idők, feldolgozási idők Realizáció csak a végrehajtáskor derül ki 11
Bonyolultság Könnyű problémák N szám rendezése Lineáris egyenletrendszer megoldása Hogyan mérjük a bonyolultságot? f (n): elemi műveletek száma, ami kell egy n méretű input adattal rendelkező feladat megoldásához Könnyű: f (n) polinom függvénye n-nek, pl. O(n), O(n log n), O(n 2 ), Nehéz: f (n) exponenciális n-ben, pl. O(2 n ), Ütemezési problémák Csak kivételes esetekben ismerünk determinisztikus polinom megoldó algoritmust. Többségükben a legnehezebb kombinatorikus optimálási feladatok. NP vagy NP teljes Kis méretben működő megoldás nem vihető át egykönnyen nagyobb méretekbe 12
Bonyolultság (2) Összevetésül O(n) O(n log n) O(n 2 ) O(2 n ) 1 0 1 2 10 10 100 1024 20 26 400 1048576 50 85 2500 1,125,899,906,842,624 100 200 10000 1.268 X 10 30 1000 3000 1,000,000 1.072 X 10 301 10 301 számítási művelet Mai leggyorsabb gép: 10 15 op/sec Megoldási idő (legrosszabb esetben): 10 286 sec A Világegyetem becsült kora: 10 18 sec Mégis, Rövid válaszidő kell Vagy meg kell elégednünk elégendően jó megoldásokkal 13
Ütemezési módszerek Ütemezési (diszpécser) szabályok (dispatching rules) Egyedüli Összetett Heurisztikus módszerek Matematikai programozás Branch-and-bound Korlátozás programozás Lokális keresés 14
Műhely (shop) ütemezési probléma Az általános probléma: adott Véges számú elvégzendő munka (jobs) Rendelkezésre álló erőforrások (gépek) Az erőforrások kapacitása egységnyi A job-okat (munkákat) alkotó elemi tevékenységek Egy időben egy job-nak csak egyetlen tevékenységén lehet dolgozni Minden tevékenység egy dedikált erőforráson dolgozható fel, adott idő alatt A tevékenységek közt tetszőleges előzési korlátozások lehetnek Keresett A tevékenységek kezdési időpontja [Tevékenységek erőforráshoz rendelése] Speciális változatai Flow shop egyutas ütemezési probléma Open shop Job shop többutas ütemezési probléma 15
Műhely (shop) ütemezés Alapmodell Indexek munkák (job-ok) indexe erőforrások indexe tevékenységek indexe időperiódusok indexe (véges horizont) j 1,..., J m 1,..., M k 1,..., K t 0,..., T 16 Paraméterek munkák indítási ideje munkák határideje tevékenységek erőforrás igénye tevékenységek feldolgozási ideje [tevékenységek indítási ideje] [tevékenységek határideje] munka súlya r j d j q jk p jk r jk d jk w j
Kiértékelés Műhely (shop) ütemezés (2) Tulajdonságok befejezési idő késés (lateness) eltérés (tardiness) C j L max( C d,0) j j j T C d j j j Kritériumok súlyozott befejezési idők összegének minimuma maximális késés minimuma befejezési idők minimuma (makespan) és még sok más min w j C j min L max min C max 17
Flow/Open Shop Flow shop Job: adott gépeken, adott sorrendben elvégzendő tevékenységek Minden munkadarab technológiai útja azonos k r jk = M k t j1 t j2 t jm Példa: 3 gép, 4 job M1 M2 M3 1 2 1 1 2 3 Open shop Job: adott gépeken elvégzendő tevékenységek halmaza Az elvégzendő tevékenységek sorrendje kötetlen 2 4 3 4 3 4 t 18
Job Shop ütemezés Job shop probléma (JSP) Többutas ütemezési probléma Munkadarabonként különböző technológiai utak lehetségesek Job tevékenységei sorba rendezettek Láncot alkotnak Különböző job-ok tevékenységei közt nincsen precedencia Nincsenek hidak Valódi feladatok magja Egy/több erőforrásra Más korlátozásokkal kiegészítve Változatos célfüggvényekkel Legtöbbet elemzett feladat Benchmark problémák Elvezet az RCPS megoldásához Több tevékenység által közösen használható erőforrások Kapacitás > 1 19
Ütemezési szabályok Tevékenységeket sorba rendezik az erőforrások előtt Azokat, amik éppen végrehajthatóak Tevékenységek prioritást kapnak Ha egy erőforrás felszabadul Frissíti a sort Rendezi a tevékenységeket Ütemezi (azaz erőforráshoz rendeli) a legnagyobb prioritásút Típusok Statikus Az ütemezési döntések nem befolyásolják a rendezés alapját Idő-független Elég egyszer rendezni a tevékenységeket Dinamikus A döntések befolyásolják a további tevékenységek sorrendjét Idő-függő Minden döntés után újra kell(het) rendezni a sorokat 20
Ütemezési szabályok (2) Kezdési és határidőket tekintő Legkorábbi kezdés (Earliest release date, ERD) Legkorábbi határidő (Earliest due date, EDD) Minimális ráhagyás (Minimum slack, MS) Feldolgozási időket tekintő Leghosszabb feldolgozási idő (Longest processing time, LPT) Legrövidebb feldolgozási idő (Shortest processing time, SPT) Súlyozott legrövidebb feldolg. idő (Weighted shortest processing time, WSPT) WSPT egyetlen gépen optimális (Smith-féle szabály) Kritikus út szabály (Critical path, CP) Legnagyobb számú követő (Largest number of successors, LNS) Egyebek Véletlen kiszolgálási sorrend (Service in random order, SIRO) Legrövidebb átállási idő (Shortest setup time, SST) Legrugalmatlabb munka (Least flexible job, LFJ) Legnagyobb erőforrásigény (Greatest resource demand, GRD)... 21
JSP ütemezési szabály: SPT J0 J1 J2 22 Ch. Beck
JSP ütemezési szabály J0 J1 J2 Ch. Beck 23
JSP ütemezési szabály J0 J1 J2 Ch. Beck 24
JSP ütemezési szabály J0 J1 J2 Ch. Beck 25
JSP ütemezési szabály J0 J1 J2 Ch. Beck 26
JSP ütemezési szabály J0 J1 J2 Ch. Beck 27
JSP ütemezési szabály J0 J1 J2 Ch. Beck 28
JSP ütemezési szabály J0 J1 J2 Ch. Beck 29
Feladat: SPT alkalmazása Figyelni kell a precedencia korlátozásokra is Tevékenységek Job 1 2 3 4 1 M1, 9 M2, 8 M3, 4 M4, 4 2 M1, 5 M2, 6 M4, 3 M3, 6 3 M3, 10 M1, 8 M2, 9 M4, 2 feldolgozási idő erőforrás (gép) 30
Statikus szabályok 1 gép & WSPT r j = 0, d j =, obj = min w j C j Weighted Shortest Processing Time (WSPT) Rendezi a tevékenységeket a mérték csökkenő sorrendjében: w j /p j A súlyozott befejezési idők összegére optimális Példa p 1 = 10 w 1 = 1 p 2 = 2 w 2 = 2 p 3 = 5 w 3 = 0 WSPT minimalizálja wjcj kritériumot És ha más a kritérium? obj = min Cmax? 1 gép & EDD r j = 0, obj = min L max (maximális késés) Minden munkának van határideje, d j Earliest Due Date (EDD) optimális Rendezi a tevékenységeket növekvő d j szerint p 4 = 7 w 3 = 3 31
Dinamikus szabály Minimális ráhagyás Minimum Slack (MS) 1 gép, r j = 0, obj = min L max Adott t időben a mérték növekvő sorrendjében rendez max( d j p j t, 0) MS nem garantál optimumot HF: olyan feladat definiálása, ahol MS nem ad optimumot 32
Összetett ütemezési szabályok Nyilvánvaló késési költség szabály Apparent Tardiness Cost (ATC) 1 gép, r j = 0, obj = min w j T j Rendezi a tevékenységeket, a mérték csökkenő sorrendjében Ij( t) w p j j exp( max( d j p Kp j t,0) ) WSPT átlagos p j MS Skálázó paraméter 33
Egészértékű program: Egy gépes probléma Egy gép, n munka (job) Kritérium Befejezési idők súlyozott összege min Döntési változók Idő-indexelt modell x jt n j 1 wc j 1 ha job j t időpontban kezdődik 0 egyébként. j 34
Egészértékű program: Egy gépes probléma (2) Egészértékű program Kritérium n C Korlátozások max min w ( t p ) x n j 1 t 1 max t 1 j 1 s max{ t p 1,1} t x j jt C j j jt x x jt js 1 1 0,1 j, t j t Ekkor ér véget egy j munka Minden munka csak egyszer kezdődhet Munkák nem fedik át egymást Integritás korlátok 35
Egészértékű program: Egy gépes probléma (3) Megoldás: Branch-and-bound Elágazás a döntési változók értékein 0 vagy 1 Alsó korlát Lineáris relaxáció megoldása Xpress program single_machine_scheduling 36
Branch-and-bound Szétválasztás és korlátozás Mélységi keresés Heurisztikus becslő függvény: részleges megoldások kiértékelése Minimalizálunk: a becslő mindig alulbecsül Alsó korlát (Lower Bound) LB Mozgó felső korlát (Upper Bound) UB Minimalizálunk: az eddig talált legjobb megoldás értéke Egy n csomópontban vág, ha LB UB Döntés Változó választás Érték választás Hatékonyság Elég éles-e a LB becslő függvény? Sikerül-e hamar jó felső UB korlátot találni? 37
JSP mint diszjunktív gráf Kétféle korlátozás a tevékenységek között Precedencia (job-on belül) Diszjunktív korlátozás Adott gépet igénylő tevékenységek páronként kapcsolatba hozhatók Egyik biztos megelőzi a másikat De még nem tudjuk, melyik az éleknek nincs (még) iránya Start és End csomópontok beiktatva job1 Start End 38
JSP mint diszjunktív gráf (2) Megoldás: diszjunktív élek irányítása A teljes gráf ciklusmentes legyen A megoldás optimális legyen Keresés Döntés: hogyan irányítjuk a diszjunktív éleket Minden más (pl. kezdési idők, átfutási idő) ebből következik Start End 39
Alapmodell bővítése Diszjunktív program: JSP Halmazok tevékenységek előzési korlátozások diszjunktív korlátozások ( j, k) K ( j, k) ( j, l) A ( j, k) ( l, k) D Változók tevékenységek start ideje Kritérium Minimális befejezési idő a teljes feladatra (makespan) x jk min C max 40
Diszjunktív program: JSP (2) Korlátozások A befejezési időpont az utolsó Cmax x jk p jk ( j, k) N Előzési korlátozások x x p ( j, k) ( j, l) A jl jk jk 41 Diszjunktív korlátozások x x p ml jk jk x x + p ( j, k) ( m, l) D jk ml ml Integritás x 0 ( j, k) N jk
Diszjunktív program: JSP (3) De: hogyan írhatók le diszjunktív korlátozások? A nagy N trükk Új bináris változó y jkml 1 ha (j,k) tevékenység követi (m,l)-t 0 egyébként Kell egy elegendően nagy N (pl. a horizont maximális hossza) Diszjunktív korlátozások, ismét x p x N * y jk jk ml jkml x + p x N *(1 y ) ( j, k) ( m, l) D ml ml jk jkml Program JSSP_disjunctive Megoldás: korlátozás és szétválasztás (B&B) 42
Lokális keresés Probléma típus Megoldás a csomópontokban pl. ütemterv Alapötlet Analógia a felületen való tájékozódással és mozgással Magasság: csomópont jósága (heurisztikus kiértékelés) Csúcsok: optimális megoldások Tájékozódás: adott pont szomszédságában lévő pontok kiértékelése Iteratív javító algoritmusok célfüggvény lokális minimumok legjobb megoldás iteráció 43
Lokális keresés (2) Algoritmusok Csúcsra mászás (hill-climbing) Szimulált hűtés (simulated annealing) Tabu keresés (tabu search) Genetikus algoritmusok (genetic algorithms, GAs) 44
Csúcsra-mászás Stratégia A keresés során egy csomópont közvetlen leszármazottjait vizsgálja csak Ezek az ún. szomszédok Csak felfelé/lefelé tud menni Gradiens módszer Nem épít keresési fát Állapotról (s) állapotra (s ) lép Csúcsra-mászás 1) Legyen s egy (véletlen) kezdeti állapot. 2) Ha s egy célállapot, akkor állj le és add vissza eredményként. 3) Egyébként Állítsd elő s valamennyi szomszédját; Ha a legjobb s szomszédra f(s ) f(s) Akkor legyen s = s és menj vissza 2)-re. Egyébként állj le és add vissza s-et eredményként. 45
Csúcsra mászás (2) Szomszédság Művelet gépváltása Adott gépen két művelet helycseréje (swap) Tulajdonságok Nem tárolja a keresési gráfot, csak a pillanatnyilag vizsgált csomópontot - így minimális memória igény Sikere nagyban függ a felület alakjától Problémák Lokális magaslat Kiterjedt síkvidék Gerinctúra lenne jó, de arra nem vezet út O O O O O O O O O O O O 46
Szimulált hűtés Alapötlet Fémöntési technikával való analógia Algoritmus Nem a legjobb lépést választja, hanem véletlenül választ Ha a lépés javít a pillanatnyi helyzeten, elfogadja és megteszi Bizonyos valószínűséggel elfogad olyan lépést is, amely ront a pillanatnyi helyzeten Hőmérséklet: befolyásolja a rontó lépések elfogadásának valószínűségét kisebb hőmérsékleten kisebb az esély a keresés előrehaladtával a hőmérséklet csökken (végül csúcsramászás) Tulajdonságok Ha a hőmérséklet lassan csökken, jó eséllyel megtalálja a globális optimumot. Viszonylag új módszer, ám már meglepően sikeres alkalmazásokkal. 47
Algoritmus Szimulált hűtés 1) Legyen s egy véletlenül választott kezdeti megoldás. 2) Ha s egy célállapot, vagy a leállási feltétel teljesül, akkor állj le és add vissza s-et eredményként. 3) Egyébként állítsd elő s valamelyik s szomszédját; ha f(s ) f(s), akkor legyen s = s egyébként e (f(s )-f(s))/t valószínűséggel legyen s = s csökkentsd T hőmérsékletet; menj vissza 2)-re. Hűtési ütemterv 1/T k =C k ahol 0 C 1 C 2 C k k, akkor C k 48
Tabu keresés Alapötlet Memóriában tárolt információ vezérli a keresést Feladatfüggő tiltó és feloldó szabályok az operátorok alkalmazásával szemben Cél Globális optimalizálás Maximálni f(s): s S Operátor s s N(s) szomszédság: ahová egy lépésben el lehet jutni s-ből Döntések Megvizsgál minden lehetőséget N(s)-ben, akár javít, akár ront Nem teszi meg, ha tabu, de A tabu változó Feloldható (aspiráció) Megengedett lépések közül a legjobbat választja 49
Algoritmus Tabu Cél: annak megakadályozása, hogy a keresés visszatérjen egy korábban már meglátogatott megoldáshoz Ha s közelében van, pl. egyik utolsó L lépés Ha túl sokat ront f(s) értékén Tabu keresés 1) Legyen s egy véletlenül választott kezdeti megoldás, legyen TL egy rögzített hosszú tabu lista; 2) Ha s egy célállapot, vagy a leállási feltétel teljesül, akkor állj le és add vissza s-et eredményként. 3) Egyébként állítsd elő s valamennyi szomszédját, N(s)-t; s a legjobb az N(s)/TL halmazból; s = s ; tedd fel s-t TL tabu listára; menj vissza 2)-re. 50
Alkalmazási példa: ütemterv Jellemzők 25 gép, 3000 művelet (60 gyártási rendelés), ~150 nap routing alternativák: 3-10 Kezdeti ütemterv Ütemterv 50K iteráció után 51
Genetikus algoritmusok Alapötlet Keresés a természetes kiválasztódás (durva) utánzásával Populáció genetika Neo-darwinizmus Hipotézisek Genotípus és fenotípus Csak a genetikai jegyek öröklődnek Szelekció: a rátermettebb egyed marad fenn (hozz létre utódot) Mutáció: véletlen változások az adaptációt szolgálhatják Fogalmak Populáció, több egyed Genetikus kód Rátermettség (fitness) -- kiértékelés Genetikus műveletek Kereszteződés re-kombináció Mutáció Véletlen! 52
A GA ciklusa kezdeti állapotok kihalás megoldások kiértékelés kiválasztás műveletek alkalmazása 53
Algoritmus Genetikus algoritmus 1) Töltsd fel a kezdeti populációt. 2) Ha a leállási feltétel teljesül, akkor állj le és add vissza a legjobb egyedeket eredményként. 3) Egyébként válassz ki néhány egyedet a populációból; alkalmazd rájuk a genetikus műveleteket; értékeld ki az új egyedeket; dobd el a legrosszabb egyedeket; menj vissza 2)-re. Választás Nagyobb rátermettség nagyobb esély De nem kizárólagos Paraméterek Populáció mérete Kereszteződési és mutációs ráták 54
Példa Utazó ügynök probléma N város, köztük különböző hosszúságú utak Minden város egyszeri érintésével a legrövidebb út megtalálása Reprezentáció Szomszédsági modell Túra: n darab város listája. j város az i-dik helyen, ha az ügynök i városból j városba megy genotípus: (2 4 8 3 9 7 1 5 6) fenotípus: 1 2 4 3 8 5 9 6 7 Minden túra egyetlen szomszédsági listával leírható Illegális túrák: ciklusok Pl: (2 1...), (2 3 1...), A fenotípus kiértékelhető Van-e ciklus Ha nincs, milyen hosszú az út 55
Példa (2) Kereszteződés Véletlen kombinálás Őrizzen meg szegmenseket a szülők genetikai kódjából Ne hozzon létre életképtelen egyedeket Partially mapped crossover (PMX) p1 = ( 9 8 7 3 4 5 6 1 2 ) p2 = ( 4 5 2 1 8 7 6 9 3 ) o1 = ( x x x 3 4 5 6 x x ) o1 = ( x x 2 3 4 5 6 9 x) o1 = ( 8 7 2 3 4 5 6 9 1) részleges csere (swap) a szülők genetikus kódjában konfliktus nélküli feltöltés a másik szülőből pótlás sorban, az első szülőből 56
Order crossover (OX) p1 = ( 9 8 7 3 4 5 6 1 2 ) p2 = ( 4 5 2 1 8 7 6 9 3 ) Példa (3) o1 = ( x x x 3 4 5 6 x x ) szegmens másolása p1-ből o1 = ( 2 1 8 3 4 5 6 7 9 ) Mutáció Véletlen helycsere két szomszéd közt (swap) Életképes marad a túra feltöltés p2-ből az óramutató járásával egyező irányban; ha konfliktus, ugrás 57
Genetikus algoritmusok: tulajdonságok Implicit párhuzamosság Megoldástér feltárása vs. ismert megoldások kihasználása Exploration vs. exploitation Építőelemek (building blocks) kialakulása Sikeres egyedek genotípusában Tanulás és felejtés Konzervatív vs. adaptív Mutáció: akár más lokális keresés is lehet (SA) Kedvező mutáció hatása gyorsan terjed 58
Heurisztikák: Előre-hátra pakolás Iteratív javítás Megoldás utólagos javítása A korlátozások betartása mellett Jobbra-balra ütemezés Mintha egy dobozban rázogatnánk a zabpelyhet 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 59
Exakt vs. heurisztikus megoldás Exakt megoldás Korlátozás és szétválasztás (fa bejárás) LP (nem mindig alkalmazható) [Dinamikus programozás] Előnyök Valódi optimum Mérhető távolság az optimumtól a keresés megszakítása esetén Hátrányok Nagyon időigényes nagy feladatokon Heurisztikus megoldás Konstruktív módszerek Lokális keresés Populáció alapú keresés A fentiek kombinációi Előnyök Gyors Kevésbé érzékeny a feladatméret növekedésre Hátrányok Nincs becslés az optimumtól való távolságra 60
Korlátozás-alapú ütemezés Korlátozás alapú modell Változók X={x 1,...,x n } Véges értéktartományok Minden x i -re a lehetséges értékek D i véges halmaza Korlátozások Változók közti logikai reláció, ami korlátozza a változók lehetséges értékeit Megoldás Minden x i változónak olyan érték, ami kielégíti a korlátozásokat Több megoldás optimálás Ütemezési modell Változók: taskok start ideje start t Összefüggések Befejezés end t Időtartam d t start t + d t = end t d 61 est 0 1 2 3 4 5 6 7 8 9 10 11 12 13 lst eft lft
Korlátozások Időablak T1 start t end t T2 Precedencia (t1 t2) end-to-start end t1 start t2 (t1 t2) start-to-start start t1 start t2 Erőforrás korlátok Minden r erőforrásra egyenként Az azon egy időben futó task-ok erőforrásigénye Nem haladja meg a q(r) kapacitást Unáris erőforrás: q(r) = 1 Tároló (reservoir) Task-ok tölthetik és fogyaszthatják Állapot-függő erőforrás (state resource) Csak akkor fogyasztható, ha adott állapotban van Megfelelő erőforrás modell 62
Megoldás: következtetés + keresés kezdeti állapot megoldások Következtetés: korlátozás propagálás Az változók értéktartományainak szűkítése Megoldhatatlanság bizonyítása ha üressé válik egy tartomány Nem teljes Keresés Amikor a következtetés már nem segít Próbálkozás egy új C korlátozással és C negáltjával 63
Keresés Operátorok start t = a, start t =/= a start t < a, start t a Diszjunktív modell: (t1 t2), (t2 t1) Hatékonyság Hogyan járjuk be a fát? Hol tudunk vágni? 64
Hogyan oldjuk meg az ütemezési feladatot? Korlátozás propagálás A feladat transzformálása egy könnyebben megoldható, de ekvivalens feladattá Megoldás nem vész el A változók értéktartományainak szűkítése Propagátorok felelnek a korlátozásokért Speciális ütemezésben használatos - propagátorok Időablak és precedencia korlátozások Diszjunktív propagátor Erőforrás propagátorok Integrál jellegű Intervallum konzisztencia Keresési technikák Branch-and-bound Dichotom keresés Optimálás mint egy sorozat kielégíthetőségi probléma megoldása Lokális keresés Optimum nem garantált 65
Egyszerű időbeli propagátorok Időablak T start t est t = max{est t, T} T = 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 A korlátozás hatására szűkülhet t task időablaka, avagy szűkülhet start t értéktartománya Precedencia (t1 t2) lft t1 = min{lft t1, lft t2 d t2 } est t2 = max{est t2, est t1 + d t1 } t1 t2 0 1 2 3 4 5 6 7 8 9 10 11 4 5 6 7 8 9 10 11 12 13 66
Erőforrás propagátorok Time-table Olyan időszakok kijelölése, ahol biztos fut egy tevékenység lst t < eft t [lst t, eft t ] időszakban t tevékenység fut 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Diszjunktív propagátor Közös erőforrást igénylő tevékenységekre (t1 t2) (t2 t1) Ha lst t1 < eft t2 akkor (t2 t1) nem lehetséges Tehát (t1 t2) t1 0 1 2 3 4 5 6 7 8 9 10 11 67 t2 4 5 6 7 8 9 10 11 12 13
Intervallum konzisztencia Input-output teszt Alapötlet Több tevékenység egyazon erőforráson Feltesszük az egyikről, hogy nem lehet első (utolsó) Bebizonyítjuk, hogy így nincs elegendő idő a tevékenységek ütemezésére Tehát a kiválasztott tevékenység első (utolsó) kell, hogy legyen Ennek megfelelően szűkítjük az időablakokat Példa Kikövetkeztethető, hogy t1 első kell legyen Tehát (t1 {t2,t3}) Az időablakok szűkíthetők t1 t2 t3 0 1 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 2 3 4 5 6 7 8 68
Általános eset Adott Egyazon erőforrást igénylő tevékenységek halmaza I A teljes erőforrás igény I különböző részhalmazai P( i) : pi 1 2 i I J, J J I Ha max( lft est ) P( J) i J \ J 1 j J \ J i j 2 j i akkor vagy egy J 1 -beli tevékenység kell, hogy első legyen, vagy egy J 2 -beli kell, hogy utolsó legyen minden megoldásban 69
Általános eset (2) Magyarázat J J1 2 J Feltesszük, hogy J 1 beli tevékenységgel nem indítunk, és J 2 beli tevékenységgel nem fejezünk be Kiderül, hogy így nem áll elegendő idő rendelkezésre Tehát vagy J 1 beli tevékenységgel kell indítani, vagy J 2 beli tevékenységgel kell befejezni J ütemezését Példa (lásd előbb) J = {t1, t2, t3} J 1 = {t1} J 2 = {} I 70
Megoldás folyamata Klasszikus keresési módszerbe beágyazva branch-and-bound Döntések Melyik változóval foglakozzunk Milyen értéket kössünk le Propagálás a csomópontokban Időbeli korlátozások szűkülő időablakok Erőforrás korlátozások újabb sorrendi korlátozások, szűkülő időablakok A propagátorok egymást hívják Gyakorlatban is bevált módszer Más, alkalmazás-függő korlátozások is érvényesíthetőek Még így is lehet túl nehéz a probléma Újabb propagátorok Lokális keresés 71
A megoldás folyamata (2) feladat leírás kezdeti korlátozások új korlátozások keresési döntések korlátozás tár következtetett korlátozások, ellentmondás megoldás korlátozás propagálás 72
Konstruktív keresés Keresési fa Csomópont: döntések + változók adott értéktartománnyal Él: változó értékadása, tartomány szűkítése Levél: összes változó kiértékelve Méretek: mélység (d), elágazási tényező (b) Hogyan járjuk be? 73
Optimális megoldás (6x6 példa) 1 2 3 4 5 6 j1 [5 -- 1 --> 6] [6 -- 3 --> 9] [16 -- 6 --> 22] [30 -- 7 --> 37] [42 -- 3 --> 45] [49 -- 6 --> 55] j2 [0 -- 8 --> 8] [8 -- 5 --> 13] [13 -- 10 --> 23] [28 -- 10 --> 38] [38 -- 10 --> 48] [48 -- 4 --> 52] j3 [0 -- 5 --> 5] [5 -- 4 --> 9] [9 -- 8 --> 17] [18 -- 9 --> 27] [27 -- 1 --> 28] [38 -- 7 --> 45] j4 [8 -- 5 --> 13] [13 -- 5 --> 18] [22 -- 5 --> 27] [27 -- 3 --> 30] [30 -- 8 --> 38] [45 -- 9 --> 54] j5 [13 -- 9 --> 22] [22 -- 3 --> 25] [25 -- 5 --> 30] [38 -- 4 --> 42] [48 -- 3 --> 51] [52 -- 1 --> 53] j6 [13 -- 3 --> 16] [16 -- 3 --> 19] [19 -- 9 --> 28] [28 -- 10 --> 38] [45 -- 4 --> 49] [49 -- 1 --> 50] 74
Erőforrás-korlátos projekt ütemezés Projekt tevékenységek/aktivitások hálózata Erőforrások Különféle Korlátos kapacitás (ún. diszkrét erőforrás: > 1) Aktivitás erőforrás igény időtartam megszakítható/nem megszakítható Előzési korlátozások 75
76 Erőforrás-korlátos projekt ütemezés (2) Egyféle modell Aktivitás indexe i A Az i aktivitás végrehajtási ideje d i Erőforrás indexe k R Az i aktivitás igénye a k erőforrásból r ik A k erőforrás kapacitása c k Az előzési korláttal összekapcsolt i,j aktivitások halmaza P Az i aktivitás befejezési ideje end i A t időpontban futó aktivitások halmaza S t Feladat min end Megoldása igen nehéz i end end d, i, j P St j i j r c, t T, k R ik i end d t end k i i i
Összegzés Korlátozás programozás Erős leíró nyelv Megoldás: következtetés + keresés Propagátorok: a feladat transzformálása könnyebben megoldható formába Ki kell használni az adott probléma szerkezeti sajátosságait Speciális propagátorok Becslés Mindezzel együtt túl nehéz lehet a probléma Lokális keresés ha más nem segít Ne akadjon el lokális szélsőértékekben Hatékonyság Szomszédság generálása Kiértékelés Tabu keresés: tanulás + felejtés Igen nagyméretű feladatok is megoldhatók Becslés: hogy tudjuk, mennyire jól 77
Nyitott kérdések Tervezés és ütemezés integrálása Ha rossz a terv, azon már az ütemezés nem tud segíteni De elrontani egy jó tervet még lehet Nagyméretű, gyakorlati ütemezési feladatok megoldása Sajátos struktúra Könnyű és nehéz alfeladatok kombinációja Igazából kevés a nehéz döntés Ezeket kell mielőbb meghozni Szimmetria Sok azonos értékű megoldás Bizonytalanságok Több kritérium szerinti optimálás Ütemtervek végrehajtása A valóság mindig más Robusztus ütemezés nem érzékeny a bemenő adatok változására Újra-ütemezés 78