Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Hasonló dokumentumok
Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Az optimális megoldást adó algoritmusok

angolul: greedy algorithms, románul: algoritmi greedy

Ütemezési feladatok. Az ütemezési feladatok vizsgálata az 50-es évek elején kezdődött, majd

Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

Rugalmas gyártórendszerek (FMS) termelésprogramozása (ismétlés DTFSZTIR)

Általános algoritmustervezési módszerek

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Virtuális vállalat JÁRMŰIPARI ALKATRÉSZGYÁRTÁS TERMELÉSPROGRAMOZÁSI FELADATAINAK MODELLEZÉSE ÉS MEGOLDÁSA

Algoritmusok bonyolultsága

A Szállítási feladat megoldása

Ütemezés gyakorlat. Termelésszervezés

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék

Példa. Job shop ütemezés

A számítástudomány alapjai

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Számítógépes döntéstámogatás. Genetikus algoritmusok

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Gyártórendszerek dinamikája

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Hatvany József Informatikai Tudományok Doktori Iskola

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Üzemszervezés A BMEKOKUA180

Programozási módszertan. Mohó algoritmusok

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Ütemezési Gyakorlatok

Korlátozás és szétválasztás elve. ADAGOLO adattípus

Idő-ütemterv hálók - I. t 5 4

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Üzemszervezés. Projekt tervezés. Dr. Juhász János

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Tanszék

Ütemezés tervezése A leghátrányosabb helyzet kistérségek fejlesztési és együttm ködési kapacitásainak meger

Algoritmuselmélet 2. előadás

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Idõ-ütemterv há lók - I. t 5 4

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Mohó stratégia. Feladat: Megoldás:

Ütemezési modellek. Az ütemezési problémák osztályozása

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

Informatikai alkalmazásfejlesztő alkalmazásfejlesztő Információrendszer-elemző és - Informatikai alkalmazásfejlesztő

Vállalati modellek. Előadásvázlat. dr. Kovács László

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Tanszék

Nagy Gábor compalg.inf.elte.hu/ nagy

V. DISZKRÉT OPTIMALIZÁCIÓ

2. Előadás Projekt ütemezés. Solver használata. Salamon Júlia

Programozási segédlet

álló algoritmusosztályok. Approximációs algoritmusoknak egy olyan algoritmust. Minden algoritmusnak polinomiális idejűnek kell

MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Gráfelméleti feladatok. c f

Approximációs algoritmusok

Kupac adatszerkezet. 1. ábra.

2. Visszalépéses keresés

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Budapesti Műszaki és Gazdaságtudományi Egyetem Sebestyén Zoltán Projektmenedzsment Gyakorló vizsgafeladatok Kiegészítő oktatási segédanyag

Adatszerkezetek 2. Dr. Iványi Péter

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Felvételi tematika INFORMATIKA

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

ELŐADÁS ÁTTEKINTÉSE. Tevékenységek tervezése Gantt diagramm

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Online migrációs ütemezési modellek

Gráfszínezési problémák és ütemezési alkalmazásaik

2. Visszalépéses stratégia

Operációs rendszerek II. Folyamatok ütemezése

Számjegyes vagy radix rendezés

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Adatszerkezetek II. 6. előadás

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

Algoritmizálás, adatmodellezés tanítása 8. előadás

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Informatikai alkalmazásfejlesztő alkalmazásfejlesztő Információrendszer-elemző és - Informatikai alkalmazásfejlesztő

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

1. ábra. Számláló rendezés

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

INFORMATIKA javítókulcs 2016

A projekt idő-, erőforrás és költségterve 1. rész

Diszkrét matematika 2.C szakirány

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék. Dr. Kulcsár Gyula egyetemi docens

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

Operációkutatás. 4. konzultáció: Szállítási feladat. A feladat LP modellje

Átírás:

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék 2016/17 2. félév 5. Előadás Dr. Kulcsár Gyula egyetemi docens

Tartalom 1. Párhuzamosan működő teljesen egyenértékű erőforrások jellemzői (P modell). 2. A feladat egzakt megoldása. P C i i 3. A P C max feladat heurisztikus megoldása. 4. A P d i L max feladat heurisztikus megoldása. 5. A P p i =1; r i =integer; d i =integer L max feladat egzakt megoldása.

Párhuzamosan működő teljesen egyenértékű erőforrások ütemezése

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: r i = 0 (i=1, 2,, n), minden egyes munkához egyetlen operáció tartozik, melyeknek pontosan ismert a végrehajtási ideje: p i (i=1, 2,, n), az operációk végrehajtása nem szakítható meg.

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.

