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

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

Az optimális megoldást adó algoritmusok

Általános algoritmustervezési módszerek

Ü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

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére

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

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

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

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

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

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

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Példa. Job shop ütemezés

Relációk. 1. Descartes-szorzat. 2. Relációk

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

Operációkutatás. Vaik Zsuzsanna. Budapest október 10. First Prev Next Last Go Back Full Screen Close Quit

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

A Markowitz modell: kvadratikus programozás

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

2017/ Szegedi Tudományegyetem Informatikai Intézet

Matematikai modellezés

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

A szimplex algoritmus

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

Gibbs-jelenség viselkedésének vizsgálata egyszer négyszögjel esetén

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Approximációs algoritmusok

Totális Unimodularitás és LP dualitás. Tapolcai János

Bázistranszformáció és alkalmazásai

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

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

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Társadalmi és gazdasági hálózatok modellezése

Opkut deníciók és tételek

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

Döntéselőkészítés. I. előadás. Döntéselőkészítés. Előadó: Dr. Égertné dr. Molnár Éva. Informatika Tanszék A 602 szoba

Adatszerkezetek és algoritmusok

Ütemezés gyakorlat. Termelésszervezés

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

A k-szerver probléma

Vektorok. Wettl Ferenc október 20. Wettl Ferenc Vektorok október / 36

Online ládapakolás. 1. Ládapakolási modellek

Sorozatok és Sorozatok és / 18

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

Egyváltozós függvények 1.

Ellátási lánc optimalizálás P-gráf módszertan alkalmazásával mennyiségi és min ségi paraméterek gyelembevételével

Szemidenit optimalizálás és az S-lemma

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

Korlátozás és szétválasztás módszere Holló Csaba 2

A két csapatra osztás leggyakoribb megvalósításai: Lyukas teli (vagy sima vagy nem lyukas)

1/ gyakorlat. Hiperbolikus programozási feladat megoldása. Pécsi Tudományegyetem PTI

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

2. SZÉLSŽÉRTÉKSZÁMÍTÁS. 2.1 A széls érték fogalma, létezése

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

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Nem-lineáris programozási feladatok

A KroneckerCapelli-tételb l következik, hogy egy Bx = 0 homogén lineáris egyenletrendszernek

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

22. GRÁFOK ÁBRÁZOLÁSA

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

Egyes logisztikai feladatok megoldása lineáris programozás segítségével. - bútorgyári termelési probléma - szállítási probléma

Ellenőrzés. Variáns számítás. Érzékenység vizsgálat

Lineáris egyenletrendszerek

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Érzékenységvizsgálat

i=1 i+3n = n(2n+1). j=1 2 j < 4 2 i+2 16 k, azaz az algoritmus valóban konstans versenyképes.

Optimumkeresés számítógépen

A lineáris programozás alapjai

Integrált ügyviteli rendszer: Kettős könyvelés modul

Áttekintés LP és geometria Többcélú LP LP és egy dinamikus modell 2017/ Szegedi Tudományegyetem Informatikai Intézet

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Szoftveres jelfeldolgozás: izzók ellenállásának hımérsékletfüggése

KOVÁCS BÉLA, MATEMATIKA I.

1. Előadás Lineáris programozás

Nemlineáris programozás 2.

Általános statisztika II. Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László

1. A k-szerver probléma

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

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

LINEÁRIS ALGEBRA (A, B, C) tematika (BSc) I. éves nappali programtervező informatikus hallgatóknak évi tanév I. félév

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

Relációk. 1. Descartes-szorzat

3. Lineáris differenciálegyenletek

AllBestBid. Felhasználói kézikönyv az AllBestBid online aukciós szolgáltatás használatához március DFL Systems Kft.

Deníciók és tételek a beugró vizsgára

Gauss-Seidel iteráció

Módszer köztes tárolókat nem tartalmazó szakaszos működésű rendszerek ütemezésére

Programozási módszertan. Mohó algoritmusok

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

1. Online kiszolgálóelhelyezés

E-tananyag Matematika 9. évfolyam Függvények

Hálózati Folyamok Alkalmazásai. Mályusz Levente BME Építéskivitelezési és Szervezési Tanszék

Tájékoztató szakértői fórumról

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

I. A légfékrendszer időszakos vizsgálatához alkalmazható mérő-adatgyűjtő berendezés műszaki

Átírás:

