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

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

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

Programozási módszertan. Mohó algoritmusok

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

Ü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

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

Konjugált gradiens módszer

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

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

Mesterséges Intelligencia MI

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

2. Visszalépéses keresés

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

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

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/

Képrekonstrukció 9. előadás

Keresések Gregorics Tibor Mesterséges intelligencia

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

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

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

Keresési algoritmusok, optimalizáció

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

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

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

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

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

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

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

2. Visszalépéses stratégia

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

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.

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

Formális nyelvek - 9.

Mesterséges Intelligencia MI

Lineáris algebra gyakorlat

Opkut deníciók és tételek

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

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

Képrekonstrukció 6. előadás

angolul: greedy algorithms, románul: algoritmi greedy

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

A szimplex algoritmus

A lineáris programozás alapjai

Az optimális megoldást adó algoritmusok

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

Visszalépéses keresés

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

Logisztikai szimulációs módszerek

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

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

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

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

Döntéselőkészítés. VII. előadás. Döntéselőkészítés. Egyszerű Kőnig-feladat (házasság feladat)

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

Online migrációs ütemezési modellek

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

A szimplex tábla. p. 1

2016, Diszkrét matematika

Bevezetés az informatikába

Programozási segédlet

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

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Algoritmusok bonyolultsága

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

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

Mesterséges Intelligencia MI

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

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

Diszkrét matematika 2. estis képzés

Megerősítéses tanulás 2. előadás

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

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

KOVÁCS BÉLA, MATEMATIKA I.

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

Kontrollcsoport-generálási lehetőségek retrospektív egészségügyi vizsgálatokhoz

KOVÁCS BÉLA, MATEMATIKA I.

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Robotika. Kinematika. Magyar Attila

2) Írja fel az alábbi lineáris függvény grafikonjának egyenletét! (3pont)

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

10. Előadás. 1. Feltétel nélküli optimalizálás: Az eljárás alapjai

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

A számítástudomány alapjai

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Algoritmusok és adatszerkezetek 2.

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

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

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

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

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

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

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

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

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Á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 8. Előadás Dr. Kulcsár Gyula egyetemi docens

Kereső algoritmusok alkalmazása erőforrás tervezési feladatok megoldására

Tartalom 1. Heurisztikus megoldási módszerek 2. A lokális szomszédgási keresés alapjai 3. Szimulált hűtés alkalmazása 4. Tabu keresés alkalmása

Heurisztikus megoldási módszerek

Bevezetés Az ütemezési feladatok többsége nagyon nehezen kezelhető. A gyakorlatban a nagyszámú bemenő adat miatt az egzakt megoldási módszerek ritkán alkalmazhatók. Az esetek döntő többségében valamilyen heurisztikus megoldási módszert alkalmaznak. Az egyszerű feladatokra ismert megoldási módszerek a nagy feladatokban építőelemekként használhatók fel. Adott problémára optimális megoldást adó módszerek más hasonló de bonyolultabb feladatok esetében heurisztikus módszerként alkalmazhatók (pl. EDD, SPT, stb. szabályok).

Heurisztikus megoldási módszerek Felépítő jellegű heurisztikus algoritmusok Egy üres ütemtervből indulnak ki. Valamilyen előzetesen definiált szabály alapján kiválasztanak egy munkát és azt valamilyen stratégia alapján ütemezik be. Az ütemterv fokozatosan alakul ki. Iteratív javítás elvén működő algoritmusok Egy megengedett ütemtervből indulnak ki. Ez lehet véletlenszerűen előállított megoldás is. Apró módosításokkal megpróbálják javítani az ütemtervet a kritériumok figyelembe vételével. Az alap módszerek gyakran kombináltan is használatosak.

Az előadás célja A szakirodalomban nagyon sokféle keresési módszer fellelhető. Ezek részletes ismertetése nem tartozik az előadás céljai közé. Most a lokális szomszédsági kereső algoritmusok alkalmazásának koncepciója kerül bemutatásra példákon keresztül.

A lokális szomszédgási keresés alapjai

A keresés alapja A megoldandó problémát (feladatot) egy diszkrét optimalizálási feladatnak tekintjük. Adott egy véges S halmaz és az azon értelmezett f függvény: f:s R. Keressük azt az s S megoldást, amelyhez a legkisebb függvényérték tartozik: f(s ) f(s) s S.

