Termeléstervezés és -irányítás Ütemezés



Hasonló dokumentumok
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

Ü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

Termeléstervezés és -irányítás Termelés és kapacitás tervezés Xpress-Mosel FICO Xpress Optimization Suite

Az optimális megoldást adó algoritmusok

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

Számítógép és programozás 2

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.

Intelligens Rendszerek Elmélete. Párhuzamos keresés genetikus algoritmusokkal

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

HÁLÓZATSZERŰEN MŰKÖDŐ LOGISZTIKÁVAL INTEGRÁLT TERMELÉSÜTEMEZÉS MEGOLDÁSA GENETIKUS ALGORITMUS ALKALMAZÁSÁVAL. OLÁH Béla

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

Általános algoritmustervezési módszerek

Programozási módszertan. Mohó algoritmusok

Mesterséges Intelligencia MI

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

Logisztikai szimulációs módszerek

Tartalomjegyzék. Tartalomjegyzék... 3 Előszó... 9

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

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

Algoritmusok Tervezése. 9. Előadás Genetikus Algoritmusok Dr. Bécsi Tamás

Intelligens Rendszerek Elmélete IRE 4/32/1

Adatszerkezetek 2. Dr. Iványi Péter

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

Számítógép és programozás 2

A termeléstervezés alapjai -- termelés és kapacitás tervezés

Genetikus algoritmusok

Képrekonstrukció 9. előadás

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

Intelligens Rendszerek Elmélete. Párhuzamos keresés genetikus algoritmusokkal. A genetikus algoritmus működése. Az élet információ tárolói

Megkülönböztetett kiszolgáló routerek az

Közösség detektálás gráfokban

Dr. habil. Maróti György

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

Példa. Job shop ütemezés

értékel függvény: rátermettségi függvény (tness function)

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

Dr. Kalló Noémi. Termelés- és szolgáltatásmenedzsment. egyetemi adjunktus Menedzsment és Vállalatgazdaságtan Tanszék. Dr.

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

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

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Kereső algoritmusok a diszkrét optimalizálás problémájához

Heurisztikák algoritmusok ütemezési problémákra. 1. Állapottér és a megoldások kezelése

Keresések Gregorics Tibor Mesterséges intelligencia

2. Visszalépéses keresés

Képrekonstrukció 6. előadás

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

értékel függvény: rátermettségi függvény (tness function)

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

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

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Paragon Decision Technology BV

2. Visszalépéses stratégia

Kereső algoritmusok a diszkrét optimalizálás problémájához

Adaptív dinamikus szegmentálás idősorok indexeléséhez

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

Mesterséges Intelligencia MI

Üzemszervezés A BMEKOKUA180

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/

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

A szimplex tábla. p. 1

Parametrikus tervezés

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

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

angolul: greedy algorithms, románul: algoritmi greedy

Számítógépes döntéstámogatás. Döntések fuzzy környezetben Közelítő következtetések

Online migrációs ütemezési modellek

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

Újrahasznosítási logisztika. 7. Gyűjtőrendszerek számítógépes tervezése

Hidraulikus hálózatok robusztusságának növelése

Mesterséges Intelligencia MI

A lineáris programozás alapjai

A technológiai berendezés (M) bemenő (BT) és kimenő (KT) munkahelyi tárolói

Gépi tanulás a gyakorlatban. Lineáris regresszió

Algoritmuselmélet 18. előadás

ú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.

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

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

NP-teljesség röviden

Diszkrét Irányítások tervezése. Heurisztika Dr. Bécsi Tamás

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

Szoftverminőségbiztosítás

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

Hagyományos termelésirányítási módszerek:

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

Diszkrét, egészértékű és 0/1 LP feladatok

Mesterséges Intelligencia MI

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

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

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

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Döntéselméleti modellek

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

2017/ Szegedi Tudományegyetem Informatikai Intézet

TARTALOMJEGYZÉK. TARTALOMJEGYZÉK...vii ELŐSZÓ... xiii BEVEZETÉS A lágy számításról A könyv célkitűzése és felépítése...

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

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

Átírás:

Termeléstervezés és -irányítás Ütemezés BMEGEGT7008 2014 Monostori László egyetemi tanár Váncza József egyetemi docens 1

Ütemezés Erőforrások időben való allokációja tevékenységek egy halmazának végrehajtása érdekében Végrehajtható ütemterv kell a korlátozásokat be kell tartani Sok lehetséges közül jó (a legjobb) ütemterv kell optimálás Tiszta ütemezés tevékenységek kezdő és befejező időpontjának meghatározása Tiszta erőforrás allokáció Tevékenységek és erőforrások egymáshoz rendelése Együttes probléma Tevékenységek kezdő és befejező időpontjának meghatározása Erőforrások tevékenységekhez való rendelése Tevékenységek versenyeznek szűkös erőforrásokért 2

