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 4. Előadás Dr. Kulcsárné Forrai Mónika egyetemi tanársegéd Dr. Kulcsár Gyula egyetemi docens
2
Erőforrás tervezés Egygépes ütemezési feladatok
3
Egygépes ütemezési feladatok
Az egy erőforrást (gépet) tartalmazó ütemezési feladatok megoldásával foglalkozunk. A nagyszámú feladat közül olyan példákat válogattunk össze, amelyek megoldásához szükséges algoritmusok legfeljebb polinomiális futási idejűek.
4
Egygépes ütemezési feladatok
Feltételezzük, hogy: az erőforrás az ütemezési időszakban folyamatosan rendelkezésre áll, az erőforrás egyszerre csak egy munkán dolgozhat, a munkák legkorábbi indítási időpontja nulla: 𝑟 𝑖 = 0 (i=1, 2, …, n), minden egyes munkához egyetlen operáció tartozik, melyeknek pontosan ismert a végrehajtási ideje: 𝑝 𝑖 (i=1, 2, …, n), az operációk végrehajtása nem szakítható meg.
5
Egygépes ütemezési feladatok
Az egygépes esetben a lehetséges ütemtervek száma: n! (n faktoriális). Egy lehetséges megoldás (permutáció) egy n elemű vektorral reprezentálható. A vektor elemeinek sorszáma mutatja a munka végrehajtási sorban elfoglalt helyét. Példa: Végrehajtási sorrend: 𝐽 1 → 𝐽 3 → 𝐽 4 → 𝐽 2 Sorszám 1 2 3 4 Munka indexe
6
Az SPT szabály alkalmazása
A feladat formális leírása: 1||∑ 𝐶 𝑖 Használható az 1|| 𝐶 sum jelölés is. A feladat értelmezése: Egyetlen erőforráson adott számú munkát kell elvégezni. A tanult alapértelmezett végrehajtási jellemzők vannak érvényben. Az ütemezés célja az, hogy válasszunk egy olyan végrehajtási sorrendet, amely mellett a munkák befejezési időpontjainak összege minimális lesz.
7
Az SPT szabály alkalmazása
A feladat megoldása: A "legrövidebb műveleti idejű munka előre" (Shortest Processing Time, SPT) szabály az 1||∑ 𝐶 𝑖 feladat optimális megoldását adja. Az SPT szabály alkalmazása: Rendezzük a munkákat a műveleti idők alapján nemcsökkenő sorrendbe és ennek megfelelően indítsuk el azokat.
8
Az SPT szabály alkalmazása
Az átlagos készletszint 𝑁 𝑎 a folyamatban lévő munkák számának időegységre vonatkoztatott átlagértéke: 𝑁 𝑎 = 𝑖=1 𝑛 𝐶 𝑖 𝐶 𝑚𝑎𝑥 Emlékeztető: n jelöli a munkák számát, 𝐶 𝑖 jelöli a 𝐽 𝑖 munka befejezési időpontját, 𝐶 𝑚𝑎𝑥 pedig az utolsó munka befejezési időpontjának szimbóluma. A szakirodalomban elterjedten használják a WIP rövidítést is, ami az adott időpillanatban folyamatban lévő (még be nem fejezett) munkák számát jelenti (Work In Process). Az ütemterv ismeretében megrajzolható a munkahely készlet-diagramja, amely a még be nem fejezett (várakozó és éppen folyamatban lévő) munkák számának időbeli alakulását mutatja.
9
Az SPT szabály alkalmazása
Feladat: Oldjuk meg az 1||∑ 𝐶 𝑖 ütemezési feladatot! Alapadatok: Megoldás: Rendezzük a munkákat SPT sorrendbe! i pi 1 5 2 3 8 4 Pozíció 1 2 3 4 i
10
Az SPT szabály alkalmazása
Az ütemterv Gantt diagramja: célfüggvény értéke: γ= 𝐶 𝑠𝑢𝑚 = 𝑖=1 𝑛 𝐶 𝑖 = 𝐶 1 + 𝐶 2 + 𝐶 3 + 𝐶 4 = =35 J4 J2 J1 J3 C4 = 2 C2 = 5 C1 = 10 C3 = 18
11
Az SPT szabály alkalmazása
Ábrázoljuk a megoldott feladat készlet-diagramját és számítsuk ki az átlagos készletszint értékét! Megoldás: Kezdetben minden munka a várakozó sorban helyezkedik el. Az első munka indítását követően három munka marad a tárolóban és egy a gépre kerül. Amint a munka befejeződik kikerül a rendszerből, vagyis a készletszint diagram értéke eggyel csökken. A következő munka a tárolóból a gépre kerül és ez addig folytatódik, míg a munkák el nem fogynak.
12
Az SPT szabály alkalmazása
A diagramról leolvashatóak a munkák befejezési időpontjai.
13
Az SPT szabály alkalmazása
A munkák (diagramról leolvasott) befejezési időpontjait behelyettesítjük a tanult képletbe: 𝑁 𝑎 = 𝑖=1 𝑛 𝐶 𝑖 𝐶 𝑚𝑎𝑥 = 𝐶 1 + 𝐶 2 + 𝐶 3 + 𝐶 4 𝐶 3 = = Na≈1,94
14
A WSPT szabály alkalmazása
Oldjuk meg következő ütemezési feladatot: 1||∑( 𝒘 𝒊 𝑪 𝒊 ) A feladat értelmezése: Egyetlen erőforráson adott számú munkát kell elvégezni. A tanult alapértelmezett végrehajtási jellemzők vannak érvényben. Az ütemezés célja az, hogy válasszunk egy olyan végrehajtási sorrendet, amely mellett a munkák befejezési időpontjainak súlyozott összege minimális lesz. A tanult végrehajtási jellemzők: az erőforrás az ütemezési időszakban folyamatosan rendelkezésre áll, az erőforrás egyszerre csak egy munkán dolgozhat, a munkák legkorábbi indítási időpontja nulla: 𝑟 𝑖 = 0 (i=1, 2, …, n), minden egyes munkához egyetlen operáció tartozik, melyeknek pontosan ismert a végrehajtási ideje: 𝑝 𝑖 (i=1, 2, …, n), az operációk végrehajtása nem szakítható meg. Az állítás bizonyítása megtalálható az alábbi cikkben: W. E. Smith, Various optimizers for single-stage production, Naval Research Logistics Quarterly, 3, 1956,
15
A WSPT szabály alkalmazása
A feladat megoldása: A "legkisebb súlyozott műveleti idejű munka előre" (Weighted Shortest Processing Time, WSPT) szabály az 1||∑( 𝑤 𝑖 𝐶 𝑖 ) feladat optimális megoldását adja. A WSPT szabály alkalmazása: Képezzük minden egyes munka esetében a 𝑤 𝑖 / 𝑝 𝑖 hányadosokat, ahol 𝑤 𝑖 a 𝐽 𝑖 munka súlyát, a 𝑝 𝑖 a 𝐽 𝑖 munka műveleti idejét jelenti, Majd rendezzük a munkákat a kapott 𝑤 𝑖 / 𝑝 𝑖 hányadosok alapján nemnövekvő sorrendbe és ennek megfelelően indítsuk el azokat.
16
A WSPT szabály alkalmazása
Feladat: Oldjuk meg az 1||∑( 𝑤 𝑖 𝐶 𝑖 ) ütemezési feladatot! Alapadatok: Megoldás: Számítsuk ki minden egyes munka fontossági mutatóját 𝑤 𝑖 / 𝑝 𝑖 ! Rendezzük a munkákat WSPT sorrendbe, vagyis a 𝑤 𝑖 / 𝑝 𝑖 értékek alapján nemnövekvő sorrendbe: i pi wi 1 5 2 3 6 8 4 i wi/pi 1 0,4 2 3 0,625 4 1,5 Pozíció 1 2 3 4 i
17
A WSPT szabály alkalmazása
Az ütemterv Gantt-diagramja: A célfüggvény értéke: γ = ∑( 𝑤 𝑖 𝐶 𝑖 ) = 𝑖=1 𝑛 ( 𝑤 𝑖 𝐶 𝑖 ) = 𝑤 1 𝐶 1 + 𝑤 2 𝐶 2 + 𝑤 3 𝐶 3 + 𝑤 4 𝐶 4 = 2⋅18+6⋅3+5⋅13+3⋅5 = 134 J2 J4 J3 J1 C2 = 3 C4 = 5 C3 = 13 C1 = 18
18
Az EDD szabály alkalmazása
A feladat formális leírása: 1| 𝑑 𝑖 | 𝑇 𝑚𝑎𝑥 A feladat értelmezése: Egyetlen erőforráson adott számú munkát kell elvégezni. A tanult alapértelmezett végrehajtási jellemzőkön túl azt is figyelembe kell venni, hogy minden egyes munkának saját dedikált határideje van. Az ütemezés célja az, hogy válasszunk egy olyan végrehajtási sorrendet, amely mellett a munkák legnagyobb csúszása (határidő túllépése) minimális lesz. A tanult végrehajtási jellemzők: az erőforrás az ütemezési időszakban folyamatosan rendelkezésre áll, az erőforrás egyszerre csak egy munkán dolgozhat, a munkák legkorábbi indítási időpontja nulla: 𝑟 𝑖 = 0 (i=1, 2, …, n), minden egyes munkához egyetlen operáció tartozik, melyeknek pontosan ismert a végrehajtási ideje: 𝑝 𝑖 (i=1, 2, …, n), az operációk végrehajtása nem szakítható meg.
19
Az EDD szabály alkalmazása
γ = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝑇 𝑖 }→min. Megjegyzés: A feladat a maximális késés minimalizálásaként is megfogalmazható: 1| 𝑑 𝑖 | 𝐿 𝑚𝑎𝑥 A feladat megoldása: A "legkorábbi határidejű munka előre" (Earliest Due Date, EDD) szabály az 1| 𝑑 𝑖 | 𝑇 𝑚𝑎𝑥 feladat optimális megoldását adja. Az EDD szabály alkalmazása: Rendezzük a munkákat a határidő alapján nemcsökkenő sorrendbe és ennek megfelelően indítsuk el azokat.
20
Az EDD szabály alkalmazása
Oldjuk meg az 1| 𝑑 𝑖 | 𝑇 𝑚𝑎𝑥 ütemezési feladatot! Alapadatok: Megoldás: Rendezzük a munkákat EDD sorrendbe, vagyis a határidők alapján nemcsökkenő sorrendbe: Az ütemterv Gantt-diagramja: i pi di 1 5 6 2 3 8 20 4 Pozíció 1 2 3 4 i J4 J1 J2 J3 C4 = 2 C1 = 7 C2 = 10 C3 = 18
21
Az EDD szabály alkalmazása
Foglaljuk táblázatba az eredményeket az ütemezési sorrend szerint: A célfüggvény értéke (a maximális csúszás): γ = 𝑇 𝑚𝑎𝑥 = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝑇 𝑖 } = max{ 𝑇 1 , 𝑇 2 , 𝑇 3 , 𝑇 4 }=max{1,2,0,0}=2 A maximális késés: 𝐿 𝑚𝑎𝑥 = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝐿 𝑖 } = max{ 𝐿 1 , 𝐿 2 , 𝐿 3 , 𝐿 4 }=max{1,2,−2,−2}=2 Megjegyzés: Ha van csúszás ( 𝑇 𝑚𝑎𝑥 > 0), akkor 𝑇 𝑚𝑎𝑥 = 𝐿 𝑚𝑎𝑥 , egyébként 𝑇 𝑚𝑎𝑥 = 0, de 𝐿 𝑚𝑎𝑥 lehet negatív értékű is (minden munka határidő előtt fejeződik be)! i pi di Ci Li Ti 4 2 -2 1 5 6 7 3 8 10 20 18
22
A Moor-algoritmus alkalmazása
A feladat formális leírása: 1| 𝑑 𝑖 | 𝑈 𝑖 A feladat értelmezése: Egyetlen erőforráson adott számú munkát kell elvégezni. A tanult alapértelmezett végrehajtási jellemzőkön túl azt is figyelembe kell venni, hogy minden egyes munkának saját dedikált határideje van. Az ütemezés célja az, hogy válasszunk egy olyan végrehajtási sorrendet, amely mellett a határidőt túllépő munkák száma minimális lesz. γ = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝑈 𝑖 } →min. A tanult végrehajtási jellemzők: az erőforrás az ütemezési időszakban folyamatosan rendelkezésre áll, az erőforrás egyszerre csak egy munkán dolgozhat, a munkák legkorábbi indítási időpontja nulla: 𝑟 𝑖 = 0 (i=1, 2, …, n), minden egyes munkához egyetlen operáció tartozik, melyeknek pontosan ismert a végrehajtási ideje: 𝑝 𝑖 (i=1, 2, …, n), az operációk végrehajtása nem szakítható meg. Átfutási idő (Flow time): 𝐹 𝑖 = 𝐶 𝑖 − 𝑅 𝑖 Késés (Lateness): 𝐿 𝑖 = 𝐶 𝑖 − 𝑑 𝑖 Csúszás (Tardiness): 𝑇 𝑖 =max{0, 𝐿 𝑖 } Sietés (Earliness): 𝐸 𝑖 =max{0, −𝐿 𝑖 } Egységnyi büntetés (Unit penalty): Ui={1 ha 𝐶 𝑖 > 𝑑 𝑖 0 egyébként }
23
A Moor-algoritmus alkalmazása
Jelölje S a munkák ütemezett halmazát, és t az aktuális időpontot. A feladat megoldását végző Moor-algoritmus formális leírása: Rendezzük a munkákat EDD szerint: 𝑑 1 ≤ 𝑑 2 ≤ ≤ 𝑑 𝑛 ; S := φ; //ures halmaz t := 0; FOR i := 1 to n DO BEGIN S := S ∪ {i}; t := t + 𝑝 𝑖 ; IF t > 𝑑 𝑖 THEN Válasszuk ki azt a j munkát az S halmazból, amelyiknek legnagyobb a 𝑝 𝑗 értéke; S := S\{j}; t := t − 𝑝 𝑗 ; END
24
A Moor-algoritmus alkalmazása
A bemutatott algoritmus az 1| 𝑑 𝑖 | 𝑈 𝑖 feladat optimális megoldását adja. Az algoritmus értelmezése: Az ütemterv építését elölről kezdjük a munkák EDD szerinti sorrendje alapján. A munkákat egyesével rakjuk be az ütemezési vektorba balról jobbra haladva. Ha a beillesztett munka befejezési időpontja meghaladja a munka határidejét, akkor válasszuk ki a már beütemezett munkák közül a legnagyobb műveleti idejűt és vegyük ki az ütemezési vektorból. A lépéssort addig folytassuk amíg a munkák el nem fogynak. Megjegyzés: Az ütemezési vektorból kiemelt munkák végrehajtási sorrendje tetszőleges lehet, mert azok mind késnek! A feladat az ilyen munkák számának minimalizálása volt. Az állítás bizonyítása megtalálható az alábbi könyvben: Peter Brucker: Scheduling Algorithms, Springer, 2007.
25
A Moor-algoritmus alkalmazása
Oldjuk meg az 1| 𝑑 𝑖 | 𝑈 𝑖 ütemezési feladatot! Alapadatok: Megoldás: Rendezzük a munkákat EDD sorrendbe, vagyis a határidők alapján nemcsökkenő sorrendbe: i pi di 1 5 6 2 3 8 20 4 Pozíció 1 2 3 4 i
26
A Moor-algoritmus alkalmazása
Tegyük be a 𝐽 4 munkát az ütemezési vektorba: s = { 4 } Ekkor t = 𝐶 4 = 2. Nincs késés( 𝑑 4 = 4)! Tegyük be a 𝐽 1 munkát az ütemezési vektorba: s = { 4, 1 } Ekkor t = 𝐶 1 = 7. Mivel 𝑑 1 = 6, így a munka késik! Válasszuk ki a beütemezettek közül a legnagyobb műveleti idejű munkát: Ez a 𝐽 1 lesz. Vegyük ki az ütemtervből és tegyük félre: s = { 4 } és V = { 1 } Tegyük be a soron következő a 𝐽 2 munkát az ütemtervbe: s = { 4, 2 } és V = { 1 } Ekkor t = 𝐶 2 = = 5. Mivel 𝑑 2 = 8, így nincs késés! Tegyük be az utolsó J3 munkát az ütemtervbe: s = { 4, 2, 3 } és V = { 1 } Ekkor t = 𝐶 3 = = 13. Mivel 𝑑 3 = 20, így nincs késés!
27
A Moor-algoritmus alkalmazása
A végeredményt az S (nem késő munkák) halmazának és a V (késő munkák) halmazának egyesítése jelenti: Foglaljuk táblázatba az eredményeket az ütemezési sorrend szerint! Használjuk a korábban megtanult definíciókat! Késés (Lateness): 𝐿 𝑖 = 𝐶 𝑖 − 𝑑 𝑖 Csúszás (Tardiness): 𝑇 𝑖 =max{0, 𝐿 𝑖 } Egységnyi büntetés (Unit penalty): 𝑈 𝑖 = 1, ha 𝐶 𝑖 > 𝑑 𝑖 0, egyébként Pozíció 1 2 3 4 i
28
A Moor-algoritmus alkalmazása
Az eredmények táblázatba foglalása az ütemezési sorrend szerint: A célfüggvény értéke (a késő munkák száma): γ = ∑ 𝑈 𝑖 = 𝑖=1 𝑛 ( 𝑈 𝑖 ) ) = 𝑈 1 + 𝑈 2 + 𝑈 3 + 𝑈 4 = =1 i pi di Ci Li Ti Ui 4 2 -2 3 8 5 -3 20 13 -7 1 6 18 12
29
A Lawler-algoritmus alkalmazása
A feladat formális leírása: 1|prec| 𝑓 𝑚𝑎𝑥 Ahol 𝑓 𝑚𝑎𝑥 = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝑓 𝑖 ( 𝐶 𝑖 )} és 𝑓 𝑖 monoton növekvő (reguláris) függvénye a 𝐶 𝑖 értéknek. A feladat értelmezése: Egyetlen erőforráson adott számú munkát kell elvégezni. A tanult alapértelmezett végrehajtási jellemzők vannak érvényben, továbbá a munkák között sorrendi előírások lehetnek. Az ütemezés célja az, hogy válasszunk egy olyan végrehajtási sorrendet, amely megfelel a sorrendi kötöttségeknek és a választott 𝑓 𝑖 célfüggvény értéke minimális értéket vesz fel. Az 𝑓 𝑖 szimbólum jelölheti többek között például az 𝐿 𝑖 késést vagy a 𝑇 𝑖 csúszást. A tanult végrehajtási jellemzők: az erőforrás az ütemezési időszakban folyamatosan rendelkezésre áll, az erőforrás egyszerre csak egy munkán dolgozhat, a munkák legkorábbi indítási időpontja nulla: 𝑟 𝑖 = 0 (i=1, 2, …, n), minden egyes munkához egyetlen operáció tartozik, melyeknek pontosan ismert a végrehajtási ideje: 𝑝 𝑖 (i=1, 2, …, n), az operációk végrehajtása nem szakítható meg.
30
A Lawler-algoritmus alkalmazása
Az algoritmus bemutatásakor használt Jelölések: J a munkák halmaza: J = {1, 2, ..., n}, i, j, j* ∈ J az elvégzendő munkák szimbólumai, S ⊆ J a már beütemezett munkák halmaza, U = J \ S a még be nem ütemezett munkák halmaza (az S komplementere). V ⊆ U azoknak a még be nem ütemezett munkáknak a halmaza, amelyeknek az aktuális időpontban nincs be nem ütemezett rákövetkező munkájuk a precedencia gráfban.
31
A Lawler-algoritmus alkalmazása
A feladat megoldását végző algoritmus leírása: 1. lépés: Inicializálás. Legyen kezdetben S = { } üres halmaz, minden munka ütemezetlen U = {1, 2, ..., n}, és V tartalmazza azon munkákat, amelyekre nincs rákövetkező munka a precedencia gráfban. 2. lépés: Kiválasztás. Válasszuk ki azt a j* ∈ V munkát, amelyre teljesül az alábbi feltétel: 𝑓 j∗ ( j∈U 𝑝 𝑗 )= 𝑚𝑖𝑛 i∈V ( 𝑓 𝑖 ( j∈U 𝑝 𝑗 )) U unscheduled f: ci-di Ci uaz, mert akármilyen sorrendbe teszem be uannyira lesz a vége
32
A Lawler-algoritmus alkalmazása
3. lépés: Aktualizálás. Tegyük át a j* kiválasztott munkát az U halmazból az S ütemtervbe a már beütemezett munkák elé és frissítsük a V halmaz tartalmát. 4. lépés: Feltételvizsgálat. Ha az U halmaz üres akkor készen vagyunk, egyébként folytassuk a 2. lépéssel. A bemutatott algoritmus az 1| prec| 𝑓 𝑚𝑎𝑥 feladat optimális megoldását adja. Az állítás bizonyítása megtalálható az alábbi cikkben: E. L. Lawler: Optimal sequencing of a single machine subject to precedence constraints, Management Science, 19, 544–546, 1973.
33
A Lawler-algoritmus alkalmazása
Az algoritmus értelmezése: Az ütemterv építését hátulról előre haladva végezzük. A munkákat egyesével rakjuk be az ütemezési vektorba a végéről (jobbról) az eleje felé (balra) haladva. A kiválasztás során az aktuálisan beütemezhető munkák közül választunk. Az a munka tekinthető kiválaszthatónak, amelyiknek nincs beütemezetlen rákövetkező munkája. A jelöltek közül azt a munkát választjuk ki, amelyiket a még beütemezetlen munkák műveleti idejének összegével behelyettesítve az fi függvénybe a legkisebb értéket kapjuk. A kiválasztott munkát betesszük az ütemezési vektorba közvetlenül a már beütemezettek elé, és kivesszük az ütemezetlen munkák közül. Ezt követően frissítjük a beütemezhető munkák halmazát (a kiválasztott munka beütemezése következtében további munkák válhatnak ütemezhetővé azáltal, hogy a precedencia gráfban a rákövetkező munkájuk most került éppen beütemezésre).
34
A Lawler-algoritmus alkalmazása
Az általános formában megfogalmazott feladat formális leírása: 1| prec| 𝑓 𝑚𝑎𝑥 ahol 𝑓 𝑚𝑎𝑥 = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝑓 𝑖 ( 𝐶 𝑖 )} és 𝑓 𝑖 monoton növekvő (reguláris) függvénye a 𝐶 𝑖 értéknek.
35
A Lawler-algoritmus alkalmazása
Az általánosított feladat (1|prec| 𝑓 𝑚𝑎𝑥 )egy speciális esete a következő: 1| prec, 𝑑 𝑖 | 𝐿 𝑚𝑎𝑥 ahol 𝐿 𝑚𝑎𝑥 = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝐿 𝑖 ( 𝐶 𝑖 )} Mivel 𝑓 𝑚𝑎𝑥 = 𝐿 𝑚𝑎𝑥 és 𝑓 𝑖 ( 𝐶 𝑖 ) = 𝐿 𝑖 ( 𝐶 𝑖 ) = 𝐶 𝑖 − 𝑑 𝑖 Egyetlen erőforráson adott számú munkát kell elvégezni. A tanult alapértelmezett végrehajtási jellemzők vannak érvényben, továbbá a munkák között sorrendi előírások lehetnek. Az ütemezés célja az, hogy válasszunk egy olyan végrehajtási sorrendet, amely megfelel a sorrendi kötöttségeknek és a legnagyobb mértékű határidő túllépés minimális legyen. Ez lesz a számpélda
36
A Lawler-algoritmus alkalmazása
Megjegyzés: Az 1|prec| 𝑓 𝑚𝑎𝑥 feladat speciális esete a korábban részletesen vizsgált 1| 𝑑 𝑖 | 𝐿 𝑚𝑎𝑥 feladat is. A sorrendi korlátozások nélküli esetben a Lawler algoritmus az EDD szabályra egyszerűsödik.
37
A Lawler-algoritmus alkalmazása
Feladat: Oldjuk meg az 1| prec, 𝑑 𝑖 | 𝐿 𝑚𝑎𝑥 ütemezési feladatot! Alapadatok: Az előírt megelőzési relációkat ábrázoló precedencia gráf: i pi di 1 5 15 2 3 18 8 14 4 L=Ci-di Legnaga még be nem utemezettek müv.idejenek osszege nagyobb határid. A vegere
38
A Lawler-algoritmus alkalmazása
Megoldás: 0. induló állapot Inicializálás: S = { }, U = { 1, 2, 3, 4 }, V = { 1, 3, 4 }
39
A Lawler-algoritmus alkalmazása
Válasszuk ki a j* ∈ V munkát figyelembe véve, hogy most 𝑓 𝑖 = 𝐿 𝑖 . Először számítsuk ki az aktuális befejezési időpontot: j∈U 𝑝 𝑗 = 𝑝 1 + 𝑝 2 + 𝑝 3 + 𝑝 4 = = 18 A kapott eredményt helyettesítsük be az Li függvénybe: 𝐿 𝑗 ∗ ( j∈U 𝑝 𝑗 ) = 𝐿 𝑗 ∗ (18) = 𝑚𝑖𝑛 i∈V ( 𝐿 𝑖 (18)) = min( 𝐿 1 (18), 𝐿 3 (18), 𝐿 4 (18)) = min(18−15,18−14,18−18)= 𝐿 4 =0 j∗=4
40
A Lawler-algoritmus alkalmazása
Aktualizálás: Tegyük át a j* kiválasztott munkát az U halmazból az S ütemtervbe a már beütemezett munkák elé és frissítsük a V halmaz tartalmát. S = { 4 }, U = { 1, 2, 3 }, V = { 1, 3 }
41
A Lawler-algoritmus alkalmazása
Feltételvizsgálat: Az U halmaz nem üres! Folytassuk a következő elem kiválasztásával! j∈U 𝑝 𝑗 = 𝑝 1 + 𝑝 2 + 𝑝 3 = 5+3+8=16 𝐿 𝑗 ∗ ( j∈U 𝑝 𝑗 ) = 𝐿 𝑗 ∗ (16)= 𝑚𝑖𝑛 i∈V ( 𝐿 𝑖 (16)) = min( 𝐿 1 (16), 𝐿 3 (16)) = min(16−15,16−14) = 𝐿 1 =1 𝑗 ∗ = 1
42
A Lawler-algoritmus alkalmazása
Aktualizálás: a kiválasztott munkát (1) behelyezzük a már beütemezett munka (4) elé. S = { 1, 4 }, U = {2, 3}, V = { 3 }
43
A Lawler-algoritmus alkalmazása
Feltételvizsgálat: Az U halmaz nem üres! Folytassuk a következő elem kiválasztásával! Ebben az esetben nincs választás mert csak egy jelölt munka van: 𝑗 ∗ = 3 Aktualizálás: a kiválasztott munkát (3) behelyezzük a már beütemezett munkák (1 és 4) elé. S = { 3, 1, 4 }, U = { 2 }, V = { 2 }
44
A Lawler-algoritmus alkalmazása
Most már a 2. munka is kiválaszthatóvá vált: 𝑗 ∗ = 2 S = { 2, 3, 1, 4 }, U = { }, V = { } Az U halmaz üres! Készen vagyunk! Minden munkát beütemeztünk.
45
A Lawler-algoritmus alkalmazása
Foglaljuk táblázatba az eredményeket az ütemezési sorrend szerint! A célfüggvény értéke (a maximális késés): γ = 𝐿 𝑚𝑎𝑥 = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝐿 𝑖 } = max{ 𝐿 1 , 𝐿 2 , 𝐿 3 , 𝐿 4 }= max{1,−15,−6,0} = 1 A maximális csúszás: 𝑇 𝑚𝑎𝑥 = 𝑚𝑎𝑥 𝑖=1 𝑛 { 𝑇 𝑖 } = max{ 𝑇 1 , 𝑇 2 , 𝑇 3 , 𝑇 4 } = max{1,0,0,0 }= 1 i pi di Ci Li Ti 2 3 18 -15 8 14 -6 1 5 15 16 4
46
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.