A lokális keresés alapelve 0. Lépés: Inicializáljuk a számlálót nullával: k=0. Készítsünk egy s 0 kiindulási megoldást. Legyen s k = s 0 és s = s 0 ; 1. lépés: Válasszunk egy s szomszédos megoldást az s k szomszédságából: s N(s k ). 2. lépés: Vizsgáljuk meg az elfogadási kritériumot, ha az teljesül, akkor a kiválasztott megoldást megtartjuk s k+1 = s, egyébként az s k megoldást visszük tovább: s k+1 = s k. 3. lépés: Hasonlítsuk össze az aktuális megoldást az eddigi legjobb megoldással. Ha jobbat találtunk f(s) < f(s ) akkor azt jegyezzük meg: s = s. 4. lépés: Vegyük a következő iterációt: k = k+1. Vizsgáljuk meg a leállási feltételt, ha az teljesül, akkor készen vagyunk, egyébként folytassuk az 1. lépéssel.

Az elv alkalmazása Ahhoz, hogy a lokális keresés elvét adott feladat (pl. ütemezési probléma) esetében alkalmazni tudjuk, a következő döntéseket kell meghozni: Hogyan definiáljuk a megoldás (pl.. ütemterv) reprezentációját? Hogyan értelmezzük a szomszédságot? Milyen módszert használjunk a jelölt kiválasztására? Mi legyen az elfogadás/elvetés kritériuma?

Szomszédság Egy adott s k megoldás szomszédságát értelmezhetjük úgy, hogy definiálunk egy N x szomszédsági (módosító) operátort és azt alkalmazzuk a kiindulási (bázis) megoldáson: s=n x (s k ) A definiált operátorral egy lépésben előállítható megoldások halmaza alkotja a szomszédságot: N(s k )={s s=n x (s k )}.

Szomszédság (1. példa) Az egygépes megszakítás nélküli ütemezési problémák és az egyutas előzésnélküli ütemezési problémák esetében egy megoldás egyértelműen leírható egy vektorral, amelynek elemszáma megegyezik az ütemezendő munkát számával (n). Példák szomszédsági operátorokra: N1: két szomszédos munkát felcserél az ütemtervben. s k = { 1, 2, 3 } N(s k ) = { { 2, 1, 3 }; { 1, 3, 2 } } Az N1 operátor alkalmazásával n 1 számú különböző szomszédos megoldás készíthető. N2: kiemel egy munkát az ütemtervből és egy másik pozícióba illeszti be. s k = { 1, 2, 3 } N(s k ) = { { 2, 1, 3 }; { 2, 3, 1 }; { 1, 3, 2 }; { 3, 1, 2 } } Az N2 operátor esetében n(n 1) számú szomszédos megoldás állítható elő. Azonban ezek között vannak ismétlődések is, így a különböző megoldások száma ennél kevesebb.

Szomszédság (2. példa) Vizsgáljuk most a jóval bonyolultabb Job Shop feladatot C max célfüggvény esetén. Ebben a feladatban egy megoldás a gépek számával (m) azonos számú vektorral írható le.

Szomszédság (2. példa folyt.) Példa szomszédsági operátorra: N1: a kritikus útvonal mentén valamely gép két szomszédos operációját felcseréli. A kritikus útvonal operációk sorozatából áll: Az első a referencia (nulla) időpontban kezdődik. A következő indítási időpontja megegyezik az előző befejezési időpontjával (és így tovább ) A kritikus útvonal utolsó operációjának befejezési időpontja az ütemterv C max értékével egyezik meg.

Szomszédság (2. példa folyt.) Példa szomszédsági operátorra: N2 (One Step Look Back, párcsere visszatekintéssel): a kritikus útvonal mentén valamely gép két szomszédos operációját felcseréli, majd az előrébb mozdított operációt tartalmazó munka eggyel korábbi operációját is felcseréli az előtte lévő operációval.