Ütemezés: példák Szállítási, logisztikai problémák Forgalomirányítás Legénység beosztás Légi kampány tervezés Termelés Diszkrét/folytonos gyártási folyamatok Emberi erőforrás gazdálkodás Órarendbeosztás Projekt ill. misszió ütemezés Építkezés Űrkutatás (Hubble űrteleszkóp, Deep Space One) Hálózat tervezés és routing Processzor ütemezés 3

Alapfogalmak Idő Tevékenységek Erőforrások Korlátozások Optimálási kritériumok (célfüggvények) A feladat komplexitása A feladat mérete Válaszidő a megoldásra rendelkezésre álló idő 4

Tevékenység (Activity, Task) Időbeli leírás kezdet és vég start i, end i Időtartam d i időablak release due date start release d i end due Erőforrás igény Egy tevékenység erőforrás(oka)t igényel Adott mennyiségben De csak végrehajtásának ideje alatt 5

Tevékenység (2) Végrehajtás jellege megszakíthatatlan megszakítható release due release Átmenet Külön költség idő van/nincs (setup) Munka (job) Adott tevékenységek halmaza Precedencia korlátozásokkal összekötve due 6

Erőforrások (R) Típusok Egyetlen tevékenység által használható (unary) Van vagy nincs Diszkrét Diszkrét egységekben igénybe vehető (gépcsoport, pénz, munkaóra) Tároló Diszkrét egységekben Fogyasztható és feltölthető (pl. költségvetés) Rendelkezésre állás: korlátozott kapacitás Rögzített Időben változó Tevékenységek és erőforrások kapcsolata A tevékenység igényli (előállítja) az R erőforrás q egységét. Alternatív erőforrások Ugyanaz a tevékenység több erőforrással is elvégezhető 7

Korlátozások Időbeli Időablak Legkorábbi kezdés (rendelés elfogadása) határidő Precedencia tevékenységek között Termékszerkezet (BOM) Technológiai sorrend (routing) Erőforrás Tevékenység csak akkor hajtható végre, ha hozzá van rendelve a szükséges erőforrás. Soha egyetlen erőforrást sem lehet a rendelkezésre álló kapacitásnál nagyobb mértékben használni. Egyéb, az aktuális problémából eredő korlátozások Mellék-korlátozások Példák Hőkezelést műszak végén be kell fejezni. Azonos vevő több megrendelését egyszerre kell leszállítani. Daruval adott súlynál nehezebb csomagokat nem lehet rakodni. 8

Optimalizálási kritérium Egyetlen, jól definiált kritérium Szállítóképesség Átfutási idő minimuma (makespan) Késések (súlyozott) összegének minimuma (tardiness, ill. lateness) Késések számának minimuma Költségek minimuma (cost) Tevékenységek összköltsége Work-in-process (WIP) Erőforrás kihasználtság Feldolgozási idő minimuma Maximális/átlagos erőforrás kihasználtság Jól definiált kritériumok kombinációja Súlyozott összege Pareto optimum Preferenciák Puha korlátozások 9

Összegezve, a feladat Adott Tevékenységek leírása Erőforrások leírása Korlátozások Optimalizálási kritérium Keresett Egy megoldás Adott szempont szerint legjobb megoldás Adott szempont szerinti összes legjobb megoldás A válaszidőn belül 10

Determinisztikus Ütemezési modellek A bemenő paraméterek megegyeznek a tényleges realizációval Sztochasztikus Egyes bemenő adatok eloszlása ismert csak Kezdési idők, feldolgozási idők Realizáció csak a végrehajtáskor derül ki 11

Bonyolultság Könnyű problémák N szám rendezése Lineáris egyenletrendszer megoldása Hogyan mérjük a bonyolultságot? f (n): elemi műveletek száma, ami kell egy n méretű input adattal rendelkező feladat megoldásához Könnyű: f (n) polinom függvénye n-nek, pl. O(n), O(n log n), O(n 2 ), Nehéz: f (n) exponenciális n-ben, pl. O(2 n ), Ütemezési problémák Csak kivételes esetekben ismerünk determinisztikus polinom megoldó algoritmust. Többségükben a legnehezebb kombinatorikus optimálási feladatok. NP vagy NP teljes Kis méretben működő megoldás nem vihető át egykönnyen nagyobb méretekbe 12

Bonyolultság (2) Összevetésül O(n) O(n log n) O(n 2 ) O(2 n ) 1 0 1 2 10 10 100 1024 20 26 400 1048576 50 85 2500 1,125,899,906,842,624 100 200 10000 1.268 X 10 30 1000 3000 1,000,000 1.072 X 10 301 10 301 számítási művelet Mai leggyorsabb gép: 10 15 op/sec Megoldási idő (legrosszabb esetben): 10 286 sec A Világegyetem becsült kora: 10 18 sec Mégis, Rövid válaszidő kell Vagy meg kell elégednünk elégendően jó megoldásokkal 13

