Ütemezési problémák Kis Tamás 1 1 MTA SZTAKI valamint ELTE, Operációkutatási Tanszék ELTE Problémamegoldó Szeminárium, 2012. ősz
Kivonat Alapfogalmak Mit is értünk ütemezésen? Gépütemezés 1 L max 1 rm C max P C max J C max Alkalmazások
Kivonat Alapfogalmak Mit is értünk ütemezésen? Gépütemezés 1 L max 1 rm C max P C max J C max Alkalmazások
Kivonat Alapfogalmak Mit is értünk ütemezésen? Gépütemezés 1 L max 1 rm C max P C max J C max Alkalmazások
Mit, Mikor, Hogyan? Adott egy feladathalmaz, amely minden elemének van erőforrás igénye, végrehatási ideje (amely függhet a hozzá rendelt erőforrásoktól), valamint lehetnek megelőzési korlátok a feladatok között. A feladatok végrehajtásukhoz erőforrásokat igényelnek. Megkülönböztetünk megújuló (gépek, munkaerő), és nem megújuló (felhasznált anyagok, energia) erőforrásokat. Az egyes erőforrásokból véges mennyiség érhető el (időegységenként / összesen). Meg kell határoznunk, hogy az egyes feladatokhoz mennyi (esetleg milyen) erőforrást rendeljünk, valamint a tevékenységek időzítését, úgy, hogy az erőforrás korlátokat betartsuk, és egy célfüggvényt minimalizáljunk, vagy maximalizáljunk.
Példák Egygépes ütemezés 1 L max Egyetlen gépünk van. A feladhalmaz elemei J 1,..., J n. Minden egyes J j feladatnak két paramétere van: p j hossz, és d j határidő. Határozzunk meg egy végrehajtási sorrendet a gépünkön úgy, hogy a maximális késés a lehető legkisebb legyen. Egy S megengedett ütemezés minden J j műveletnek megadja az S j kezdési idejét, és teljesíti a következő feltételeket: a műveletek végrehajtása nem fedi át egymást, azaz S j + p j S j vagy S j + p j S j, minden j j párra.
1 L max max. késés idő max késés idő
EDD sorrend Jelölések: J j p j d j C j (S) L j (S) = C j (S) d j L max (S) = max L j (S) j. feladat j. feladat hossza j. feladat határideje j. feladat befejezési ideje az S ütemtervben j. feladat késése az S ütemtervben (lehet negatív) maximális késés az S ütemtervben EDD sorrend: A feladatokat a határidő szerint nem csökkenő sorrendben ütemezzük. Tétel Az EDD sorrend mindig optimális megoldást ad. Biz Tf. van olyan input, amihez az optimális ütemtervben a feladatok nem EDD sorrendben vannak. Legyen S olyan optimális ütemterv, amiben az inverziók száma minimális az EDD sorrendhez képest. Ekkor van egymás utáni két feladat, J j, és J k, S -ban, amelyek nem EDD sorrendben vannak, azaz J j megelőzi J k feladatot, de d j > d k.
EDD sorrend C j (S ) = t + p j C k (S ) = t + p j + p k L j (S ) = t + p j d j L k (S ) = t + p j + p k d k Csere után: C j (S ) = t + p j + p k L j (S ) = t + p j + p k d j < L k (S ) (d j > d k ) C k (S ) = t + p k L k (S ) = t + p k d k < L k (S ) Tehát a csere után L max (S ) L max (S ). S * J j J k t idő S ' J k J j t idő
Ütemezés anyagkorlátokkal Ebben a problémában a gép mellett van néhány anyag (nem megújuló erőforrás), amelyek szükségesek (különböző mennyiségekben) a műveletek végrehajtásához. Legyen az anyagok száma g, az induló készlet az i-anyagból b 0 (i), i = 1,..., g. Adottak beszállítási időpontok 0 < u 1 < < u q, és mennyiségek b t (i) 0, azaz az u t időpontban b t (i) mennyiség érketik az i-anyagból. A feladathalmaz minden J j elemének két paramétere van: p j > 0 hossz, és egy a j R g + anyagigény vektor. Egy S megengedett ütemezés minden J j műveletnek megadja az S j kezdési idejét, és teljesíti a következő feltételeket: a műveletek végrehajtása nem fedi át egymást, azaz S j + p j S j vagy S j + p j S j, minden j j párra. Az anyagigény nem több, mint ami rendelkezésre áll minden időpontban, azaz j : S j <u t a j t 1 τ=0 b τ, t = 1,..., q + 1, ahol u q+1 = u q + p j.
1 rm C max Cél: az utolsónak ütemezett feladat befejezési idejének minimalizálása (C max ) 0 u 1 u 2 idő
2-approximáció az 1 rm C max problémára Első algoritmus Ütemezzük a feladatokat az utolsó beszállítási időpont után tetszőleges sorrendben. Második algoritmus 1. Rendezzük a feladatokat a teljes anyagigényük szerint nem csökkenő sorrendbe. 2. Ütemezzük a feladatokat a fenti sorrend szerint a legkorábbi időpontba.
Illusztráció 0 u 1 u 2 idő 0 u 1 u 2 idő
Az algoritmusok tulajdonságai Tétel A második algoritmus legalább olyan jó eredményt ad, mint az első. Tétel Az első algoritmus olyan ütemtervet ad, melynek hossza legfeljebb az optimum kétszerese. Biz Jelölje C max az optimális ütemterv hosszát. Vegyük észre, hogy u q < C max, és p j C max. Az algoritmus olyan ütemtervet ad, melynek hossza C alg1 max = u q + p j. Ezekből következik, hogy C alg1 max = u q + p j < 2C max
Legrosszabb eset a második algoritmusra Mutatunk egy feladat sereget, amely igazolja, hogy a második algoritmus is csak 2-approximáció. Adatok n feladat, mindegyik egységnyi hosszú (p j = 1) 2 anyag ( ) ( ) n 1 1 a 1 =, a 0 j =, 2 j n. n + j 3 ( ) ( ) n 1 0 b 0 =, b 0 t =, 1 t n 2, ( ) n + t 2 n 1 b n 1 =. 2n 3 Ekkor a feladatok sorrendje 1,..., n. Optimális megoldás: S 1 = n, S j = j 1, 2 j n. Második algoritmus: S 1 = 0, S 2 = n 1, S 3 = n,..., S n = 2n 3. Tehát C alg2 max /C max = (2n 3)/(n + 1) 2, ha n.
Ütemezés párhuzamos gépeken Adott m gép, és n feladat: a feladatokat gépekhez kell rendelni úgy. hogy minimalizáljuk a maximális befejezési időt. Adatok: Feladatok száma n, gépek száma m. Minden J j feladat, 1 j n, egyetlen paraméterrel rendelkezik: a feladat hossza, amit p j jelöl. A p j hossz nem függ a feladathoz választott géptől. Minden feladatot egy géphez kell rendelni az m gép közül. Az egy géphez rendelt feladatokat tetszőleges sorrendben lehet végrehajtani. Cél: A maximális befejezési idő minimalizálása.
Listás ütemezés Tétel A P C max probléma NP-nehéz. Listás ütemezési algoritmus 1. Helyezzük a feladatokat egy listára tetszőleges sorrendben. 2. A listáról egymás után dolgozzuk fel a feladatokat. A következő feladatot arra a gépre rakjuk, ahol a leghamarabb elkezdődhet.
A listás ütemezés menete (1) M 1 M 2 M 3 0 idő
A listás ütemezés menete (2) M 1 M 2 M 3 0 idő
A listás ütemezés menete (3) M 1 M 2 M 3 0 idő
A listás ütemezés menete (4) M 1 M 2 M 3 0 idő
A listás ütemezés menete (5) M 1 M 2 M 3 0 idő
A listás ütemezés menete (6) M 1 M 2 M 3 0 idő
A listás ütemezés tulajdonságai Alsó korlátok az optimumra: C max n j=1 p j/m C max max p j Tétel A listás ütemezés tetszőleges sorrend esetén (2 1/m)-approximáció. Biz Legyen J k az utolsóként befejeződő munka. A J k kezdéséig minden gép folyamatosan dolgozik, különben korábban kezdhetnénk. Tehát ha S k a J k kezdési ideje, akkor C alg max = C k = S k + p k n j=1,j k p j /m + p k = n p j /m + (1 1/m)p k j=1 (2 1/m)C max
A listás ütemezés tulajdonságai (folyt.) On-line ütemezés: nem ismerjük a feladatokat előre, hanem ahogy jön egy feladat, géphez kell rendelnünk. On-line algoritmus versenyképessége: mennyire tér el az on-line algoritmus eredménye az off-line optimumtól. Tétel A listás ütemezés olyan on-line algoritmus, aminek a versenyképessége (2 1/m). LPT sorrend: hossz szerint nem növekvő sorrendje a feladatoknak. Tétel A listás ütemezés az LPT sorrend esetén 4/3 approximáció.
Gyakorlati ütemezési problémák Gyártás ütemezés diszkrét folytonos (processz) Processzor ütemezés Operációs rendszer multitasking Szuperszámítógépek (a processzorok térbeli elrendezése, és szomszédsága is figyelembe veendő) Grid Tudományos mérések (Hubble teleszkóp) programja Sport események ütemezése (Amerikai baseball liga)