Szomszédság (2. példa folyt.) N2 részletesen: Jelölje (k,j) az M k gépen a J j munka operációját. Legyen (k,j) és (k,i) szomszédos operációk a kritikus útvonal mentén. Cseréljük fel a (k,j) és (k,i) operációkat. Legyen (h,l) az az operáció, amely a M h gépen közvetlenül a (k,i) operációt tartalmazó munka előtt helyezkedik el. Cseréljük fel a (h,l) és (h,i) operációkat.

Szomszédság (2. példa folyt.) s M h M k (h, l) (h, i) (k, j) (k, i) s 1 = N 1 (s) M h M k (h, l) (h, i) (k, i) (k, j) s 2 = N 2 (s) M h M k (h, i) (h, l) (k, i) (k, j)

Kiválasztási stratégia A kiválasztási stratégia azt határozza meg, hogy a bázis megoldás szomszédságából melyik megoldást válasszuk ki a továbblépéshez. A nagyméretű feladatokban a szomszédság óriási halmazt eredményez. Ilyenkor nem vizsgáljuk meg a teljes szomszédságot, hanem valamilyen mintavételezéssel a szomszédság egy szűkített részhalmazát vizsgájuk.

Kiválasztási stratégia (példák) Sokféle mintavételezési módszer létezik. Két tipikus példa: Véletlenszerű választás: a bázis megoldásból véletlenszerűen állítunk elő szomszédos megoldásokat és azok közül választjuk ki a legjobbat. A szűkített szomszédság generálását úgy végezzük, hogy valamilyen szisztémával először azokat a szomszédos megoldásokat vizsgáljuk, amelyek a célfüggvény szempontjából várhatóan a legnagyobb javulást eredményezik. Például a maximális késés minimalizálása során a módosító operátor a legnagyobb késéssel rendelkező munkákat próbálja először módosítani.

Elfogadási kritérium Az elfogadási kritérium azt szabályozza, hogy a szomszédságból adott lépésben kiválasztott megoldást elfogadjuk vagy elvetjük. Ha elfogadjuk, akkor a következő iterációban abból generálunk szomszédos megoldásokat.

Elfogadási kritérium Alapvetően két egymással összefüggő kérdést kell megválaszolnunk: Egy jobb megoldást mindig el kell fogadni? Időnként elfogadható rosszabb megoldás is? Az elfogadási kritérium különbözteti meg a legnagyobb mértékben egymástól a különböző lokális keresési algoritmusokat.

Szimulált hűtés Simulated Annealing (SA)

Szimulált hűtés (SA) Az SA nagyszámú iterációból áll. Egy közbenső k. iterációban s k jelenti az aktuális megoldást. s jelenti az addig megtalált legjobb megoldást. Jelölje f(s k ) az s k megoldás célfüggvény értékét. A célfüggvény értékek alapján dönt, hogy két vizsgált megoldás közül melyiket tekinti jobb megoldásnak. A k. iterációban az s k szomszédságából választ egy jelölt s c megoldást. Ha s c jobb megoldás mint s k, akkor az lesz a következő iterációban a szomszédság kiindulási megoldása (bázisa) s k+1 = s c. Ellenkező esetben a következő valószínűséggel fogadja el az s c megoldást:

Hűtési paraméter A t k egy vezérlő paraméter ( hőmérséklet ): A t k értékét gyakran úgy választják meg, hogy ahol az alfa értéke 0 és 1 közötti valós szám.

Szimulált hűtés (SA) Az SA a rosszabb megoldást is elfogadja esetenként. Ennek az a célja, hogy a lokális optimumból tovább tudjon lépni és később jobb megoldást is képes legyen megtalálni. Az elfogadási kritérium figyelembe veszi a jelölt megoldás jóságát, és ha az nagyon rossz, akkor nagyon kicsi valószínűséggel fogadja el. Sokféle leállási feltétel használható. Az egyik lehetőség, hogy ha egy előre beállított értéket elér az iterációk száma, akkor az SA leáll. Egy másik lehetőség, hogy a javulásokat figyeli és ha az utolsó javulástól számított előre megadott számú iteráción keresztül nincs javulást akkor leáll.

Szimulált hűtés (SA) A szimulált hűtés (Simulated Annealing, SA) algoritmus működése a következőképpen foglalható össze: 0. Lépés: Inicializálás. 1. lépés: Jelölt választása. 2. lépés: Vizsgálat. 3. lépés: Legjobb megoldás aktualizálása. 4. lépés: Következő iteráció/kilépés.