Ütemezési módszerek Ütemezési (diszpécser) szabályok (dispatching rules) Egyedüli Összetett Heurisztikus módszerek Matematikai programozás Branch-and-bound Korlátozás programozás Lokális keresés 14

Műhely (shop) ütemezési probléma Az általános probléma: adott Véges számú elvégzendő munka (jobs) Rendelkezésre álló erőforrások (gépek) Az erőforrások kapacitása egységnyi A job-okat (munkákat) alkotó elemi tevékenységek Egy időben egy job-nak csak egyetlen tevékenységén lehet dolgozni Minden tevékenység egy dedikált erőforráson dolgozható fel, adott idő alatt A tevékenységek közt tetszőleges előzési korlátozások lehetnek Keresett A tevékenységek kezdési időpontja [Tevékenységek erőforráshoz rendelése] Speciális változatai Flow shop egyutas ütemezési probléma Open shop Job shop többutas ütemezési probléma 15

Műhely (shop) ütemezés Alapmodell Indexek munkák (job-ok) indexe erőforrások indexe tevékenységek indexe időperiódusok indexe (véges horizont) j 1,..., J m 1,..., M k 1,..., K t 0,..., T 16 Paraméterek munkák indítási ideje munkák határideje tevékenységek erőforrás igénye tevékenységek feldolgozási ideje [tevékenységek indítási ideje] [tevékenységek határideje] munka súlya r j d j q jk p jk r jk d jk w j

Kiértékelés Műhely (shop) ütemezés (2) Tulajdonságok befejezési idő késés (lateness) eltérés (tardiness) C j L max( C d,0) j j j T C d j j j Kritériumok súlyozott befejezési idők összegének minimuma maximális késés minimuma befejezési idők minimuma (makespan) és még sok más min w j C j min L max min C max 17

Flow/Open Shop Flow shop Job: adott gépeken, adott sorrendben elvégzendő tevékenységek Minden munkadarab technológiai útja azonos k r jk = M k t j1 t j2 t jm Példa: 3 gép, 4 job M1 M2 M3 1 2 1 1 2 3 Open shop Job: adott gépeken elvégzendő tevékenységek halmaza Az elvégzendő tevékenységek sorrendje kötetlen 2 4 3 4 3 4 t 18

Job Shop ütemezés Job shop probléma (JSP) Többutas ütemezési probléma Munkadarabonként különböző technológiai utak lehetségesek Job tevékenységei sorba rendezettek Láncot alkotnak Különböző job-ok tevékenységei közt nincsen precedencia Nincsenek hidak Valódi feladatok magja Egy/több erőforrásra Más korlátozásokkal kiegészítve Változatos célfüggvényekkel Legtöbbet elemzett feladat Benchmark problémák Elvezet az RCPS megoldásához Több tevékenység által közösen használható erőforrások Kapacitás > 1 19

Ütemezési szabályok Tevékenységeket sorba rendezik az erőforrások előtt Azokat, amik éppen végrehajthatóak Tevékenységek prioritást kapnak Ha egy erőforrás felszabadul Frissíti a sort Rendezi a tevékenységeket Ütemezi (azaz erőforráshoz rendeli) a legnagyobb prioritásút Típusok Statikus Az ütemezési döntések nem befolyásolják a rendezés alapját Idő-független Elég egyszer rendezni a tevékenységeket Dinamikus A döntések befolyásolják a további tevékenységek sorrendjét Idő-függő Minden döntés után újra kell(het) rendezni a sorokat 20

Ütemezési szabályok (2) Kezdési és határidőket tekintő Legkorábbi kezdés (Earliest release date, ERD) Legkorábbi határidő (Earliest due date, EDD) Minimális ráhagyás (Minimum slack, MS) Feldolgozási időket tekintő Leghosszabb feldolgozási idő (Longest processing time, LPT) Legrövidebb feldolgozási idő (Shortest processing time, SPT) Súlyozott legrövidebb feldolg. idő (Weighted shortest processing time, WSPT) WSPT egyetlen gépen optimális (Smith-féle szabály) Kritikus út szabály (Critical path, CP) Legnagyobb számú követő (Largest number of successors, LNS) Egyebek Véletlen kiszolgálási sorrend (Service in random order, SIRO) Legrövidebb átállási idő (Shortest setup time, SST) Legrugalmatlabb munka (Least flexible job, LFJ) Legnagyobb erőforrásigény (Greatest resource demand, GRD)... 21

JSP ütemezési szabály: SPT J0 J1 J2 22 Ch. Beck

JSP ütemezési szabály J0 J1 J2 Ch. Beck 23