Ütemezési modellek Az ütemezési problémák osztályozása Az ütemezési problémákban adott m darab gép és n számú munka, amelyeket az 1,..., n számokkal fogunk sorszámozni. A feladat az, hogy ütemezzük az egyes munkák végrehajtását a gépeken úgy, hogy valamely cél szerint optimális ütemezést kapjunk. A legtöbb modellben a munkák végrehajtásának ütemezésén vagy egyszer bben a munkák ütemezésén azt értjük, hogy a j-edik munkát hozzárendeljük valamely géphez egy S j kezdési és C j befejezési id vel minden j-re. A munkákhoz tartozik egy végrehajtási id, amit p j -vel szokás jelölni. Ez adja meg, hogy mennyi ideig tart a munkát elvégezni. Ennek megfelel en a munkához rendelt kezdési és befejezési id kre a C j S j = p j feltételnek kell teljesülni. A különböz modelleket többféle szempontból is osztályozhatjuk. A továbbiakban a legismertebb változatokat igyekszünk összegy jteni. A munkák meghatározó paraméterei Mint már említettük a munkákhoz tartozik egy végrehajtási id, de más modellekben egyéb paraméterei is vannak az egyes munkáknak. A munkákhoz rendelhet érkezési id is, ezt a paramétert a j-edik munkára általában r j jelöli. Ez az id azt az id pontot adja meg, amelyt l kezdve a munka végrehajtása elkezdhet, tehát a munkára az S j r j feltételnek kell teljesülni. A j-edik munkához tartozhat egy d j határid. Itt két különböz típusú modellt vizsgálhatunk. Az els esetben csak olyan ütemezéseket fogadunk el, amelyekre C j d j, azaz amelyek betartják a határid t, a másodikban megszeghetjük a határid t, de ekkor a célfüggvényben a határid is szerepel. A j-edik munkához hozzárendelhetünk egy w j súlyt vagy egy f j (t) súlyfüggvényt, amely azt adja meg, hogy mennyire fontos a munka, illetve azt, hogy mennyire fontos a munka t id pontig való befejezése. 1

Egy másik fontos osztályozási szempont az, hogy mi a függvény, aminek az optimumát keressük. Eszerint a szempont szerint is igen sok modell került bevezetésre, az alábbiakban a legfontosabbakat vázoljuk. A célfüggvények két alapvet osztályra bonthatók: a maximum célfüggvényekre és az összeg célfüggvényekre. Talán a legismertebb modellek azok, amelyekben az utolsónak befejezett munka befejezési idejét akarjuk minimalizálni, azaz ahol a célfüggvény max{c j : 1 j n}. Szintén gyakran használt célfüggvény a teljes befejezési id, amely a befejezési id k összege. Általánosabb esetben, mikor a munkáknak van súlya vagy súlyfüggvénye, akkor a n j=1 w j C j illetve n j=1 f j(c j ) függvényeket minimalizálhatjuk. Amennyiben a munkákhoz határid is tartozik, akkor a célfüggvény általában a késések minimalizálása. Itt két értéket szokás vizsgálni. Az els a késési id (lateness), amely az L j = C j d j érték, a másik pedig a csúszási id (tardiness), amely a T j = max{0, L j } érték. A két maximum célfüggvény a késési id knek illetve a csúszási id knek a maximuma. Egyéb modellekben ezen értékek összegét illetve súlyozott összegét igyekszünk minimalizálni. Itt érdemes azt a modellt említenünk, ahol a cél az elkésett (T j > 0) munkák számának minimalizálása. Amennyiben érkezési id k is vannak szokás a befejezési id helyett a folyási id t (ow time) vizsgálni, amely az F j = C j r j érték. Ezekben a modellekben a célfüggvény ezen F j értékek maximuma vagy súlyozott összege. A fenti alapvet osztályozáson kívüli egyéb változatokat, általánosításokat kaphatunk néhány extra feltétellel. Az alábbiakban ezekb l gy jtöttünk össze néhányat. Feltehetjük, hogy bizonyos munkák megkövetelik, hogy egyéb munkák már végre legyenek hajtva. Igen sok gyakorlati problémánál el fordulnak ilyen feltételek. Ekkor az egyes munkákhoz tartozik az a feltétel is, hogy mely munkák el zetes végrehajtását követelik meg. Ezeket a feltételeket egy irányított gráal írhatjuk le, amelyet precedencia gráfnak hívunk. Ezen extra kiegészítés mellett az összes, a fentiekben említett modell vizsgálható. 2