SA: 0. lépés

SA: 1. lépés

SA: 2. lépés

SA: 3. lépés Hasonlítsuk össze az aktuális megoldást az eddigi legjobb megoldással!

SA: 4. lépés Vegyük a következő iterációt! Adjunk új értéket a vezérlő paraméternek úgy, hogy teljesüljön. Vizsgáljuk meg a leállási feltételt, ha az teljesül, akkor készen vagyunk, egyébként folytassuk az 1. lépéssel.

Megjegyzés Az SA algoritmus hatékonysága nagymértékben függ a szomszédság megválasztásától és a vezérlő paraméter értékének változtatási stratégiájától ( hűtési stratégia").

Tabu keresés Tabu Search (TS)

A tabu lista szerepe A TS sok szempontból hasonlít a szimulált hűtéshez. Az alapvető különbség az, hogy a TS determinisztikus elfogadási kritériumot használ. A TS a keresés minden iterációjában nyilvántart egy tabu listát. A tabu lista olyan változásokat tartalmaz, amelyek a korábbi lépésekben már megvizsgált megoldásokhoz vezetnek. Ezek tiltott változtatások. A tabu lista folyamatosan frissül, a nyilvántartott módosítások száma korlátozott. Az új elem a lista elejére kerül és a legrégebbi elem a lista végéről törlődik. A tabu lista segítségével a lokális minimumból tovább tud lépni az algoritmus, mert a tiltott módosításokat nem engedi elfogadni, így nem következik be rövid ciklusú ismétlődés.

A tabu lista mérete A tabu lista elemszáma fontos paramétere a TS algoritmusnak. Ha a maximális elemszám túl nagy akkor a keresés nagyon korlátozottá válik, ha pedig túl kicsi akkor ismétlődő keresési útvonal alakulhat ki.

Egy egyszerű példa Egy vektorral reprezentálható ütemterv esetén például a módosítás két munka felcserélését jelenti: (i,j). Ha végrehajtásra került ez a módosítás egy adott iterációban, akkor ennek az inverze kerül fel a tabu listára: (j,i). Amíg a lista tartalmazza ezt a tiltott módosítást, addig a keresés során későbbi iterációkban nem engedélyezett ennek az inverz módosításnak az elvégzése mert akkor visszajuthatunk a korábbi megoldáshoz.

A tabu lista szerkezete Az ütemezési feladatok jellegétől függően a módosítások nyilvántartása nagyon különböző lehet. Léteznek olyan tabu keresési elven működő algoritmusok is, amelyek nem a tiltott módosításokat, hanem a tiltott megoldásokat tárolják a tabu listán. Ez akkor célszerű, ha a szomszédság definíciójában többféle módosító operátor együttesen is szerepelhet. Ilyenkor egy jelölt megoldás csak akkor fogadható el, ha az nem szerepel a tabu listán.

Tabu keresés (TS) A TS algoritmus működése a következőképpen foglalható össze: 0. Lépés: Inicializálás. 1. lépés: Jelölt választása. 2. lépés: Vizsgálat. 3. lépés: Legjobb megoldás aktualizálása. 4. lépés: Következő iteráció/kilépés.

TS: 0. lépés

TS: 1. lépés

TS: 2. lépés Vizsgáljuk meg az elfogadási kritériumot! Ha az módosítást nem tiltja egyetlen bejegyzés sem a tabu listán, akkor és az elvégzett módosítás inverze felkerül a tabu lista elejére, valamint ha a tabu lista elemszáma elérte a maximális értéket akkor az utolsó elemet töröljük. Ha az módosítást tiltja valamelyik bejegyzés a tabu listán, akkor és folytassuk a 4. lépéssel.

TS: 3. lépés Hasonlítsuk össze az aktuális megoldást az eddigi legjobb megoldással!

TS: 4. lépés Vegyük a következő iterációt! Vizsgáljuk meg a leállási feltételt, ha az teljesül, akkor készen vagyunk, egyébként folytassuk az 1. lépéssel.

Megjegyzés Az TS algoritmus hatékonysága nagymértékben függ a szomszédság megválasztásától és a tabu lista kezelési stratégiától.

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