JSP ütemezési szabály J0 J1 J2 Ch. Beck 24

JSP ütemezési szabály J0 J1 J2 Ch. Beck 25

JSP ütemezési szabály J0 J1 J2 Ch. Beck 26

JSP ütemezési szabály J0 J1 J2 Ch. Beck 27

JSP ütemezési szabály J0 J1 J2 Ch. Beck 28

JSP ütemezési szabály J0 J1 J2 Ch. Beck 29

Feladat: SPT alkalmazása Figyelni kell a precedencia korlátozásokra is Tevékenységek Job 1 2 3 4 1 M1, 9 M2, 8 M3, 4 M4, 4 2 M1, 5 M2, 6 M4, 3 M3, 6 3 M3, 10 M1, 8 M2, 9 M4, 2 feldolgozási idő erőforrás (gép) 30

Statikus szabályok 1 gép & WSPT r j = 0, d j =, obj = min w j C j Weighted Shortest Processing Time (WSPT) Rendezi a tevékenységeket a mérték csökkenő sorrendjében: w j /p j A súlyozott befejezési idők összegére optimális Példa p 1 = 10 w 1 = 1 p 2 = 2 w 2 = 2 p 3 = 5 w 3 = 0 WSPT minimalizálja wjcj kritériumot És ha más a kritérium? obj = min Cmax? 1 gép & EDD r j = 0, obj = min L max (maximális késés) Minden munkának van határideje, d j Earliest Due Date (EDD) optimális Rendezi a tevékenységeket növekvő d j szerint p 4 = 7 w 3 = 3 31

Dinamikus szabály Minimális ráhagyás Minimum Slack (MS) 1 gép, r j = 0, obj = min L max Adott t időben a mérték növekvő sorrendjében rendez max( d j p j t, 0) MS nem garantál optimumot HF: olyan feladat definiálása, ahol MS nem ad optimumot 32

Összetett ütemezési szabályok Nyilvánvaló késési költség szabály Apparent Tardiness Cost (ATC) 1 gép, r j = 0, obj = min w j T j Rendezi a tevékenységeket, a mérték csökkenő sorrendjében Ij( t) w p j j exp( max( d j p Kp j t,0) ) WSPT átlagos p j MS Skálázó paraméter 33

Egészértékű program: Egy gépes probléma Egy gép, n munka (job) Kritérium Befejezési idők súlyozott összege min Döntési változók Idő-indexelt modell x jt n j 1 wc j 1 ha job j t időpontban kezdődik 0 egyébként. j 34

Egészértékű program: Egy gépes probléma (2) Egészértékű program Kritérium n C Korlátozások max min w ( t p ) x n j 1 t 1 max t 1 j 1 s max{ t p 1,1} t x j jt C j j jt x x jt js 1 1 0,1 j, t j t Ekkor ér véget egy j munka Minden munka csak egyszer kezdődhet Munkák nem fedik át egymást Integritás korlátok 35

Egészértékű program: Egy gépes probléma (3) Megoldás: Branch-and-bound Elágazás a döntési változók értékein 0 vagy 1 Alsó korlát Lineáris relaxáció megoldása Xpress program single_machine_scheduling 36

Branch-and-bound Szétválasztás és korlátozás Mélységi keresés Heurisztikus becslő függvény: részleges megoldások kiértékelése Minimalizálunk: a becslő mindig alulbecsül Alsó korlát (Lower Bound) LB Mozgó felső korlát (Upper Bound) UB Minimalizálunk: az eddig talált legjobb megoldás értéke Egy n csomópontban vág, ha LB UB Döntés Változó választás Érték választás Hatékonyság Elég éles-e a LB becslő függvény? Sikerül-e hamar jó felső UB korlátot találni? 37

JSP mint diszjunktív gráf Kétféle korlátozás a tevékenységek között Precedencia (job-on belül) Diszjunktív korlátozás Adott gépet igénylő tevékenységek páronként kapcsolatba hozhatók Egyik biztos megelőzi a másikat De még nem tudjuk, melyik az éleknek nincs (még) iránya Start és End csomópontok beiktatva job1 Start End 38

JSP mint diszjunktív gráf (2) Megoldás: diszjunktív élek irányítása A teljes gráf ciklusmentes legyen A megoldás optimális legyen Keresés Döntés: hogyan irányítjuk a diszjunktív éleket Minden más (pl. kezdési idők, átfutási idő) ebből következik Start End 39

Alapmodell bővítése Diszjunktív program: JSP Halmazok tevékenységek előzési korlátozások diszjunktív korlátozások ( j, k) K ( j, k) ( j, l) A ( j, k) ( l, k) D Változók tevékenységek start ideje Kritérium Minimális befejezési idő a teljes feladatra (makespan) x jk min C max 40