Az eddigiek során végig azzal a feltétellel éltünk, hogy minden egyes munkához pontosan egy végrehajtási id tartozik és ez független attól, hogy melyik gépen kerül a munka végrehajtásra. Ez általában gyakorlati problémáknál nem így van. Egy általánosabb modellben minden munkához egy végrehajtási vektor tartozik, amely i-edik komponense megadja, hogy az M i gépen mennyi ideig tart a munkát végrehajtani. Amennyiben a vektor tetsz leges lehet, független gépekr l beszélünk. Itt két további speciális esetre kell kitérnünk. Az egyik esetben a j-edik munkához egy W j végrehajtási súly tartozik. A végrehajtási vektorának i-edik komponense W j /v i, ahol v i az M i gép sebességének felel meg. Ezt az esetet összefügg gépek esetének nevezzük. A második esetben a korlátozott hozzárendelési esetben a végrehajtási vektor néhány komponense végtelen, a többi megegyezik. Ez azt modellezi, hogy a gépek azonosak csak a munka néhány gépen nem hajtható végre. Egy további modell, amelyben megengedjük, hogy a munkák végrehajtása megszakítható legyen. Ekkor a j-edik munkához nem egy darab legalább p j hosszú intervallumot kell hozzárendelnünk valamely gépen, hanem több, egymást nem átfed intervallumot (akár különböz gépeken), amelyek összhossza p j. A fentiekben csak olyan modelleket ismertettünk, amelyekben a munkák pusztán egyetlen részb l álltak. Számos gyakorlati probléma esetén egy munka több m veletb l állhat. Az ilyen problémák egy nagy csoportját leíró modelleket shop ütemezésnek nevezzük. Itt csak azokat a modelleket tekintjük át, amelyekben minden egyes m velet egy, a m velethez rendelt gépen hajtható végre, és adott a m velet végrehajtási ideje. Ezen osztályon belül két f csoportot különböztetünk meg. Amennyiben bármely munkára a hozzátartozó m veleteket tetsz leges sorrendben végrehajthatók, akkor open shop ütemezésr l beszélünk. A másik esetben, amelyben a munkákhoz tartozó m veleteket az adott sorrendben kell végrehajtanunk ismét megkülönböztetünk két modellt. Ha a munkák m veleteihez tartozó gépek sorrendje nem azonos akkor job shop ütemezésr l beszélünk. Ha a gépek sorrendje azonos minden munkára, akkor ow shop ütemezés modellt kapjuk. A fentieken kívül még több változat létezik, a jegyzet célja nem az egyes modellek részletes összegy jtése. Az egyes modellek osztályozása során kidolgoztak egy három mez b l álló jelölésrendszert. Az els mez írja le a probléma struktúráját (pl. hány gép van, azonosak -e, shop problémáról 3

van -e szó), a második mez a munkák tulajdonságait írja le (pl. érkezési id k, határid k, precedencia feltételek), a harmadik mez a célfüggvényt adja meg. Ezt a jelölésrendszert itt nem tárgyaljuk tovább. Példákat mutatunk a kés bbiekben, amikor használjuk ezt a jelölésrendszert, de mindig kifejtjük részletesebben is milyen problémáról van szó. A különböz változatok részletesebb osztályozása, és az egyes modelleket leíró három részb l álló jelölésrendszer megtalálható a szakirodalomban, például a [3] dolgozatban. Felírás matematikai programozási feladatként Több ütemezési probléma felírható matematikai programozási feladatként (lineáris programozási feladat, egészérték programozási feladat), és így az ezen általános problémák megoldására kidolgozott eljárások használhatóak az adott ütemezési feladat megoldására is. Ebben a részben néhány ilyen példát mutatunk be. Lineáris programozási feladat Az operációkutatás egyik legismertebb problémája a lineáris programozási feladat. Lineáris programozási feladatról beszélünk olyan optimalizálási feladatok esetén, amikor egy lineáris függvény széls értékét keressük lineáris feltételek mellett. A lineáris programozási feladat megoldására a legismertebb eljárás a szimplex módszer (ld. [1]), amely annak ellenére, hogy elméleti szempontból exponenciális id igény algoritmus a gyakorlatban igen hatékonynak bizonyult. Fontosnak tartjuk megjegyezni, hogy ismert polinomiális id igény algoritmus is a lineáris programozási feladat megoldására. Egyes ütemezési problémák felírhatók lineáris programozási feladatként. Példaként a P m prmp C max problémát tekintjük, (m párhuzamos azonos gépen ütemezzük a munkákat a maximális befejezési id t minimalizálva, a munkák megszakítását engedélyezve). P m prmp C max lineáris programozási feladatként Jelölje az x ij 0 változó, azt az id mennyiséget, amelyet az i-edik gép összesen a j-edik munkával tölt. Ekkor a feladat a következ formában írható fel: m i=1 x ij = p j, j = 1,..., n min C max 4