Párhuzamosan működő erőforrások ütemezése MSPT-szabály alkalmazásával

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: P C i i

Az MSPT-algoritmus

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.

Optimális megoldás Az MSPT szabály a P C i 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 C i célfüggvény minimalizálása egyben az átlagos átfutási időt is minimalizálja.

Illusztratív példa az MSPTalgoritmus működésére

J 1 J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10 1 2 3 4 5 6 7 8 9 10 i 1 2 3 4 5 6 7 8 9 10 p i 1 7 6 5 10 3 8 1 10 10 S M1 ={ } S M2 ={ } S M3 ={ } M1 M2 M3 0 5 10 15 20 25 30 35 t

J 1 J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10 1 2 3 4 5 6 7 8 9 10 SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } S M1 ={ } S M2 ={ } S M3 ={ } M1 M2 M3 0 5 10 15 20 25 30 35 t

{ J 1 J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10 1 2 3 4 5 6 7 8 9 10 SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } S M1 ={ 1 } S M2 ={ 8 } S M3 ={ 6 } M1 M2 M3 0 5 10 15 20 25 30 35 t

{ { { J 1 J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10 1 2 3 4 5 6 7 8 9 10 SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 M2 M3 0 5 10 15 20 25 30 35 t

{ { { J 1 J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10 1 2 3 4 5 6 7 8 9 10 SPT: { 1, 8, 6, 4, 3, 2, 7, 5, 9, 10 } S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 M2 M3 0 5 10 15 20 25 30 35 t

J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10 2 3 4 5 6 7 8 9 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 M2 M3 0 5 10 15 20 25 30 35 t

J 2 J 3 J 4 J 5 J 6 J 7 J 9 J 10 2 3 4 5 6 7 9 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 8 M2 M3 0 5 10 15 20 25 30 35 t

J 2 J 3 J 4 J 5 4 3 2 5 J 7 J 9 J 10 7 9 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 8 M2 M3 6 0 5 10 15 20 25 30 35 t

J 2 J 3 3 2 J 5 J 7 J 9 J 10 5 7 9 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 8 M2 4 M3 6 0 5 10 15 20 25 30 35 t

J 2 2 J 5 J 7 J 9 J 10 5 7 9 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 8 M2 4 3 M3 6 0 5 10 15 20 25 30 35 t

J 5 J 7 J 9 J 10 5 7 9 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 8 M2 4 3 M3 6 2 0 5 10 15 20 25 30 35 t

J 5 5 J 9 J 10 9 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 8 M2 4 3 7 M3 6 2 0 5 10 15 20 25 30 35 t

J 9 J 10 9 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 4 7 8 M2 3 5 M3 6 2 0 5 10 15 20 25 30 35 t

J 10 10 S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 4 7 8 M2 3 5 M3 6 2 9 0 5 10 15 20 25 30 35 t

S M1 ={ 1, 4, 7, 10 } S M2 ={ 8, 3, 5 } S M3 ={ 6, 2, 9 } M1 1 4 7 10 8 M2 3 5 M3 6 2 9 0 5 10 15 20 25 30 35 t

Készlet-diagram N 10 8 6 N a 4,29 4 A célfüggvény értéke: C i i = 1+10+7+6+17+3+14+1+20+24=103 Az átlagos készletszint értéke: N a = i C i = 103 C max 24 4,29 2 C 1 = C 8 = 1 C 6 = 3 C 3 = 7 C 4 = 6 C 2 = 10 C 7 = 14 C 5 = 17 C 9 = 20 C 10 = 24 5 10 15 20 25 t

Párhuzamosan működő erőforrások ütemezése LPT+LIST algoritmus alkalmazásával

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). C max = max{c 1,, C N } C max min Az ütemezési modell formális leírása: P C max

Az LPT+LIST algoritmus

Az LPT+LIST algoritmus 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.

Heurisztikus megoldás A P C max ü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.

Megjegyzések 1. 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. 2. A feladat megoldására kereső algoritmusokat is alkalmazhatunk. (Lásd a később!)

Illusztratív példa az LPT+LIST algoritmus működésére

J 1 J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10 1 2 3 4 5 6 7 8 9 10 i 1 2 3 4 5 6 7 8 9 10 p i 1 7 6 5 10 3 8 1 10 10 S M1 ={ } S M2 ={ } S M3 ={ } M1 M2 M3 0 5 10 15 20 25 30 35 t

J 1 J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10 M1 M2 M3 1 2 3 4 5 6 7 8 9 10 LPT{ 5, 9, 10, 7, 2, 3, 4, 6, 1, 8 } min{ C M1, C M2, C M3 } M* S M1 ={ } S M2 ={ } S M3 ={ } C M1 = 0 C M2 = 0 C M3 = 0 0 5 10 15 20 25 30 35 t

J 1 J 2 J 3 J 4 J 6 J 7 J 8 J 9 1 2 3 4 6 7 8 9 10 5 M1 J 10 M2 M3 LPT{ 9, 10, 7, 2, 3, 4, 6, 1, 8 } min{ C M1, C M2, C M3 } M* S M1 ={ 5 } S M2 ={ } S M3 ={ } C M1 = 10 C M2 = 0 C M3 = 0 0 5 10 15 20 25 30 35 t

J 1 J 2 J 3 J 4 J 6 J 7 J 8 1 2 3 4 6 7 8 10 5 M1 9 M2 J 10 M3 LPT{ 10, 7, 2, 3, 4, 6, 1, 8 } min{ C M1, C M2, C M3 } M* S M1 ={ 5 } S M2 ={ 9 } S M3 ={ } C M1 = 10 C M2 = 10 C M3 = 0 0 5 10 15 20 25 30 35 t

J 1 J 2 J 3 J 4 J 6 J 7 J 8 1 2 3 4 6 7 8 5 M1 9 M2 10 M3 LPT{ 7, 2, 3, 4, 6, 1, 8 } min{ C M1, C M2, C M3 } M* S M1 ={ 5 } S M2 ={ 9 } S M3 ={ 10 } C M1 = 10 C M2 = 10 C M3 = 10 0 5 10 15 20 25 30 35 t

J 1 J 2 J 3 J 4 J 6 J 8 1 2 3 4 6 8 5 M1 9 M2 10 M3 S M1 ={ 5, 7 } S M2 ={ 9 } S M3 ={ 10 } 7 LPT{ 2, 3, 4, 6, 1, 8 } min{ C M1, C M2, C M3 } M* C M1 = 18 C M2 = 10 C M3 = 10 0 5 10 15 20 25 30 35 t

J 1 J 3 J 4 J 6 J 8 M1 M2 M3 1 3 4 6 8 5 9 10 S M1 ={ 5, 7 } S M2 ={ 9, 2 } S M3 ={ 10 } 2 7 LPT{ 3, 4, 6, 1, 8 } min{ C M1, C M2, C M3 } M* C M1 = 18 C M2 = 17 C M3 = 10 0 5 10 15 20 25 30 35 t

J 1 1 LPT{ 4, 6, 1, 8 } J 4 J 6 J 8 M1 M2 M3 4 6 8 5 9 10 S M1 ={ 5, 7 } S M2 ={ 9, 2 } S M3 ={ 10, 3 } 3 2 7 min{ C M1, C M2, C M3 } M* C M1 = 18 C M2 = 17 C M3 = 16 0 5 10 15 20 25 30 35 t

J 1 1 LPT{ 6, 1, 8 } J 6 J 8 M1 M2 M3 6 8 5 9 10 S M1 ={ 5, 7 } S M2 ={ 9, 2 } S M3 ={ 10, 3, 4 } 3 2 7 min{ C M1, C M2, C M3 } M* 4 C M1 = 18 C M2 = 17 C M3 = 21 0 5 10 15 20 25 30 35 t

J 1 1 LPT{ 1, 8 } min{ C M1, C M2, C M3 } M* J 8 8 S M1 ={ 5, 7 } S M2 ={ 9, 2, 6 } S M3 ={ 10, 3, 4 } M1 M2 M3 5 9 10 3 2 7 6 4 C M1 = 18 C M2 = 20 C M3 = 21 0 5 10 15 20 25 30 35 t

LPT{ 8 } min{ C M1, C M2, C M3 } M* J 8 8 S M1 ={ 5, 7, 1 } S M2 ={ 9, 2, 6 } S M3 ={ 10, 3, 4 } M1 M2 M3 5 9 10 3 2 7 1 6 4 C M1 = 19 C M2 = 20 C M3 = 21 0 5 10 15 20 25 30 35 t

LPT{ } min{ C M1, C M2, C M3 } M* S M1 ={ 5, 7, 1, 8 } S M2 ={ 9, 2, 6 } S M3 ={ 10, 3, 4 } M1 M2 M3 5 9 10 3 7 1 8 2 6 4 C M1 = 20 C M2 = 20 C M3 = 21 0 5 10 15 20 25 30 35 t

Készlet-diagram N 10 8 N a 7,67 6 4 2 C 5 = C 9 = C 10 =10 A célfüggvény értéke: C max = 21 Az átlagos készletszint értéke: N a = i C i = 161 C max C 3 = 16 C 2 = 17 C 7 = 18 C 1 = 19 C 6 = C 8 = 20 C 4 = 21 21 7,67 5 10 15 20 25 t

Párhuzamosan működő erőforrások ütemezése EDD+LIST algoritmus alkalmazásával

Az ütemezés célja A legnagyobb késés minimalizálása L i = C i - d i L max = max{l 1,, L i,, L N } = max i { L i } L max min Az ütemezési modell formális leírása: P d i L max

Az EDD+LIST algoritmus

Az EDD+LIST algoritmus 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.

Heurisztikus megoldás A P d i L max ü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 d i L max és a P C max feladat megoldási módszerének kombinálása.

Megjegyzések 1. Az EDD+LIST algoritmus felépítő jellegű: az LPT+LIST algoritmushoz hasonlóan. 2. A feladat megoldására kereső algoritmusokat is alkalmazhatunk. (Lásd később!)

Párhuzamosan működő erőforrások ütemezése tartalékidő-orientált algoritmus alkalmazásával

Erőforrás-korlátos ütemezési modell A feladat jellemzői: N számú egymástól független munka: J i (i=1, 2,, n) legkorábbi indítási időpont (r i ) legkésőbbi befejezési időpont (d i ) 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 (L max min)

Probléma-transzformáció Továbbfejlesztett párhuzamos gépes ütemezési feladat 1. Az erőforrások rendelkezésre-állási időintervallumait folyamatosan, decimális egészekkel sorszámozzuk lépések (s). 2. A műveleti idők egységnyi értéket (lépést) vesznek fel (p i = 1). 3. A munkák időadatait átalakítjuk lépésekre: r i a befogadó műszakot követő műszak lépésszáma d i a befogadó műszak sorszáma A teljesítés időpontját (C i ) a befogadó műszak sorszámával kifejezett alakban keressük.

Probléma-transzformáció (folyt.) 4. (L i = C i - d i ) a munka késését is egységnyi lépésben mérjük. 5. 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) p i =1; r i =egész; d i =egész Lmax

Időtartalék-orientált algoritmus a P(s) p i =1; r i =integer; d i =integer L max feladathoz { Rendezzük a J i (i=1, 2,, N J ) munkákat r i szerint nem csökkenő sorrendbe; item 1; while (item N) { s r item ; while (P(s) < 1) { s s + 1; if (s > s max ) Kilépés megvalósítható megoldás nélkül; } R {J i J i nem ütemezett és r i s}; mach 1; while (R nem üres) { Válasszuk ki a legkisebb d i határidővel rendelkező J i munkát az R-ből; R R \ {J i }; Ütemezzük a J i -t a mach.-edik gépre az s műszakban; C i s; L i C i - d i ; T i max(0, L i ); item item + 1; //folytatás a következő lapon

//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 > s max ) Kilépés megvalósítható megoldás nélkül; } R R {J i J i nem ütemezett és r i s} } } } Visszatérés az elkészített optimális megoldással; }

Eredmények Az algoritmus a C i értékek kiszámításával egyben elő is állítja a keresett megoldást: A J i munkát az s = C i sorszámú műszakban kell elvégezni. Minimális késés: L max min. Polinomiális futási idő.

Ji Ri Di J1 0 1 J2 1 1 J3 2 3 J4 0 3 J5 1 1 J6 1 2 J7 0 3 J8 0 3 J9 0 3 Rendezett lista: Ri Ji Ri Di J1 0 1 J4 0 3 J7 0 3 J8 0 3 J9 0 3 J2 1 1 J5 1 1 J6 1 2 J3 2 3 Illusztratív példa s=0 J1 0 1 J4 0 3 J7 0 3 J8 0 3 J9 0 3 s=1 J9 0 3 J2 1 1 J5 1 1 J6 1 2 s=2 J9 0 3 J6 1 2 J3 2 3 s P(s) Terhelés Ütemezett munkák 0 4 4 J1 J4 J7 J8 1 2 2 J2 J5 2 3 3 J6 J9 J3 Beütemezzük: J1, J4, J7, J8 Beütemezzük: J2, J5 Beütemezzük: J6, J9, J3

Eredmény Ji Ri Di J1 0 1 J2 1 1 J3 2 3 J4 0 3 J5 1 1 J6 1 2 J7 0 3 J8 0 3 J9 0 3 Ci Li 0-1 Siet 1 0 Időben 2-1 Siet 0-3 Siet 1 0 Időben 2 0 Időben 0-3 Siet 0-3 Siet 2-1 Siet

Köszönöm a figyelmet! Az előadásvázlat elérhető az alábbi webcímen: http://ait.iit.uni-miskolc.hu/~kulcsar/serv07.htm