Diszjunktív program: JSP (2) Korlátozások A befejezési időpont az utolsó Cmax x jk p jk ( j, k) N Előzési korlátozások x x p ( j, k) ( j, l) A jl jk jk 41 Diszjunktív korlátozások x x p ml jk jk x x + p ( j, k) ( m, l) D jk ml ml Integritás x 0 ( j, k) N jk

Diszjunktív program: JSP (3) De: hogyan írhatók le diszjunktív korlátozások? A nagy N trükk Új bináris változó y jkml 1 ha (j,k) tevékenység követi (m,l)-t 0 egyébként Kell egy elegendően nagy N (pl. a horizont maximális hossza) Diszjunktív korlátozások, ismét x p x N * y jk jk ml jkml x + p x N *(1 y ) ( j, k) ( m, l) D ml ml jk jkml Program JSSP_disjunctive Megoldás: korlátozás és szétválasztás (B&B) 42

Lokális keresés Probléma típus Megoldás a csomópontokban pl. ütemterv Alapötlet Analógia a felületen való tájékozódással és mozgással Magasság: csomópont jósága (heurisztikus kiértékelés) Csúcsok: optimális megoldások Tájékozódás: adott pont szomszédságában lévő pontok kiértékelése Iteratív javító algoritmusok célfüggvény lokális minimumok legjobb megoldás iteráció 43

Lokális keresés (2) Algoritmusok Csúcsra mászás (hill-climbing) Szimulált hűtés (simulated annealing) Tabu keresés (tabu search) Genetikus algoritmusok (genetic algorithms, GAs) 44

Csúcsra-mászás Stratégia A keresés során egy csomópont közvetlen leszármazottjait vizsgálja csak Ezek az ún. szomszédok Csak felfelé/lefelé tud menni Gradiens módszer Nem épít keresési fát Állapotról (s) állapotra (s ) lép Csúcsra-mászás 1) Legyen s egy (véletlen) kezdeti állapot. 2) Ha s egy célállapot, akkor állj le és add vissza eredményként. 3) Egyébként Állítsd elő s valamennyi szomszédját; Ha a legjobb s szomszédra f(s ) f(s) Akkor legyen s = s és menj vissza 2)-re. Egyébként állj le és add vissza s-et eredményként. 45

Csúcsra mászás (2) Szomszédság Művelet gépváltása Adott gépen két művelet helycseréje (swap) Tulajdonságok Nem tárolja a keresési gráfot, csak a pillanatnyilag vizsgált csomópontot - így minimális memória igény Sikere nagyban függ a felület alakjától Problémák Lokális magaslat Kiterjedt síkvidék Gerinctúra lenne jó, de arra nem vezet út O O O O O O O O O O O O 46

Szimulált hűtés Alapötlet Fémöntési technikával való analógia Algoritmus Nem a legjobb lépést választja, hanem véletlenül választ Ha a lépés javít a pillanatnyi helyzeten, elfogadja és megteszi Bizonyos valószínűséggel elfogad olyan lépést is, amely ront a pillanatnyi helyzeten Hőmérséklet: befolyásolja a rontó lépések elfogadásának valószínűségét kisebb hőmérsékleten kisebb az esély a keresés előrehaladtával a hőmérséklet csökken (végül csúcsramászás) Tulajdonságok Ha a hőmérséklet lassan csökken, jó eséllyel megtalálja a globális optimumot. Viszonylag új módszer, ám már meglepően sikeres alkalmazásokkal. 47

Algoritmus Szimulált hűtés 1) Legyen s egy véletlenül választott kezdeti megoldás. 2) Ha s egy célállapot, vagy a leállási feltétel teljesül, akkor állj le és add vissza s-et eredményként. 3) Egyébként állítsd elő s valamelyik s szomszédját; ha f(s ) f(s), akkor legyen s = s egyébként e (f(s )-f(s))/t valószínűséggel legyen s = s csökkentsd T hőmérsékletet; menj vissza 2)-re. Hűtési ütemterv 1/T k =C k ahol 0 C 1 C 2 C k k, akkor C k 48

Tabu keresés Alapötlet Memóriában tárolt információ vezérli a keresést Feladatfüggő tiltó és feloldó szabályok az operátorok alkalmazásával szemben Cél Globális optimalizálás Maximálni f(s): s S Operátor s s N(s) szomszédság: ahová egy lépésben el lehet jutni s-ből Döntések Megvizsgál minden lehetőséget N(s)-ben, akár javít, akár ront Nem teszi meg, ha tabu, de A tabu változó Feloldható (aspiráció) Megengedett lépések közül a legjobbat választja 49