m i=1 x ij C max, j = 1,..., n n j=1 x ij C max, i = 1,..., m, x ij 0, i = 1,..., m, j = 1,..., n. Ekkor az els csoportja a feltételeknek azt adja meg, hogy összesen a gépek a j-edik munkával valóban p j id t töltenek. A második feltételcsoport azt biztosítja, hogy a teljes id amelyet egy munkán a gépek összesen dolgoznak legfeljebb a maximális befejezési id (ezeket a feltételeket helyettesíthetjük a p j C max feltételekkel). A harmadik csoportja a feltételeknek azt biztosítja, hogy egyetlen gép sem dolgozik többet, mint C max. Egészérték programozási feladat Az egészérték programozási feladat olyan lineáris programozási feladat, amelyben a változókról kikötjük, hogy egészek. Az egészérték programozási feladat megoldására kidolgozott eljárások legtöbbje a vágósíkok módszerén vagy a korlátozás és szétválasztás módszerén alapul. Ezen módszerek részletes tárgyalása az egészérték programozási feladat megoldására megtalálható a [1] és [2] egyetemi jegyzetekben. Sok ütemezési probléma megadható egészérték programozási feladatként. Példaként az 1 w j C j problémát tekintjük azt a problémát, amelyben egyetlen gép van, a munkákat két paraméter határozza meg a végrehajtási id és a munka súlya, és amelyben a cél minimalizálni a teljes súlyozott befejezési id t ( w j C j ). Két különböz reprezentációt is megadunk, mindkét módszer számos ütemezési probléma esetén használható egészérték programozási feladat megkonstruálására. Érdemes megemlíteni, hogy a probléma megoldható egy egyszer bb algoritmussal (amit kés bb ismertetünk) az alábbi interpretáció felhasználása nélkül is. 1 w j C j egészérték programozási feladatként I. Legyen x jk egy döntési változó, amely 1 ha a j munka az ütemezésben hamarabb kerül végrehajtásra, mint k és 0 egyébként. Ezen változók segítségével az alábbi programozási feladat írja le az ütemezési problémát. x kj + x jk = 1, x kj + x jl + x lk 2 x jk {0, 1} n n n min w j p k x kj + w j p j j=1 k=1 j=1 j, k = 1,..., n, j k j, k, l = 1,..., n, j k, k l, l j j, k = 1,..., n 5

x jj = 0 j = 1,..., n. Mivel a j-edik munka befejezési ideje n k=1 p kx kj + p j, ezért a célfüggvény valóban 1 w j C j, és az is könnyen ellen rizhet, hogy a többi feltétel pontosan azt írja le, hogy az x jk változók a munkák egy sorbarendezését adják meg. Érdemes megjegyezni, hogy a fenti programozási feladat könnyen kiterjeszthet arra az esetre, amelyben a munkákra precedencia feltételek vannak el írva, minden ilyen feltétel rögzíti valamely x jk változó értékét. A fenti típusú interpretáció, ahol döntési változók a munkák sorrendjét adják meg, nem terjeszthet ki egynél több gép esetére. Az alábbiakban egy olyan egészérték programozási interpretációt adunk meg, amely kiterjeszthet több gép esetére. Ezen interpretáció használatához fel kell tennünk, hogy a végrehajtási id k egészek. Könnyen adódik, hogy ekkor elegend azokat a lehetséges ütemezéseket vizsgálni, amelyekben a kezdési id k is egészek. Továbbá fontos megjegyeznünk, hogy az alábbi egészérték programozási feladatban a változók száma rendkívül nagy lehet. 1 w j C j egészérték programozási feladatként II. Legyen az x jt változó 1 ha a j-edik munka a t egész id pontban kezd dik, 0 különben. Legyen l = n j=1 p j 1. Ekkor az alábbi programozási feladat írja le az ütemezési problémát: min n j=1 l w j (t + p j )x jt t=1 l t=0 x jt = 1, j = 1,..., n n t 1 j=1 s=max{t p j,0} x js = 1, t = 0, 1,..., l, x jt {0, 1}, j = 1,..., n, t = 0,..., l. A változók fentiekben megadott értelmezése mellett egyb l adódik, hogy a célfüggvény valóban a teljes súlyozott befejezési id. Az els feltételcsoport azt biztosítja, hogy minden munkára pontosan egy kezdési id t határozunk meg. A második feltételcsoport pedig azt biztosítja, hogy minden id pontban csak egy munkát hajtunk végre a gépen. Hivatkozások [1] Imreh B., Operációkutatás, JATEPress, Szeged, 1994. 6

[2] Imreh B., Kominatorikus Optimalizálás, NOVODAT, 1999. [3] B. Chen, C. N. Potts, G. J. Woeginger, A review of machine scheduling, in Handbook of Combinatorial Optimization, Volume 3. eds. D. Z. Du, P. Pardalos, Kluwer Academic Publisher, 1998, 21170. 7