Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
ET Erőforrás tervezés Resource Planning
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék ET Erőforrás tervezés Resource Planning 2016/17 2. félév 5. Előadás Dr. Kulcsár Gyula egyetemi docens
2
Tartalom Párhuzamosan működő teljesen egyenértékű erőforrások jellemzői (P modell). A feladat egzakt megoldása. A P || Cmax feladat heurisztikus megoldása. A P | di | Lmax feladat heurisztikus megoldása. A P | pi =1; ri =integer; di =integer | Lmax feladat egzakt megoldása. 𝑃 || 𝑖 𝐶 𝑖
3
Párhuzamosan működő teljesen egyenértékű erőforrások ütemezése
4
A P modell jellemzői az erőforrások teljesen egyenértékűek,
az erőforrások az ütemezési időszakban folyamatosan rendelkezésre állnak, egy erőforrás egyszerre csak egy munkán dolgozhat, egy munkán egyszerre csak egy erőforrás dolgozhat, a munkák legkorábbi indítási időpontja nulla: ri = 0 (i=1, 2, …, n), minden egyes munkához egyetlen operáció tartozik, melyeknek pontosan ismert a végrehajtási ideje: pi (i=1, 2, …, n), az operációk végrehajtása nem szakítható meg.
5
A P modell jellemzői A megoldás (ütemterv) reprezentálása:
Minden erőforrásnak saját ütemezési vektora van. A vektorok hossza megegyezik az erőforrásokhoz rendelt munkák (operációk) számával. Minden egyes vektor tartalmazza az adott erőforráson végrehajtandó munkák indítási sorrendjét.
6
Párhuzamosan működő erőforrások ütemezése MSPT-szabály alkalmazásával
7
Az ütemezés célja A munkák befejezési időpontjainak összege legyen minimális. Az ütemezési modell formális leírása: 𝑃 || 𝑖 𝐶 𝑖
8
Az MSPT-algoritmus
9
Az MSPT algoritmus Modified Shortest Processing Time, MSPT
"módosított legrövidebb műveleti idejű munka előre„: Rendezzük a munkákat az SPT szabály alkalmazásával a műveleti idő szerint nemcsökkenő sorrendbe. Ezután képezzünk az erőforrások (gépek) számának megfelelő hosszú csoportokat. Az első csoport munkái az elsők rendre az egyes gépeken, a második csoport munkái a másodikok rendre az egyes gépeken és így tovább.
10
Optimális megoldás Az MSPT szabály a P||∑Ci feladat optimális megoldását adja. Az állítás bizonyítása megtalálható az alábbi könyvben: Peter Brucker, Scheduling Algorithms, Springer, 2007. Megjegyzés: Vegyük észre, hogy az adott feltételek mellett a ∑Ci célfüggvény minimalizálása egyben az átlagos átfutási időt is minimalizálja.
11
Illusztratív példa az MSPT-algoritmus működésére
12
SM1={ } SM2={ } SM3={ } J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 i 1 2 3 4 5 6 7
𝑝 𝑖 3 4 5 6 SM1={ } SM2={ } SM3={ } 7 8 9 10 M1 M2 M3 t 5 10 15 20 25 30 35
13
SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } SM1={ } SM2={ } SM3={ } J1 J2
5 10 15 20 25 30 35
14
{ SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } SM1={ 1 } SM2={ 8 } SM3={ 6 }
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 1 SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } { 2 3 4 5 6 SM1={ 1 } SM2={ 8 } SM3={ 6 } 7 8 9 10 M1 M2 M3 t 5 10 15 20 25 30 35
15
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 1 SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } { { { 2 3 4 5 6 SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } 7 8 9 10 M1 M2 M3 t 5 10 15 20 25 30 35
16
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 1 SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } { { { 2 3 4 5 6 SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } 7 8 9 10 M1 M2 M3 t 5 10 15 20 25 30 35
17
SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } J2 J3 J4 J5 J6 J7
t 5 10 15 20 25 30 35
18
SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } J2 J3 J4 J5 J6 J7
t 5 10 15 20 25 30 35
19
SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } J2 J3 J4 J5 J7 J9
t 5 10 15 20 25 30 35
20
SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } J2 J3 J5 J7 J9 J10
t 5 10 15 20 25 30 35
21
SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } J2 J5 J7 J9 J10 2
t 5 10 15 20 25 30 35
22
J5 J7 J9 J10 5 SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } 7 9 10 1 4 M1 8 3 M2 6 2 M3 t 5 10 15 20 25 30 35
23
J5 J9 J10 5 SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } 9 10 1 4 7 M1 8 3 M2 6 2 M3 t 5 10 15 20 25 30 35
24
J9 J10 SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } 9 10 1 4 7 M1 8 3 5 M2 6 2 M3 t 5 10 15 20 25 30 35
25
J10 SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } 10 1 4 7 M1 8 3 5 M2 6 2 9 M3 t 5 10 15 20 25 30 35
26
SM1={ 1, 4, 7, 10 } SM2={ 8, 3, 5 } SM3={ 6, 2, 9 } 1 4 7 10 M1 8 3 5 M2 6 2 9 M3 t 5 10 15 20 25 30 35
27
Készlet-diagram 𝑖 𝐶 𝑖 =1+10+7+6+17+3+14+1+20+24=103
A célfüggvény értéke: N 𝑖 𝐶 𝑖 = =103 10 Az átlagos készletszint értéke: 8 𝑁 𝑎 = 𝑖 𝐶 𝑖 𝐶 𝑚𝑎𝑥 = ≈4,29 6 Na ≈ 4,29 4 2 C6 = 3 C3 = 7 C1 = C8 = 1 C4 = 6 C2 = 10 C7 = 14 C5 = 17 C9 = 20 C10 = 24 5 10 15 20 25 t
28
Párhuzamosan működő erőforrások ütemezése LPT+LIST algoritmus alkalmazásával
29
Az ütemezés célja A összes munka (halmaz) teljesítésének időpontja legyen minimális (az utolsóként elkészülő munka befejezési időpontja a lehető legkorábbi legyen). Cmax = max{C1, … , CN} Cmaxmin Az ütemezési modell formális leírása: 𝑃 || 𝐶 𝑚𝑎𝑥
30
Az LPT+LIST algoritmus
31
Az LPT+LIST algoritmus
1. fázis: Előkészítés LPT algoritmussal. Rendezzük a munkákat a műveleti idő szerint nemnövekvő sorrendbe (Longest Processing Time, LPT). Ennek az a célja, hogy először a nagyobb terhelést jelentő munkákat helyezzük el az ütemtervben, majd aztán a kisebbeket. Ennek az előnye az, hogy a menet közben viszonylag jól kiegyenlített terhelések végére ne kellejen egy nagy "kilógó" munkát beilleszteni. 2. fázis: Ütemezés LIST algoritmussal. Az LPT szerint rendezett munkákat egyesével tesszük be az ütemtervbe úgy, hogy mindig a lista elejéről a még be nem ütemezettek közül a legnagyobb műveleti idejű munkáról hozunk döntést. A soron következő munkát ahhoz a géphez rendeljük hozzá, amelyik a legkorábban felszabadul a terhelései alól. A beütemezendő munkát mindig a kiválasztott gép ütemezési vektorának a végére helyezzük el.
32
Heurisztikus megoldás
A P||Cmax ütemezési feladat általános esetben nem oldható meg egzakt módon polinomiális futási idejű algoritmussal. Ezért heurisztikus megoldási módszert használunk, amely gyorsan előállít egy jó közelítő megoldást, de az optimális megoldást nem tudja garantálni. Az LPT+LIST heurisztikus módszer alapja: A munkák minél egyenletesebb szétosztása.
33
Megjegyzések Az LPT+LIST algoritmus felépítő jellegű: az ütemterv kidolgozása közben hozott döntést a későbbi döntések nem változtatják meg. Ha egy munkát hozzárendeltünk egy géphez, és beállítottuk a végrehajtási sorban a pozícióját, akkor a későbbi dontések ezt már nem változtatják meg, mert mindig a lista végére illesztjük a soron következő munkát. A feladat megoldására kereső algoritmusokat is alkalmazhatunk. (Lásd a később!)
34
Illusztratív példa az LPT+LIST algoritmus működésére
35
SM1={ } SM2={ } SM3={ } J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 i 1 2 3 4 5 6 7
𝑝 𝑖 3 4 5 6 SM1={ } SM2={ } SM3={ } 7 8 9 10 M1 M2 M3 t 5 10 15 20 25 30 35
36
LPT{ 5, 9, 10, 7, 2, 3, 4, 6, 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ }
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 1 LPT{ 5, 9, 10, 7, 2, 3, 4, 6, 1, 8 } 2 3 4 min{ CM1, CM2, CM3 } M* 5 6 SM1={ } SM2={ } SM3={ } 7 8 9 10 CM1= 0 CM2= 0 CM3= 0 M1 M2 M3 t 5 10 15 20 25 30 35
37
LPT{ 9, 10, 7, 2, 3, 4, 6, 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5 }
J1 J2 J3 J4 J6 J7 J8 J9 J10 1 LPT{ 9, 10, 7, 2, 3, 4, 6, 1, 8 } 2 3 4 min{ CM1, CM2, CM3 } M* 6 SM1={ 5 } SM2={ } SM3={ } 7 8 9 10 CM1= 10 CM2= 0 CM3= 0 5 M1 M2 M3 t 5 10 15 20 25 30 35
38
LPT{ 10, 7, 2, 3, 4, 6, 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5 }
J1 J2 J3 J4 J6 J7 J8 J10 1 LPT{ 10, 7, 2, 3, 4, 6, 1, 8 } 2 3 4 min{ CM1, CM2, CM3 } M* 6 SM1={ 5 } SM2={ 9 } SM3={ } 7 8 10 CM1= 10 CM2= 10 CM3= 0 5 M1 9 M2 M3 t 5 10 15 20 25 30 35
39
LPT{ 7, 2, 3, 4, 6, 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5 } SM2={ 9 }
J1 J2 J3 J4 J6 J7 J8 1 LPT{ 7, 2, 3, 4, 6, 1, 8 } 2 3 4 min{ CM1, CM2, CM3 } M* 6 SM1={ 5 } SM2={ 9 } SM3={ 10 } 7 8 CM1= 10 CM2= 10 CM3= 10 5 M1 9 M2 10 M3 t 5 10 15 20 25 30 35
40
LPT{ 2, 3, 4, 6, 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5, 7 } SM2={ 9 }
J1 J2 J3 J4 J6 J8 1 LPT{ 2, 3, 4, 6, 1, 8 } 2 3 4 min{ CM1, CM2, CM3 } M* 6 SM1={ 5, 7 } SM2={ 9 } SM3={ 10 } 8 CM1= 18 CM2= 10 CM3= 10 5 7 M1 9 M2 10 M3 t 5 10 15 20 25 30 35
41
LPT{ 3, 4, 6, 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5, 7 } SM2={ 9, 2 }
J1 J3 J4 J6 J8 1 LPT{ 3, 4, 6, 1, 8 } 3 4 min{ CM1, CM2, CM3 } M* 6 SM1={ 5, 7 } SM2={ 9, 2 } SM3={ 10 } 8 CM1= 18 CM2= 17 CM3= 10 5 7 M1 9 2 M2 10 M3 t 5 10 15 20 25 30 35
42
LPT{ 4, 6, 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5, 7 } SM2={ 9, 2 }
J1 J4 J6 J8 1 LPT{ 4, 6, 1, 8 } 4 min{ CM1, CM2, CM3 } M* 6 SM1={ 5, 7 } SM2={ 9, 2 } SM3={ 10, 3 } 8 CM1= 18 CM2= 17 CM3= 16 5 7 M1 9 2 M2 10 3 M3 t 5 10 15 20 25 30 35
43
LPT{ 6, 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5, 7 } SM2={ 9, 2 }
J1 J6 J8 1 LPT{ 6, 1, 8 } min{ CM1, CM2, CM3 } M* 6 SM1={ 5, 7 } SM2={ 9, 2 } SM3={ 10, 3, 4 } 8 CM1= 18 CM2= 17 CM3= 21 5 7 M1 9 2 M2 10 3 4 M3 t 5 10 15 20 25 30 35
44
LPT{ 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5, 7 } SM2={ 9, 2, 6 }
J1 J8 1 LPT{ 1, 8 } min{ CM1, CM2, CM3 } M* SM1={ 5, 7 } SM2={ 9, 2, 6 } SM3={ 10, 3, 4 } 8 CM1= 18 CM2= 20 CM3= 21 5 7 M1 9 2 6 M2 10 3 4 M3 t 5 10 15 20 25 30 35
45
LPT{ 8 } min{ CM1, CM2, CM3 } M* SM1={ 5, 7, 1 } SM2={ 9, 2, 6 }
J8 LPT{ 8 } min{ CM1, CM2, CM3 } M* SM1={ 5, 7, 1 } SM2={ 9, 2, 6 } SM3={ 10, 3, 4 } 8 CM1= 19 CM2= 20 CM3= 21 5 7 1 M1 9 2 6 M2 10 3 4 M3 t 5 10 15 20 25 30 35
46
LPT{ } min{ CM1, CM2, CM3 } M* SM1={ 5, 7, 1, 8 } SM2={ 9, 2, 6 }
10 3 4 M3 t 5 10 15 20 25 30 35
47
Készlet-diagram 𝐶 𝑚𝑎𝑥 =21 A célfüggvény értéke:
Az átlagos készletszint értéke: 10 C5 = C9 = C10 =10 𝑁 𝑎 = 𝑖 𝐶 𝑖 𝐶 𝑚𝑎𝑥 = ≈7,67 8 Na ≈ 7,67 C3 = 16 6 C2 = 17 C7 = 18 4 C1 = 19 C6 = C8 = 20 2 C4 = 21 5 10 15 20 25 t
48
Párhuzamosan működő erőforrások ütemezése EDD+LIST algoritmus alkalmazásával
49
Az ütemezés célja A legnagyobb késés minimalizálása Li = Ci - di
Lmax = max{L1, …, Li , …, LN} = maxi { Li } Lmaxmin Az ütemezési modell formális leírása: 𝑃 | 𝑑 𝑖 | 𝐿 𝑚𝑎𝑥
50
Az EDD+LIST algoritmus
51
Az EDD+LIST algoritmus
1. fázis: Előkészítés EDD algoritmussal. Rendezzük a munkákat a határidők szerint nemcsökkenő sorrendbe (Earliest Due Date, EDD). Ennek az a célja, hogy először a korábbi határidejű munkákat helyezzük el az ütemtervben, majd aztán a későbbi határidejűeket. 2. fázis: Ütemezés LIST algoritmussal. Az EDD szerint rendezett munkákat egyesével tesszük be az ütemtervbe úgy, hogy mindig a lista elejéről a még be nem ütemezettek közül a legkorábbi határidejű munkáról hozunk döntést. A soron következő munkát ahhoz a géphez rendeljük hozzá, amelyik a legkorábban felszabadul a terhelései alól. A beütemezendő munkát mindig a kiválasztott gép ütemezési vektorának a végére helyezzük el.
52
Heurisztikus megoldás
A P|di |Lmax ütemezési feladat általános esetben nem oldható meg egzakt módon polinomiális futási idejű algoritmussal. Ezért heurisztikus megoldási módszert használunk, amely gyorsan előállít egy jó közelítő megoldást, de az optimális megoldást nem tudja garantálni. Az EDD+LIST heurisztikus módszer alapja: Az 1|di |Lmax és a P||Cmax feladat megoldási módszerének kombinálása.
53
Megjegyzések Az EDD+LIST algoritmus felépítő jellegű: az LPT+LIST algoritmushoz hasonlóan. A feladat megoldására kereső algoritmusokat is alkalmazhatunk. (Lásd később!)
54
Párhuzamosan működő erőforrások ütemezése tartalékidő-orientált algoritmus alkalmazásával
55
Erőforrás-korlátos ütemezési modell
A feladat jellemzői: N számú egymástól független munka: Ji (i=1, 2, …, n) legkorábbi indítási időpont (ri) legkésőbbi befejezési időpont (di) szerelő szakmunkások (erőforrások) erőforrás-rendelkezésre állást definiáló lista: kezdési időpontok szerint növekvő sorrendbe rendezett, átlapolódás nélküli fix hosszúságú időintervallum-szakaszok az időintervallumokban külön-külön előírt számú munka végezhető el cél: a határidő túllépés maximális értéke a lehető legkisebb legyen (Lmax min)
56
Probléma-transzformáció
Továbbfejlesztett párhuzamos gépes ütemezési feladat Az erőforrások rendelkezésre-állási időintervallumait folyamatosan, decimális egészekkel sorszámozzuk lépések (s). A műveleti idők egységnyi értéket (lépést) vesznek fel (pi = 1). A munkák időadatait átalakítjuk lépésekre: ri a befogadó műszakot követő műszak lépésszáma di a befogadó műszak sorszáma A teljesítés időpontját (Ci) a befogadó műszak sorszámával kifejezett alakban keressük.
57
Probléma-transzformáció (folyt.)
(Li = Ci - di) a munka késését is egységnyi lépésben mérjük. Szerelő szakmunkások párhuzamosan működő virtuális erőforrások egy erőforrás egyszerre csak egy munkán dolgozhat egy munkán egyszerre csak egy erőforrás dolgozhat a virtuális erőforrások száma lépésenként eltérő lehet: P(s) A transzformált feladat: P(s) | pi=1; ri=egész; di=egész | Lmax
58
Időtartalék-orientált algoritmus a
P(s) | pi=1; ri=integer; di=integer | Lmax feladathoz { Rendezzük a Ji (i=1, 2, …, NJ) munkákat ri szerint nem csökkenő sorrendbe; item ← 1; while (item ≤ N) { s ← ritem; while (P(s) < 1) { s ← s + 1; if (s > smax) Kilépés megvalósítható megoldás nélkül; } R ← {Ji | Ji nem ütemezett és ri ≤ s}; mach ← 1; while (R nem üres) { Válasszuk ki a legkisebb di határidővel rendelkező Ji munkát az R-ből; R ← R \ {Ji}; Ütemezzük a Ji-t a mach.-edik gépre az s műszakban; Ci ← s; Li ← Ci - di; Ti ← max(0, Li); item ← item + 1; //folytatás a következő lapon
59
//folytatás if (mach + 1 ≤ P(s)) mach ← mach + 1; else { mach ← 1; s ← s + 1; while (P(s) < 1) { s ← s + 1; if (s > smax) Kilépés megvalósítható megoldás nélkül; } R ← R ∪ {Ji | Ji nem ütemezett és ri ≤ s} Visszatérés az elkészített optimális megoldással;
60
Eredmények Az algoritmus a Ci értékek kiszámításával egyben elő is állítja a keresett megoldást: A Ji munkát az s = Ci sorszámú műszakban kell elvégezni. Minimális késés: Lmaxmin. Polinomiális futási idő.
61
Illusztratív példa Ji Ri Di J1 1 J2 J3 2 3 J4 J5 J6 J7 J8 J9 s P(s)
1 J2 J3 2 3 J4 J5 J6 J7 J8 J9 s P(s) Terhelés Ütemezett munkák 4 J1 J4 J7 J8 1 2 J2 J5 3 J6 J9 J3 s=0 J1 1 J4 3 J7 J8 J9 Beütemezzük: J1, J4, J7, J8 Rendezett lista: Ri Ji Ri Di J1 1 J4 3 J7 J8 J9 J2 J5 J6 2 J3 s=1 J9 3 J2 1 J5 J6 2 Beütemezzük: J2, J5 s=2 J9 3 J6 1 2 J3 Beütemezzük: J6, J9, J3
62
Eredmény Ji Ri Di J1 1 J2 J3 2 3 J4 J5 J6 J7 J8 J9 Ci Li -1 Siet 1
1 J2 J3 2 3 J4 J5 J6 J7 J8 J9 Ci Li -1 Siet 1 Időben 2 -3
63
Az előadásvázlat elérhető az alábbi webcímen:
Köszönöm a figyelmet! Az előadásvázlat elérhető az alábbi webcímen:
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.