Algoritmus Tabu Cél: annak megakadályozása, hogy a keresés visszatérjen egy korábban már meglátogatott megoldáshoz Ha s közelében van, pl. egyik utolsó L lépés Ha túl sokat ront f(s) értékén Tabu keresés 1) Legyen s egy véletlenül választott kezdeti megoldás, legyen TL egy rögzített hosszú tabu lista; 2) Ha s egy célállapot, vagy a leállási feltétel teljesül, akkor állj le és add vissza s-et eredményként. 3) Egyébként állítsd elő s valamennyi szomszédját, N(s)-t; s a legjobb az N(s)/TL halmazból; s = s ; tedd fel s-t TL tabu listára; menj vissza 2)-re. 50

Alkalmazási példa: ütemterv Jellemzők 25 gép, 3000 művelet (60 gyártási rendelés), ~150 nap routing alternativák: 3-10 Kezdeti ütemterv Ütemterv 50K iteráció után 51

Genetikus algoritmusok Alapötlet Keresés a természetes kiválasztódás (durva) utánzásával Populáció genetika Neo-darwinizmus Hipotézisek Genotípus és fenotípus Csak a genetikai jegyek öröklődnek Szelekció: a rátermettebb egyed marad fenn (hozz létre utódot) Mutáció: véletlen változások az adaptációt szolgálhatják Fogalmak Populáció, több egyed Genetikus kód Rátermettség (fitness) -- kiértékelés Genetikus műveletek Kereszteződés re-kombináció Mutáció Véletlen! 52

A GA ciklusa kezdeti állapotok kihalás megoldások kiértékelés kiválasztás műveletek alkalmazása 53

Algoritmus Genetikus algoritmus 1) Töltsd fel a kezdeti populációt. 2) Ha a leállási feltétel teljesül, akkor állj le és add vissza a legjobb egyedeket eredményként. 3) Egyébként válassz ki néhány egyedet a populációból; alkalmazd rájuk a genetikus műveleteket; értékeld ki az új egyedeket; dobd el a legrosszabb egyedeket; menj vissza 2)-re. Választás Nagyobb rátermettség nagyobb esély De nem kizárólagos Paraméterek Populáció mérete Kereszteződési és mutációs ráták 54

Példa Utazó ügynök probléma N város, köztük különböző hosszúságú utak Minden város egyszeri érintésével a legrövidebb út megtalálása Reprezentáció Szomszédsági modell Túra: n darab város listája. j város az i-dik helyen, ha az ügynök i városból j városba megy genotípus: (2 4 8 3 9 7 1 5 6) fenotípus: 1 2 4 3 8 5 9 6 7 Minden túra egyetlen szomszédsági listával leírható Illegális túrák: ciklusok Pl: (2 1...), (2 3 1...), A fenotípus kiértékelhető Van-e ciklus Ha nincs, milyen hosszú az út 55

Példa (2) Kereszteződés Véletlen kombinálás Őrizzen meg szegmenseket a szülők genetikai kódjából Ne hozzon létre életképtelen egyedeket Partially mapped crossover (PMX) p1 = ( 9 8 7 3 4 5 6 1 2 ) p2 = ( 4 5 2 1 8 7 6 9 3 ) o1 = ( x x x 3 4 5 6 x x ) o1 = ( x x 2 3 4 5 6 9 x) o1 = ( 8 7 2 3 4 5 6 9 1) részleges csere (swap) a szülők genetikus kódjában konfliktus nélküli feltöltés a másik szülőből pótlás sorban, az első szülőből 56

Order crossover (OX) p1 = ( 9 8 7 3 4 5 6 1 2 ) p2 = ( 4 5 2 1 8 7 6 9 3 ) Példa (3) o1 = ( x x x 3 4 5 6 x x ) szegmens másolása p1-ből o1 = ( 2 1 8 3 4 5 6 7 9 ) Mutáció Véletlen helycsere két szomszéd közt (swap) Életképes marad a túra feltöltés p2-ből az óramutató járásával egyező irányban; ha konfliktus, ugrás 57

Genetikus algoritmusok: tulajdonságok Implicit párhuzamosság Megoldástér feltárása vs. ismert megoldások kihasználása Exploration vs. exploitation Építőelemek (building blocks) kialakulása Sikeres egyedek genotípusában Tanulás és felejtés Konzervatív vs. adaptív Mutáció: akár más lokális keresés is lehet (SA) Kedvező mutáció hatása gyorsan terjed 58

Heurisztikák: Előre-hátra pakolás Iteratív javítás Megoldás utólagos javítása A korlátozások betartása mellett Jobbra-balra ütemezés Mintha egy dobozban rázogatnánk a zabpelyhet 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 59

Exakt vs. heurisztikus megoldás Exakt megoldás Korlátozás és szétválasztás (fa bejárás) LP (nem mindig alkalmazható) [Dinamikus programozás] Előnyök Valódi optimum Mérhető távolság az optimumtól a keresés megszakítása esetén Hátrányok Nagyon időigényes nagy feladatokon Heurisztikus megoldás Konstruktív módszerek Lokális keresés Populáció alapú keresés A fentiek kombinációi Előnyök Gyors Kevésbé érzékeny a feladatméret növekedésre Hátrányok Nincs becslés az optimumtól való távolságra 60

