Példa Job shop ütemezés Egy üzemben négy gép működik, és ezeken 3 feladatot kell elvégezni. Az egyes feladatok sorra a következő gépeken haladnak végig (F jelöli a feladatokat, G a gépeket): Az ütemezési feladatot gráf formában is ábrázolhatjuk. Ilyenkor a gráfban az élek jelölik az ún. precedenciákat, vagyis, hogy mely műveletet vagy műveleteket kell befejeznünk az adott művelet megkezdéséhez. A 5. ábrán látható a mintafeladat precedencia gráfja. 5. ábra A mintafeladat gráf ábrázolása A műveleti idők az alábbiak (zárójelben a gép, melyen a műveletet végzik): 1. lépés 2. lépés 3. lépés 4. lépés F1 (G1) 10 (G2) 8 (G3) 4 F2 (G2) 8 (G1) 3 (G4) 5 (G3) 6 F3 (G1) 4 (G2) 7 (G4) 3 1. táblázat Műveletek időszükséglete A feladatok azonnal elkezdhetők. Az ütemezés célja az átfutási idő (makespan) minimalizálása. Vagyis: mi az a legkorábbi idő, amire a legutolsó művelet is befejeződik, és ehhez mikor kell az egyes műveletek megkezdeni? A szűk keresztmetszet módszere
A módszer lényege, hogy úgy egyszerűsítjük a problémát, hogy egyszerre csak egy gépen rakjuk sorba a műveleteket, de e célra mindig azt a gépet választjuk ki, amelyik a rendszer szűk keresztmetszete, vagyis amelyen a legnagyobb a várható késés a legkorábbi befejezés becsült értékéhez viszonyítva (legnagyobb késés). A módszer algoritmusának főbb lépései: 1. A még be nem sorolt gépekről ideiglenesen feltesszük, hogy elegendő párhuzamosan működő példány van belőlük. Ezzel a feltételezéssel kiszámítjuk a legkorábbi befejezési időt (pl. az ún. kritikus út módszerével). 2. Kiszámítjuk minden művelet legkorábbi kezdési idejét, és az 1. pontban számolt becsült befejezési időt felhasználva kiszámítjuk minden művelet legkésőbbi befejezési idejét. 3. Sorra minden, még be nem sorolt gépen egygépes ütemezést végzünk a még be nem sorolt műveletekkel, célul tekintve a legnagyobb késés minimalizálását. 4. Kiválasztjuk azt a gépet, aminek legnagyobb késése az összes gép közül a legnagyobb, és ennek műveleti sorrendjét rögzítjük. 5. A többi, korábban besorolt gépet megpróbáljuk egyenként átütemezni, hogy jobb megoldást kapjunk. 6. Ha maradt még be nem sorolt gép, akkor visszatérünk az 1. pontra. Egyébként az ütemezés véget ér. Az alfejezet további részében a mintafeladaton bemutatjuk az algoritmus minden lépését, és végig is számítjuk. Ha Ön munkaköréből adódóan hasonló problémákat old meg, akkor érdemes többször is végig olvasnia az alfejezetet. Esetünkben először egyik gép sincs besorolva, és mind a három feladatról feltesszük, hogy párhuzamosan mehetnek. A független átfutási idők: 1. feladat: 10+8+4=22, 2. feladat: 8+3+5+6=22, 3. feladat: 4+7+3=14. A becsült befejezési idő tehát 22 (lsd. 6. ábra).
6. ábra: Az első iterációs lépés számításának grafikus szemléltetése A független átfutási idők alapján sorra vesszük a 4 gépet. Az 1. gépen a műveletek adatai: feladat: 1 2 3 műveleti idő: 10 3 4 legkorábbi kezdés: 0 8 0 legkésőbbi befejezés: 10 11 12 Az optimális sorrend: 1, 2, 3; a legnagyobb késés: 5. A legnagyobb késés az alábbi alábbi összefüggéssel számítható ki: ahol AK a legnagyobb késés, di,j az i. job j. műveletének legkésőbbi befejezési ideje, i. job j. műveletének aktuális befejezési ideje a sor sorrend esetén. az A 2. gépen a műveletek adatai: feladat: 1 2 3 műveleti idő: 8 8 7 legkorábbi kezdés: 10 0 4 legkésőbbi befejezés: 18 8 19 Az optimális sorrend: 2, 3, 1; a legnagyobb késés: 5. A 3. gépen a műveletek adatai:
feladat: 1 2 műveleti idő: 4 6 legkorábbi kezdés: 8 16 legkésőbbi befejezés: 22 22 Az optimális sorrend: 1, 2; a legnagyobb késés: 0. A 4. gépen a műveletek adatai: feladat: 2 3 műveleti idő: 5 3 legkorábbi kezdés: 11 11 legkésőbbi befejezés: 16 22 Az optimális sorrend: 2, 3; a legnagyobb késés: 0. Az 1. és a 2. gépek egyformán a szűk keresztmetszet gépei. Kiválasztjuk az 1. gépet, és rögzítjük az optimális sorrendjét. Ezután megmaradt gépekkel megismételjük az eljárást. Ehhez tudjuk, hogy a legkorábbi befejezés 22+5=27. Mivel most az 1. gép műveletei már sorba rendezettek, megváltoznak a még be nem sorolt műveletek legkorábbi kezdési idői, és legkésőbbi befejezési idői. Utóbbi azért is, mert a végső idő becslése 22-ről 27-re nőtt (lsd. 7. ábra). 7. ábra: A második iterációs lépés számításának grafikus szemléltetése Sorra vesszük a megmaradt három gépet. A 2. gépen a műveletek adatai: feladat: 1 2 3 műveleti idő: 8 8 7 legkorábbi kezdés: 10 0 17
legkésőbbi befejezés: 24 10 24 Az optimális sorrend: 2, 1, 3; a legnagyobb késés: 1. A 3. gépen a műveletek adatai: feladat: 1 2 műveleti idő: 4 6 legkorábbi kezdés: 18 18 legkésőbbi befejezés: 27 27 Sorrendtől függetlenül a legnagyobb késés: 1. A 4. gépen a műveletek adatai: feladat: 2 3 műveleti idő: 5 3 legkorábbi kezdés: 13 24 legkésőbbi befejezés: 21 27 Az optimális sorrend: 2, 3; a legnagyobb késés: 0. A legnagyobb késés 1, és a szűk keresztmetszet a 2. vagy a 3. gép (mindkettő). Kiválasztjuk a 2. gépet, és rögzítjük műveleti sorrendjét. A becsült befejezés: 27+1=28. Az 1. (korábban besorolt) gép átütemezésével sem nyerünk ennél korábbi befejezést. Mivel most az 1. és a 2. gép műveletei már sorba rendezettek, megváltoznak a még be nem sorolt műveletek legkorábbi kezdési idői, és legkésőbbi befejezési idői. Sorra vesszük a megmaradt két gépet. 8. ábra: A harmadik iterációs lépés számításának grafikus szemléltetése
A 3. gépen a műveletek adatai: feladat: 1 2 műveleti idő: 4 6 legkorábbi kezdés: 18 18 legkésőbbi befejezés: 28 28 Sorrendtől függetlenül a legnagyobb késés: 0. A 4. gépen a műveletek adatai: feladat: 2 3 műveleti idő: 5 3 legkorábbi kezdés: 13 25 legkésőbbi befejezés: 22 28 Az optimális sorrend: 2, 3; a legnagyobb késés: 0. Megjegyezzük, hogy a 3. gépen alternatív megoldásaink vannak. Ezzel egyszerre két optimális megoldást is meghatároztunk (lsd. 9-10. ábrát). 9. ábra: Az első megoldás Gantt-diagramja 10. ábra: Az második megoldás Gantt-diagramja