Korlátozás-alapú ütemezés Korlátozás alapú modell Változók X={x 1,...,x n } Véges értéktartományok Minden x i -re a lehetséges értékek D i véges halmaza Korlátozások Változók közti logikai reláció, ami korlátozza a változók lehetséges értékeit Megoldás Minden x i változónak olyan érték, ami kielégíti a korlátozásokat Több megoldás optimálás Ütemezési modell Változók: taskok start ideje start t Összefüggések Befejezés end t Időtartam d t start t + d t = end t d 61 est 0 1 2 3 4 5 6 7 8 9 10 11 12 13 lst eft lft

Korlátozások Időablak T1 start t end t T2 Precedencia (t1 t2) end-to-start end t1 start t2 (t1 t2) start-to-start start t1 start t2 Erőforrás korlátok Minden r erőforrásra egyenként Az azon egy időben futó task-ok erőforrásigénye Nem haladja meg a q(r) kapacitást Unáris erőforrás: q(r) = 1 Tároló (reservoir) Task-ok tölthetik és fogyaszthatják Állapot-függő erőforrás (state resource) Csak akkor fogyasztható, ha adott állapotban van Megfelelő erőforrás modell 62

Megoldás: következtetés + keresés kezdeti állapot megoldások Következtetés: korlátozás propagálás Az változók értéktartományainak szűkítése Megoldhatatlanság bizonyítása ha üressé válik egy tartomány Nem teljes Keresés Amikor a következtetés már nem segít Próbálkozás egy új C korlátozással és C negáltjával 63

Keresés Operátorok start t = a, start t =/= a start t < a, start t a Diszjunktív modell: (t1 t2), (t2 t1) Hatékonyság Hogyan járjuk be a fát? Hol tudunk vágni? 64

Hogyan oldjuk meg az ütemezési feladatot? Korlátozás propagálás A feladat transzformálása egy könnyebben megoldható, de ekvivalens feladattá Megoldás nem vész el A változók értéktartományainak szűkítése Propagátorok felelnek a korlátozásokért Speciális ütemezésben használatos - propagátorok Időablak és precedencia korlátozások Diszjunktív propagátor Erőforrás propagátorok Integrál jellegű Intervallum konzisztencia Keresési technikák Branch-and-bound Dichotom keresés Optimálás mint egy sorozat kielégíthetőségi probléma megoldása Lokális keresés Optimum nem garantált 65

Egyszerű időbeli propagátorok Időablak T start t est t = max{est t, T} T = 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 A korlátozás hatására szűkülhet t task időablaka, avagy szűkülhet start t értéktartománya Precedencia (t1 t2) lft t1 = min{lft t1, lft t2 d t2 } est t2 = max{est t2, est t1 + d t1 } t1 t2 0 1 2 3 4 5 6 7 8 9 10 11 4 5 6 7 8 9 10 11 12 13 66

Erőforrás propagátorok Time-table Olyan időszakok kijelölése, ahol biztos fut egy tevékenység lst t < eft t [lst t, eft t ] időszakban t tevékenység fut 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Diszjunktív propagátor Közös erőforrást igénylő tevékenységekre (t1 t2) (t2 t1) Ha lst t1 < eft t2 akkor (t2 t1) nem lehetséges Tehát (t1 t2) t1 0 1 2 3 4 5 6 7 8 9 10 11 67 t2 4 5 6 7 8 9 10 11 12 13

Intervallum konzisztencia Input-output teszt Alapötlet Több tevékenység egyazon erőforráson Feltesszük az egyikről, hogy nem lehet első (utolsó) Bebizonyítjuk, hogy így nincs elegendő idő a tevékenységek ütemezésére Tehát a kiválasztott tevékenység első (utolsó) kell, hogy legyen Ennek megfelelően szűkítjük az időablakokat Példa Kikövetkeztethető, hogy t1 első kell legyen Tehát (t1 {t2,t3}) Az időablakok szűkíthetők t1 t2 t3 0 1 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 2 3 4 5 6 7 8 68

Általános eset Adott Egyazon erőforrást igénylő tevékenységek halmaza I A teljes erőforrás igény I különböző részhalmazai P( i) : pi 1 2 i I J, J J I Ha max( lft est ) P( J) i J \ J 1 j J \ J i j 2 j i akkor vagy egy J 1 -beli tevékenység kell, hogy első legyen, vagy egy J 2 -beli kell, hogy utolsó legyen minden megoldásban 69

Általános eset (2) Magyarázat J J1 2 J Feltesszük, hogy J 1 beli tevékenységgel nem indítunk, és J 2 beli tevékenységgel nem fejezünk be Kiderül, hogy így nem áll elegendő idő rendelkezésre Tehát vagy J 1 beli tevékenységgel kell indítani, vagy J 2 beli tevékenységgel kell befejezni J ütemezését Példa (lásd előbb) J = {t1, t2, t3} J 1 = {t1} J 2 = {} I 70

Megoldás folyamata Klasszikus keresési módszerbe beágyazva branch-and-bound Döntések Melyik változóval foglakozzunk Milyen értéket kössünk le Propagálás a csomópontokban Időbeli korlátozások szűkülő időablakok Erőforrás korlátozások újabb sorrendi korlátozások, szűkülő időablakok A propagátorok egymást hívják Gyakorlatban is bevált módszer Más, alkalmazás-függő korlátozások is érvényesíthetőek Még így is lehet túl nehéz a probléma Újabb propagátorok Lokális keresés 71

A megoldás folyamata (2) feladat leírás kezdeti korlátozások új korlátozások keresési döntések korlátozás tár következtetett korlátozások, ellentmondás megoldás korlátozás propagálás 72

Konstruktív keresés Keresési fa Csomópont: döntések + változók adott értéktartománnyal Él: változó értékadása, tartomány szűkítése Levél: összes változó kiértékelve Méretek: mélység (d), elágazási tényező (b) Hogyan járjuk be? 73

Optimális megoldás (6x6 példa) 1 2 3 4 5 6 j1 [5 -- 1 --> 6] [6 -- 3 --> 9] [16 -- 6 --> 22] [30 -- 7 --> 37] [42 -- 3 --> 45] [49 -- 6 --> 55] j2 [0 -- 8 --> 8] [8 -- 5 --> 13] [13 -- 10 --> 23] [28 -- 10 --> 38] [38 -- 10 --> 48] [48 -- 4 --> 52] j3 [0 -- 5 --> 5] [5 -- 4 --> 9] [9 -- 8 --> 17] [18 -- 9 --> 27] [27 -- 1 --> 28] [38 -- 7 --> 45] j4 [8 -- 5 --> 13] [13 -- 5 --> 18] [22 -- 5 --> 27] [27 -- 3 --> 30] [30 -- 8 --> 38] [45 -- 9 --> 54] j5 [13 -- 9 --> 22] [22 -- 3 --> 25] [25 -- 5 --> 30] [38 -- 4 --> 42] [48 -- 3 --> 51] [52 -- 1 --> 53] j6 [13 -- 3 --> 16] [16 -- 3 --> 19] [19 -- 9 --> 28] [28 -- 10 --> 38] [45 -- 4 --> 49] [49 -- 1 --> 50] 74

Erőforrás-korlátos projekt ütemezés Projekt tevékenységek/aktivitások hálózata Erőforrások Különféle Korlátos kapacitás (ún. diszkrét erőforrás: > 1) Aktivitás erőforrás igény időtartam megszakítható/nem megszakítható Előzési korlátozások 75

76 Erőforrás-korlátos projekt ütemezés (2) Egyféle modell Aktivitás indexe i A Az i aktivitás végrehajtási ideje d i Erőforrás indexe k R Az i aktivitás igénye a k erőforrásból r ik A k erőforrás kapacitása c k Az előzési korláttal összekapcsolt i,j aktivitások halmaza P Az i aktivitás befejezési ideje end i A t időpontban futó aktivitások halmaza S t Feladat min end Megoldása igen nehéz i end end d, i, j P St j i j r c, t T, k R ik i end d t end k i i i

Összegzés Korlátozás programozás Erős leíró nyelv Megoldás: következtetés + keresés Propagátorok: a feladat transzformálása könnyebben megoldható formába Ki kell használni az adott probléma szerkezeti sajátosságait Speciális propagátorok Becslés Mindezzel együtt túl nehéz lehet a probléma Lokális keresés ha más nem segít Ne akadjon el lokális szélsőértékekben Hatékonyság Szomszédság generálása Kiértékelés Tabu keresés: tanulás + felejtés Igen nagyméretű feladatok is megoldhatók Becslés: hogy tudjuk, mennyire jól 77

Nyitott kérdések Tervezés és ütemezés integrálása Ha rossz a terv, azon már az ütemezés nem tud segíteni De elrontani egy jó tervet még lehet Nagyméretű, gyakorlati ütemezési feladatok megoldása Sajátos struktúra Könnyű és nehéz alfeladatok kombinációja Igazából kevés a nehéz döntés Ezeket kell mielőbb meghozni Szimmetria Sok azonos értékű megoldás Bizonytalanságok Több kritérium szerinti optimálás Ütemtervek végrehajtása A valóság mindig más Robusztus ütemezés nem érzékeny a bemenő adatok változására Újra-ütemezés 78