Oláh Béla 1. A cikket lektorálta: Prof. Dr. Pokorádi László, Debreceni Egyetem egyetemi tanár, műszaki tudomány kandidátusa



Hasonló dokumentumok
FLOW-SHOP ÜTEMEZÉSI FELADATOKAT MEGOLDÓ GENETIKUS ALGORITMUS MUTÁCIÓ OPERÁTORAINAK ÉRZÉKENYSÉGVIZSGÁLATA

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

A FLOW-SHOP ÜTEMEZÉSI PROBLÉMA MEGFOGALMAZÁSA

ECONOMICA. A Szolnoki Fõiskola Tudományos Közleményei 2010/3. Angol nyelvi lektor: Csatlós Krisztina

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

I. BEVEZETÉS II. AZ UTAZÓ ÜGYNÖK PROBLÉMA ÉS MEGOLDÁSI MÓDSZEREI

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

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

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

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

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

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

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

Mesterséges Intelligencia MI

Területi elemzések. Budapest, április

Dr. habil. Maróti György

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

Szá molá si feládáttí pusok á Ko zgázdásá gtán I. (BMEGT30A003) tá rgy zá rthelyi dolgozátá hoz

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

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

Evolúciós algoritmusok

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

A 2009-es év országos átlaga megegyezik, a fenntartói 4% csökkenést mutat, az iskolai eredmény viszont 2%-kal jobb a tavalyinál.

ÜTEMEZÉSI FELADATOKRA ALKALMAZOTT GENETIKUS ALGORITMUS KERESZTEZŐ OPERÁTORAINAK VIZSGÁLATA

SZAKIN program használati útmutató: A megjelenő képernyő baloldalán találjuk a választó mezőt, a jobboldali részen a

A Markowitz modell: kvadratikus programozás

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.

Genetikus algoritmusok

Az optimális megoldást adó algoritmusok

Felvételi tematika INFORMATIKA

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

Képrekonstrukció 9. előadás

Országos kompetenciamérés eredményei Kiskulcsosi Általános Iskola Telephelyi jelentés évfolyam szövegértés

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

A Markowitz modell: kvadratikus programozás

2. A 2016.évi Országos kompetencia mérés eredményeinek feldolgozása

Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA

V. Kétszemélyes játékok

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

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

Kecskeméti Belvárosi Zrínyi Ilona Általános Iskola Városföldi Általános Iskolája 2014-es évi kompetenciamérésének értékelése Készítette: Knódel Éva

Általános algoritmustervezési módszerek

kompetenciakompetenciakompetenci akompetenciakompetenciakompeten ciakompetenciakompetenciakompete nciakompetenciakompetenciakompet

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

Reiczigel Jenő,

Approximációs algoritmusok

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

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

Pécsvárad Kft Pécsvárad, Pécsi út 49. Tel/Fax: 72/ Szerzők:

Megyei tervezést támogató alkalmazás

HÁZI DOLGOZAT. Érmefeldobások eredményei és statisztikája. ELTE-TTK Kémia BSc Tantárgy: Kémia felzárkóztató (A kémia alapjai)

Mesterséges Intelligencia MI

Swing Charting Játék az idővel (2.)

A Kecskeméti Jubileum paradicsomfajta érésdinamikájának statisztikai vizsgálata

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

A 2011-es év kompetencia-méréseinek elemzése

SZÁLLÍTÁSI FELADAT KÖRUTAZÁSI MODELL WINDOWS QUANTITATIVE SUPPORT BUSINESS PROGRAMMAL (QSB) JEGYZET Ábragyűjtemény Dr. Réger Béla LÉPÉSRŐL - LÉPÉSRE

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

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

1. tétel. 1. Egy derékszögű háromszög egyik szöge 50, a szög melletti befogója 7 cm. Mekkora a háromszög átfogója? (4 pont)

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Teljesítményprognosztizáló program FELHASZNÁLÓI KÉZIKÖNYV

Táblázatos adatok használata

KUTATÁS-FEJLESZTÉSI TEVÉKENYSÉG

AKTUÁTOR MODELLEK KIVÁLASZTÁSA ÉS OBJEKTÍV ÖSSZEHASONLÍTÁSA

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

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

Gyakorló feladatok a 2. zh-ra MM hallgatók számára

Programozási módszertan. Mohó algoritmusok

Zenegenerálás, majdnem természetes zene. Bernád Kinga és Roth Róbert

Ü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

1/8. Iskolai jelentés. 10.évfolyam matematika

Kifizetések kezelése. 1 Kifizetési dátumok megadása pénzügyi kódokhoz

Osztott algoritmusok

Kutatás-fejlesztési adatok a PTE KFI stratégiájának megalapozásához. Országos szintű mutatók (nemzetközi összehasonlításban)

Szebényi Anita Magyarország nagyvárosi térségeinek társadalmi-gazdasági

Universität M Mis is k k olol cic, F Eg a y kultä etem t, für Wi Gazda rts ságcha tudfts o w máis n s yen i scha Kar, ften,

4,5 1,5 cm. Ezek alapján 8 és 1,5 cm lesz.

Feladatunk, hogy az alábbiakban látható tízgépes elrendezésre meghatározzuk az operátorok optimális kiosztását a vevői igények függvényében.

A Termelésmenedzsment alapjai tárgy gyakorló feladatainak megoldása

Előrenéző és paraméter tanuló algoritmusok on-line klaszterezési problémákra

Konjugált gradiens módszer

1.1.1 Dátum és idő függvények

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

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

Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán

1. MATEMATIKA EMELT SZINTŰ ÍRÁSBELI FELADATSOR

Az aktuális üzleti bizalmi index nagyon hasonlít a decemberi indexhez

TeIR. EUROSTAT adatlekérdező. (Használati útmutató) Budapest, május 19.

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?

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

Országos Rendezési Tervkataszter

Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008.

A Kecskeméti Belvárosi Zrínyi Ilona Általános Iskola Tóth László Általános Iskolája 2015-ös évi kompetenciamérésének értékelése

Nemzeti Társadalmi Felzárkóztatási Stratégia indikátor rendszer

Vállalkozások fejlesztési tervei

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

Gazdasági mutatók összehasonlítása székelyföldi viszonylatban

Makroökonómia. 8. szeminárium

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

Átírás:

Szolnoki Tudományos Közlemények XIV. Szolnok, 2010. Oláh Béla 1 FLOW-SHOP TERMELÉSÜTEMEZÉSI FELADATOKAT MEGOLDÓ GENETIKUS ALGORITMUS ÉRZÉKENYSÉGVIZSGÁLATA Jelen tudományos munka célkitűzése a szerző által már korábban elkészített és publikált permutáció flow-shop termelésütemezési feladatokat megoldó genetikus algoritmus (GA) paraméter-érzékenységvizsgálata. A dolgozat az algoritmus által használt különböző genetikus operátorok (klónozás, keresztezés és mutáció operátor) egymáshoz viszonyított arányainak vizsgálatára terjed ki, valamint a populáció méretének és az iteráció számának módosítása által adott eredmények összehasonlítására a megoldások optimum-közeli hatékonyságának függvényében, illetve különböző paraméter-érzékenységvizsgálatok elvégzésére, mint a kiválasztási stratégiák módosítása által adott gépi holtidő értékek összehasonlítására. A szerző megvizsgálja, hogy a paraméterek adott értékénél hogyan változik a program teljesítménye, értékeli a kapott eredményeket és összefüggéseket keres, melyek segítségével a genetikus algoritmus hatékony alkalmazása lehetséges. A kutatás gyakorlati jelentőségű eredménye annak kiderítése lesz, hogy a különböző méretű feladatoknál milyen beállításokban érdemes az egyes genetikus paramétereket használni, továbbá hogy milyen arányban érdemes az egyes genetikus operátorokat használni, a minél hamarabbi és minél inkább optimum-közeli megoldások szolgáltatása végett. SENSITIVITY ANALYSIS OF A GENETIC ALGORITHM FOR THE FLOW-SHOP SCHEDULING PROBLEMS The main goal of this scientific work is the sensitivity analysis of the author s own genetic algorithm (GA) for the permutation flow-shop scheduling problems. This paper covers the analysis of the proportion of the different genetic operators (cloning, crossover and mutation operator) used by the algorithm and the comparison of the results given by choosing of the different selection strategies as well as by modification of the population size and the iteration number in function of the efficiency of the near optimal solutions. The author analyzes how the efficiency of the algorithm changes by some values of the genetic parameters, evaluates the obtained results and searches for relations that help to apply the GA more effectively and efficiently. The practical importance of the research results is to determine in what setting the genetic parameters have to be used in order to supply near optimal solutions to problems of different sizes at the fastest possible time. 1 Szolnoki Főiskola Műszaki és Gépészeti Tanszék, főiskolai tanársegéd, olahb@szolf.hu A cikket lektorálta: Prof. Dr. Pokorádi László, Debreceni Egyetem egyetemi tanár, műszaki tudomány kandidátusa

gép A FLOW-SHOP ÜTEMEZÉSI PROBLÉMA MEGFOGALMAZÁSA A p 1 p 2 p 3 p 4 p 5 állás idők holtidők B p 1 p 2 p 3 p 4 p 5 C p 1 p 2 p 3 p 4 p 5 D p 1 p 2 p 3 p 4 p 5 átfutási idő idő 1. ábra. A permutáció flow-shop ütemezés Gantt-diagramja Adott n számú termék, amelyeken m számú különböző munkafolyamatot kell elvégezni. A technológiai útvonal, ami az összes termékre nézve azonos, valamint a műveleti idők előre adottak. Meg kell határozni a termékeknek azt a sorrendjét a gépeken, amely bizonyos előre megadott szempontok szerint optimális. Ilyen a gyakorlatban is használt logisztikai célfüggvények a következők lehetnek (1. ábra): minimális átfutási idő; technológiai berendezések maximális kihasználása (holtidők minimálása); minimális gyártásközi készletek (termékek állásidejének minimálása). A GENETIKUS ALGORITMUS ISMERTETÉSE A genetikus algoritmusok fogalmát először Holland [Holland 1975] vezette be. A genetikus algoritmusok tervezése során az evolúciót tekinthetjük mintaképnek. Kezdetben nem optimálisan megírt, vagy paraméterezett programok keresztezések során a természetes kiválasztódás elve alapján fejlődnek, és a tapasztalat szerint közelítenek egy jó megoldáshoz. Nagyon jól alkalmazhatók bizonyos optimalizálási problémákhoz. A genetikus algoritmus [Michalewicz 1996] lényege, hogy rendelkezik a lehetséges megoldások egy populációjával, a populáción értelmezett a kiválasztási folyamat amely az egyedek alkalmasságán alapul és értelmezett néhány genetikus operátor (2. ábra). Definiáljuk a következőket: egyed: a termékek sorszámát tartalmazza, tehát egy teljes sorrendet; populáció: az egyedek összessége; fitnesz (alkalmasság): egy egyed jóságát számszerűen ábrázoló adat; klónozás: a régi populáció nagyobb alkalmassággal rendelkező egyedeinek az új populációba történő másolása; keresztezés: két (szülő) egyed genetikus anyagának egy részét kicseréli, ezáltal hozva létre új egyedeket; mutáció: apró véletlenszerű változások az egyed genetikus anyagában. 4

Induló populáció generálása Kiértékelő függvény További optimalizálás nem Legjobb egyed igen eredmény Start Új populáció generálása Kiválasztás Klónozás Mutáció Keresztezés 2. ábra. A genetikus algoritmus folyamatábrája [Pohlheim 2009] Az induló populáció készítése esetünkben a lehetséges megoldások véletlenszerűen kiválasztott halmazát jelenti. A szelekció nem az egyedeken, hanem a populációkon működik. A legismertebb, és a szerző által is használt fajtái: véletlen (random selection) kiválasztás: a legegyszerűbb, ámde a legkevésbé hatékony szelekció. Gyakorlatilag az aktuális populációból véletlenszerűen választ szülőket. Legnagyobb hátránya, hogy nem veszi figyelembe azt a darwini alapelvet, miszerint a rátermettebb egyedek nagyobb eséllyel érvényesülnek az egyedlétrehozásban; rulett-kerék (roulette wheel selection) kiválasztás: az egyik legrégebbi, és leginkább használt szelekciós operátor. Egy egyed kiválasztásának valószínűsége annál magasabb, minél nagyobb a rátermettsége a populáción belül (rátermettség-arányos szelekció). A rulett-kerék kiválasztás úgy működik, mintha az egyedeket egy rulett-kerék cikkelyeihez rendelnénk, ahol a cikkelyek nagysága a fitnesz értékkel arányos. Ahol a golyó megáll a pörgetés után, az az egyed kiválasztásra kerül; legjobb egyed (best selection) kiválasztás: fitnesz érték alapján sorbarendezzük az egyedeket, és az első k darabot választjuk ki. A genetikus algoritmus is mint oly sok más a tudományban a természettől kölcsönzött ötlet alapján működik [Goldberg 1989]. Az életben évmilliók során kialakulnak azok az egyedek, amelyek legjobban alkalmazkodtak az élőhelyükhöz, amelyek fennmaradása biztosított. Ezek az egyedek genetikus állományukat és ezzel jó tulajdonságaikat továbbadják utódaiknak, biztosítva ezzel a populáció fennmaradását. Néha mutációk véletlenszerű változások adódnak a genetikus állományban. Az új egyedekben új tulajdonságok jelennek meg, amelyek vagy jobbak az eredetinél és így az egyedek életben maradnak, tovább örökítve jó tulajdonságaikat, vagy rosszabbak, s így elpusztulnak. Jelen tanulmány készítője ezt a folyamatot próbálta átírni számítógépre a termelésütemezési problémák megoldására. 5

A SZÁMÍTÓGÉPES PROGRAM BEMUTATÁSA A 3. ábra a program ami Borland Delphi 5-tel [Benkő 2000; Cantu 2000] íródott felhasználói felületét mutatja. A dialógusablakban a konstans jellegű paraméterek találhatók. Első lépésben beállítjuk a megmunkálni kívánt termékek, valamint a megmunkáló berendezések mennyiségét. Ezután a genetikus algoritmushoz szükséges alapadatokat állíthatjuk be tetszés szerint (populáció mérete, iterációk száma, a keresztezés, a mutáció és a klónozás aránya, kiválasztási stratégia). Az optimalizáló célfüggvényt a megfelelő választógomb bekapcsolásával választhatjuk ki. Ezután a program beállítja az időmátrix fejléceit a megadott gépek és termékek számának megfelelően. A felhasználó három különböző feltöltés közül választhat, úgymint gépi feltöltés, kézi adatbevitel és a Fájl/Betöltés menüponttal fájlból való betöltés is lehetséges. A programban a Módszerek menüpontból nyíló legördülő menüből választhatjuk ki, hogy a probléma megoldására alkalmas algoritmusok közül melyikkel óhajtjuk megoldani a feladatot. Természetesen így össze lehet hasonlítani a különböző módszerek hatékonyságát a kapott eredmények függvényében, melyet a dolgozat készítője korábbi tudományos munkássága alatt, már megtett [Oláh 2005]. 3. ábra. A program felhasználói felülete A genetikus algoritmus esetében egy kromoszóma a termékek tetszőleges sorrendjét jelenti, ez lesz az adatok helyes reprezentációja. A kiválasztódást alapbeállításban egyszerű fitnesz szerinti rendezéssel oldjuk meg, és a magasabb fitnesszel rendelkező egyedeket választjuk ki, de lehetőség van véletlenszerű, illetve a rulett-kerék szisztémának megfelelő kiválasztásra is. A GA megírása során két keresztező eljárást alkalmazott a szerző egyenlő arányban, úgymint 6

a Cycle-Crossover (CX) [Oliver et al. 1987] és az Order-Crossover (OX) [Davis 1985], valamint négy mutáció operátort (reciprocal exchange, simple inversion, swap és displacement) használt fel szintén egyenlő arányban. Kiértékeléskor a maximális út megkeresésére alkalmas Bellmann-Pontrjagin-féle optimalizálási elvre [Tóth 1990] épülő a szerző által kidolgozott algoritmusba [Oláh 2009] történik a behelyettesítés. 4. ábra. A genetikus algoritmus futási eredménye Genetikus algoritmus segítségével megoldva egy feladatot az iteráció előrehaladtával a grafikonon nagyon szépen nyomon követhető a legjobb egyed célfüggvény szerinti értéke valamint a populáció átlagértéke is (4/a. ábra). A legjobb egyed piros színnel (alsó görbe), míg az átlagérték kékkel (felső görbe) szerepel a grafikonon a jobb követhetőség érdekében. Mivel előfordulhat, hogy egy szülőt alacsonyabb fitnesz-értékű utód vált fel, így a populáció átlagértéke emelkedhet is. Ezzel szemben a legjobb egyed fitnesz-értéke monoton csökkenő függvénnyel ábrázolható. Az információs ablakban (4/b. ábra) az algoritmus futása közben folyamatosan kiírásra kerül az iterációk száma, valamint a legjobb egyedhez tartozó átfutási-, holt- és állásidők egyaránt. Az iterációk befejeztével megjelenik a legjobb egyedhez tartozó sorrend is. Az iteratív működés következtében több időre van szükségünk egy optimálishoz közeli megoldás eléréséhez, mint más heurisztikus esetben, viszont lényegesen jobb eredmény érhető el. A generációk számának növekedésével a legjobb egyed átlagos fitnesz-értéke egyre jobban megközelíti az optimális értéket, amely a vizsgált paramétertérben egy többé-kevésbé erős konvergenciát mutat. A feladat fitnesz-értékeit ábrázoló grafikonon megfigyelhető, hogy a GA végül olyan állapotba jutott, amelyben mind a legjobb individuum alkalmasság-értéke, mind pedig a populáció átlagos fitnesz-értéke a kezdeti rohamos javulás után beállt. A programban lehetőség van a genetikus algoritmussal történő optimalizálás leállítására a leállít gomb megnyomásával. Ilyenkor a program megerősítést kér a felhasználótól az optimalizálás megszakítására. Az igen elfogadása után az információs ablakba kiíródnak az addig előállított legjobb egyed adatai. A nem gombon kattintva a közelítés tovább folytatódik a kívánt iterációig, vagy egy újabb leállításig. ÉRZÉKENYSÉGVIZSGÁLATOK A tanulmány készítőjének korábbi vizsgálatai során [Oláh 2005], amikor is az egyes termelésütemezési feladatokat megoldó módszerek hatékonyságát hasonlította össze, a genetikus 7

holtidő algoritmus paraméterei alapbeállításon szerepeltek a futtatások alatt. Már akkor is felvetődött a kérdés, vajon hogyan módosul a GA hatékonysága az egyes beállított értékeinek megváltoztatása által. Ezen dolgozat ennek megválaszolását tűzte ki célul. A kiválasztási stratégiák vizsgálata az iteráció-szám függvényében Ahogy az egy-egy futtatás alatt a program által kirajzolva is látható az iterációk növekedésével a legjobb egyed monoton csökkenő értékeket vesz fel, tehát fejlődik. Természetesen egyazon (esetünkben 20 gépes, 25 termékes) permutáció flow-shop termelésütemezési feladatra többször elvégezve a vizsgálatot hasonló görbét kell kapnunk. Az 5. ábrán feltüntetett iteráció-számok mindegyikére 30-szor lefuttatott genetikus algoritmus által szolgáltatott célfüggvény (jelen esetben holtidő) értékek átlagai a populáció méretének (150) változatlanul hagyása mellett 4%-os klónozást, 16%-os mutációt és 80%-os keresztezést használva a három különböző szelekciós operátor esetén a következőképpen alakultak. A grafikon alsó görbéje már egy másik publikációban [Oláh 2010] is bemutatásra került, és már akkor felmerült, vajon hogyan módosulnak a kapott eredmények a különböző kiválasztási stratégiák alkalmazásával. Ezen az ábrán a program által kezelt mindhárom kiválasztási szisztémára (best, random, rulett) lefuttatott eredmények kerültek ábrázolásra, ezzel is szemléltetve, hogyan változnak a holtidő-értékek, ha nemcsak a legjobb egyedeket választjuk ki szülőknek, hanem a rulett-kerék szelekciót, vagy a random kiválasztási stratégiát alkalmazzuk éppen. 4550 4450 4350 4250 random 4150 4050 best rulett 3950 0 100 200 300 400 500 600 700 800 900 1000 iterációszám 5. ábra. Holtidő-értékek az iteráció-szám függvényében különböző kiválasztási stratégiák esetén Az ábrán látható koordináta rendszer vízszintes tengelyén az iterációk száma (0-1000-ig) van feltüntetve, míg a függőleges tengelyen a gépi holtidő értékek szerepelnek. A görbék hiperbolikus jellege jól kivehető, ami abból adódik, hogy a kezdeti lépések során rohamos javulás figyelhető meg (különösen igaz ez a best szelekció esetére), majd a generációk számának növekedésével a legjobb individuum átlagos fitnesz-értéke egyre jobban megközelíti az optimumot és ebből kifolyólag már egyre lassabb a javulás mértéke. Egyértelműen megállapítható, hogy a véletlen kiválasztás adja a leggyengébb eredményeket ahogy az várható is volt, míg a rulett-kerék szelekció közel 1%-kal mindig jobb megoldásokat szolgáltat ugyanannyi iterációt követően. 8

holtidő Az is kijelenthető, hogy a best kiválasztódás eredményezi a legjobb megoldásokat a leggyorsabban. A legjobb egyedek reprodukciója által 100 iteráció után már átlagosan 9,2% a javulás az induló iteráció utáni eredményekhez képest, míg ugyanezen érték alig (mindössze 12,25%-ra) emelkedett a következő 900 lépés során. A rulett-kerék kiválasztási mechanizmus alkalmazásával a GA által adott megoldások átlaga, több mint 5,5%-ot csökkent a 100. populáció után a kezdeti lépésekhez képest, míg a random szelekció esetén alig öt százalék ugyanezen érték. Ugyanakkor ezer iteráció után már mindkét esetben 10% körüli javulásokat kapunk. Valószínű, hogy kellő számú lépés után a két gyengébb kiválasztás is hasonló eredményeket produkálna, mint a best, csak azoknak az időbeni lefolyása sokkal tovább tartana, amit nem biztos, hogy egy optimalizálás során ki tudunk várni. A populációméretre vonatkozó vizsgálatok Felmerül azonban a kérdés, vajon mi a helyzet, ha nem az iterációk számát, hanem a populáció méretét változtatjuk. Akkor is ez a tendencia figyelhető meg a célfüggvény értékének kirajzoltatásakor? Következő vizsgálat ennek a kérdésnek a megválaszolására szolgál. Ugyanarra a 25 termékes feladatra elvégezve a vizsgálatot 30 futtatás utáni holtidő értékek átlagai a populáció méretének függvényében az iteráció-szám (150) változatlanul hagyása mellett a korábbi beállításokat megtartva, csak a legjobb kiválasztási stratégiát használva hasonló jellegű görbét adtak. A 6. ábra vízszintes tengelyén az alkalmazott populáció mérete (5-1500-ig), míg a függőlegesen továbbra is a gépi holtidő-érték van feltüntetve. 4325 4275 4225 4175 4125 4075 4025 3975 0 250 500 750 1000 1250 1500 populáció-méret 6. ábra. A genetikus algoritmus által szolgáltatott holtidő-értékek a populációméret függvényében A görbe előzőhöz hasonló hiperbolikus jellege a vízszintes tengely arányos skálázásának következtében most is szépen megmutatkozik. Jól látszik, hogy a generációk számának növekedésével ez esetben is egyre lassabb a csökkenés mértéke (a 100 egyedes populáció alkalmazása közel 4,3%-ot javít az 5 egyedszámú halmaz eredményeihez képes, míg az 1000- es már 7,4%-ot). Tehát igazolódni látszik az az elmélet is, hogy minél nagyobb populációt alkalmazunk azonos iteráció-szám mellett, annál jobb célfüggvény érték érhető el. Persze gyorsan meg kell jegyezni, hogy ennek komoly ára van, hiszen minél nagyobb a populáció mérete, annál lassabb is lesz a program futása. Tehát nem biztos, hogy ugyanakkora futásidő (műveletszám) mellett egy kisebb populáció és ezzel arányosan nagyobb lépésszám alkalma- 9

zásával nem érnénk el jobb eredményt. A következő vizsgálódás épp ennek a kiderítésére hivatott. Azonos futásidőre vonatkozó vizsgálatok a feladat méretének függvényében Továbbra is ugyanazon feladatra a GA által 30 futtatás után szolgáltatott holtidő-értékek átlagai a populáció méretének függvényében ugyanakkora futásidő alatt a 7. ábrán látható módon alakulnak. 4350 4300 4250 4200 4150 4100 4050 1500 1000 750 500 375 250 150 100 75 50 7. ábra. Holtidő-értékek a populációméret függvényében azonos futásidő és 25 termék esetén Az azonos műveletszám úgy érhető el, hogy az alkalmazott populáció mérete és az iteráció (lépésszám) szorzata állandó (esetünkben 15.000), azaz ugyanannyi individuum lesz a teljes vizsgálatba bevonva. Tehát míg 1500 terméksorrendet tartalmazó populáció esetén mindössze 10 iteráció után, 250-es populációméretnél 60 lépés után, addig 50 egyednél 300 generáció után állítjuk le a program futását. A diagramban a koordináta rendszer vízszintes tengelyén az alkalmazott populáció mérete csökkenő sorrendben (1500-50-ig) adott, míg a függőleges tengelyen továbbra is a gépi holtidő értékek vannak nyilvántartva. Nagyon jól látszik az ábrán, igazolván a szerző sejtését, hogy azonos futásidő alatt nem feltétlen a nagy populáció-méret jelenti a jó megoldást. Sőt a populáció méretének 150-ig történő csökkenésével folyamatosan javulnak a holtidő-értékek, és ezután is csak csekély mértékű növekedés következik be (az 50 egyedet tartalmazó populáció mindössze 0,56%-kal eredményez rosszabb megoldásokat a 150-eshez képest). A minimum ugyan 150 populációnál (és ezáltal 100 iteráció után) adódik, de ez a vizsgált értékek nem folytonos mivoltát figyelembevéve nem feltétlenül ott is van, hiszen az optimum 100 és 250 között bárhol lehet. Erre további vizsgálatok szükségesek, amit a későbbiekben el is végez a szerző, de ez a dolgozat inkább csak a sejtés igazolására szolgál. Az azonban már most is kijelenthető, hogy inkább a kisebb nagyságú populációkat érdemes preferálni az optimumközeli megoldások hatékony megtalálása végett. Azt, hogy más méretű feladatok esetén mekkora populációnagyságot érdemes alkalmazni, további vizsgálatok szükségesek. A következőkben más termékszámú (kisebb és nagyobb) feladatokra is lefuttatjuk a programot, hogy azok során hol ígérkezik a legkisebb célfüggvényérték. Kevesebb termék ütemezése esetén kisebb, míg nagyobb feladatoknál nagyobb populációméret várható optimumnak. 10

Lássuk először egy továbbra is 20 gépes, de már csak 10 termékes permutáció flow-shop termelésütemezési feladatra a genetikus algoritmus által 30 futtatás után szolgáltatott holtidőértékek átlagait a populáció nagyságának függvényében 15.000 egyed kiértékelése esetén az eddig is alkalmazott beállításokat használva (8. ábra). 3530 3525 3520 3515 3510 3505 3500 3495 3490 3485 3480 1500 1000 750 500 375 250 150 100 75 50 8. ábra. Holtidő-értékek a populációméret függvényében azonos futásidő és 10 termék esetén A grafikonon szépen kirajzolódik az optimum helye, ahol ugyanakkora műveletszám mellett a legjobb eredményt szolgáltatja a program. Meglepetésünkre viszont nem a kisebb populációméretek irányába tolódott el a célfüggvény-érték minimuma ahogy azt várni lehetett volna, hanem épp az ellenkező irányba. Ahogy az az ábráról is leolvasható 10 termékes feladatoknál a 250 egyedszámú populáció nagyság a legkedvezőbb, de gyakorlatilag 150 és 375 közötti egyedszám esetén is viszonylag elfogadható holtidő értékeket kapunk, ugyanakkor az előző példával ellentétben az 50 individuumot tartalmazó halmaz esetén már jelentős eltérés mutatkozik. A meglepő eredmények birtokában kíváncsian várjuk, hogyan alakul az optimum, ha nem csökkentjük, hanem növeljük az ütemezni kívánt termékek számát és ezzel a keresési teret egyaránt. Most egy továbbra is 20 gépes, de már 50 termékes termelésütemezési feladatra vizsgáljuk az ábrán feltüntetett populációméretek mindegyikére 30-szor lefuttatott GA által szolgáltatott holtidő-értékek átlagait ugyanakkora futásidő alatt és az eddigiekkel megegyező feltételek mellett. Ezen a diagramon is egyértelműen megtalálható a keresett optimum. Az előző feladat kapcsán már nem váratlan, hogy most a kisebb populációméretek irányába tolódott el a célfüggvény-érték minimuma. A legkedvezőbb holtidő-értékek a 100 fős populáció esetén adódtak, amelyek pontosan 10,6%-kal jobbak, mint az 1500 egyedszám eredménye. 11

5600 5500 5400 5300 5200 5100 5000 4900 1500 1000 750 500 375 250 150 100 75 50 9. ábra. Holtidő-értékek a populációméret függvényében azonos futásidő és 50 termék esetén Nézzünk következőnek egy még nagyobb, egészen pontosan 75 termékes feladatot, amelynél a genetikus algoritmus által szolgáltatott holtidő-értékek átlagai a populáció méretének függvényében a következőképpen alakultak. 6200 6050 5900 5750 5600 5450 5300 1500 1000 750 500 375 250 150 100 75 50 10. ábra. Holtidők a populációméret függvényében azonos futásidő és 75 termék esetén Az alábbi diagramon is az eddigiekhez hasonlóan fellelhető a keresett minimum érték, ami most még inkább a kisebb populációnagyságok irányába tolódott el. A legkedvezőbb holtidő átlagértékek a 75 individuumot számláló populáció esetén adódtak (bár ehhez nagyon közeli értékeket szolgáltatott az algoritmus a 100 és az 50 egyedszámú populációknál is), amely eredmények több mint 12%-kal jobbak, mint az 1500-as populáció esetén. Végül egy továbbra is 20 gépes, de már 99 termékes feladatot teszünk vizsgálódásunk tárgyává, ahol a GA által adott gépi holtidő átlagok a 11. ábrán megjelenítettek szerint alakultak. A grafikont szemrevételezve megállapítható, hogy a korábbiaktól eltérően most nincs növekvő szakasza a görbének, az végig monoton csökkenő, így a legkisebb célfüggvény-érték a példánál az általunk vizsgált legkisebb (50) populációméretnél adódott, amely közel 13,8%- kal jobb, mint az 1500-as populációk átlaga. Érdemes lenne elvégezni jelen 99 termékből álló ütemezési feladat vizsgálatát egy 50-nél kevesebb individuumot tartalmazó halmazra is, de sajnos a példák során használt klónozás-keresztezés-mutáció arányok ezt most nem teszik lehetővé. 12

7200 7000 6800 6600 6400 6200 6000 1500 1000 750 500 375 250 150 100 75 50 11. ábra. Holtidők a populációméret függvényében azonos futásidő és 99 termék esetén Az előző diagramokon is látható a genetikus algoritmus által a best kiválasztási operátort alkalmazva, 4%-os klónozást, 16%-os mutációt és 80%-os keresztezést használva azonos műveletszámot feltételezve (az iteráció-szám és populációméret függvényében) különböző méretű feladatok (más-más termékszám) esetén szolgáltatott holtidő-értékeket táblázatos formában az 1. táblázat tartalmazza. best 4-16-80 job10 job25 job50 job75 job99 iteráció populáció holtidő holtidő holtidő holtidő holtidő 10 1500 3527 4319 5517 6134 7023 15 1000 3510 4282 5440 6086 6988 20 750 3502 4255 5373 5994 6893 30 500 3497 4215 5286 5862 6707 40 375 3492 4188 5227 5779 6629 60 250 3488 4154 5144 5619 6450 100 150 3490 4109 5024 5501 6362 150 100 3496 4122 4932 5411 6265 200 75 3500 4126 5004 5391 6138 300 50 3505 4132 5083 5413 6056 1. táblázat Holtidő-értékek a populációméret, az iteráció- és a termékszám függvényében azonos futásidő alatt Egyetlen diagramban (a vízszintes és a függőleges tengelyen továbbra is a populáció nagysága, valamint a holtidők, míg a harmadik dimenzióban az adott feladat termékszámai szerepelnek) ábrázolva az eddigi eredményeket (12. ábra), jól látható piros vonallal be is jelöltük, hogy a feladat méreteinek növekedésével nem az általunk várt növekedés, hanem éppen ellenkezőleg, csökkenés mutatkozik az optimális populációnagyságra, ugyanakkora futásidőt feltételezve. 13

12. ábra. Holtidő-értékek a populációméret és termékszám függvényében azonos műveletszám mellett A genetikus operátorok arányára vonatkozó vizsgálatok Felvetődik egy másik kérdés is, vajon hogyan alakulnak a görbék, ha a fixnek vett 4%-os klónozást, 16%-os mutációt és 80%-os keresztezést módosítjuk. Következő vizsgálatunk a rekombinációs (keresztezés) műveletet teljes egészében kihagyja, és csak a kiválasztott legjobb individuumok klónozásával valamint mutációjával állítja elő a következő populációt. Miután már az előző fejezetben meghatároztuk az azonos egyedszámú vizsgálatnál legjobban alkalmazható populáció-méret és iteráció-szám viszonyokat, ezért most csak azokat használjuk. Ugyanazon 20 gépes, 25 termékes ütemezési feladatra a GA által 30 futtatás után szolgáltatott holtidő-értékek átlagai 100 egyedszámú populációt és a legjobb kiválasztási szisztémát tekintve, a klónozás és a mutáció arányának függvényében 150 iteráció után a következőképpen alakultak (13. ábra). A vízszintes tengelyen az alkalmazott klónozás aránya, míg a függőlegesen továbbra is a holtidők szerepelnek. Az ábrából jól kivehető, hogy a másolás arányának 30%-ig történő növelésével folyamatosan javulnak a holtidő-értékek, majd egy kezdeti lassú emelkedés után (50-60% fölött) viszont rohamos mértékű romlás következik be (a 95%-os klónozás már közel 8%-kal eredményez rosszabb megoldásokat az optimumhoz képest). 14

4400 4300 4200 4100 4000 3900 3800 1 2 4 5 10 15 20 25 30 33 40 50 60 75 80 85 90 95 13. ábra. A GA által szolgáltatott holtidő-értékek a klónozás-mutáció arányának függvényében Megállapítható, hogy a genetikus algoritmus a klónozás operátor 10 és 60% közötti értéke esetén eredményezte a legkisebb holtidő értékeket keresztezést nem használva. A minimumot ugyan a 30%-os másolás (és ezáltal 70%-os mutáció) jelentette, de ez az általunk vizsgált arányok nem folytonos mivoltát figyelembevéve nem feltétlenül ott is van, hiszen az optimum 25 és 40% között bárhol lehet. Erre további vizsgálatok szükségesek, amit a későbbiekben a szerző el is végez, de ez a dolgozat inkább csak a jelleggörbe meghatározására szolgál. Kijelenthető azonban, hogy a kisebb arányú klónozást érdemes előnyben részesíteni az optimumközeli megoldások hatékony megtalálása végett. Természetesen érdemes elvégezni az alábbi vizsgálatokat a keresztező operátor és a klónozás viszonyaira is, hogy azok esetén hol ígérkezik a legkisebb célfüggvény-érték, tehát amikor csak a kiválasztott legjobb egyedek klónozása és keresztezése révén állítjuk elő a soronkövetkező populációt. Az eddig is vizsgált feladatra a program által szolgáltatott holtidő-értékek átlagai 100 individuumot tartalmazó populációt és a best kiválasztási stratégiát tekintve, a klónozás és a keresztezés arányának függvényében 150 generáció után a következőképp alakultak (14. ábra). 4500 4450 4400 4350 4300 4250 4200 4150 4100 1 2 4 5 10 15 20 25 30 33 40 50 60 67 75 80 85 90 95 96 98 14. ábra. Holtidő-értékek a klónozás-keresztezés arányának függvényében A vízszintes tengelyen továbbra is az alkalmazott klónozás aránya (1-98%-ig), míg a függőleges tengelyen a holtidők szerepelnek. Az ábrán jól kivehető, hogy a másolás arányának 30%-ig történő növelésével folyamatosan csökkennek a holtidő-értékek, majd 85%-ig viszonylagos állandóság tapasztalható, ami után viszont az előző ábrán is már látott roha- 15

mos mértékű romlás következik be (a 98%-os klónozás már közel 6,5%-kal eredményez roszszabb megoldásokat a 85%-hoz képest). Megállapítható, hogy a genetikus algoritmus a klónozás operátor 25 és 85% közötti értéke esetén szolgáltatta a legkisebb célfüggvény-értékeket mutációt nem használva. A minimumot ugyan a 75%-os másolás (és ezáltal 25%-os keresztezés) jelentette, de ez nem feltétlenül pontos, hiszen az optimum 25 és 85% között bárhol lehet. Erre szintén további vizsgálatok szükségesek. Kijelenthető azonban, hogy az előzőekkel ellentétben most nem feltétlen a kisebb arányú klónozást érdemes preferálni az optimum-közeli megoldások hatékony megtalálása végett. Már most meghatározható, hogy a keresztezés és a mutáció arányát inkább az utóbbi javára érdemes növelni. Természetesen még mielőtt bármit is kinyilvánítanánk el kell végezni az alábbi vizsgálatokat a keresztező és a mutáció operátor egymáshoz viszonyított arányaira is egy fix klónozást feltételezve, hogy azok esetén hol ígérkezik a legjobb megoldás. Ugyanazon feladatra 30 futtatás után szolgáltatott holtidő-értékek átlagai a mutáció és a keresztezés arányának függvényében, tíz százalékos klónozást használva a következőképpen alakultak (15. ábra). 4125 4105 4085 4065 4045 4025 1 2 4 5 10 15 20 23 25 30 33 40 50 57 60 65 67 70 75 80 85 86 88 89 15. ábra. Holtidő-értékek a mutáció-keresztezés arányának függvényében 10%-os klónozásnál A vízszintes tengelyen az alkalmazott mutáció aránya (1-89%-ig), míg a függőlegesen a holtidők szerepelnek. A hiányzó 0 érték az előző esetet szemlélteti 10%-os klónozást és 90%- os keresztezést alkalmazva, míg a 90%-os mutáció az azt megelőző vizsgálat eredménye lenne 10%-os klónozásnál keresztezést nem használva. Az ábráról leolvasható, hogy a mutáció arányának 57%-ig történő növelésével folyamatosan javulnak az algoritmus által szolgáltatott célfüggvény-értékek (az 57%-os mutáció használata már négy százalékkal eredményez jobb megoldásokat a mutáció nélküli esethez képest), ezután viszont folyamatos, de csekély mértékű gyengülés következik be. A mutáció operátor 40 és 75% közötti értéke esetén eredményezte a program a legkisebb holtidő értékeket tíz százalékos másolást feltételezve. Nyilvánvalóan meg lehetne vizsgálni a 10%-tól eltérő klónozás esetén is a fenti grafikon alakulását, de az már most is kijelenthető, hogy a mutációt nagyobb arányban érdemes használni a keresztezés rovására az optimum-közeli megoldások gyors meglelése végett, ami egy kicsit természetellenesnek tűnhet. A dolgozat szerzőjének további célja összehasonlítani a program által kezelt négy különböző mutáció operátor, illetve két keresztező operátor egymáshoz viszonyított keresési jóságát a szolgáltatott eredmények függvényében. 16

FELHASZNÁLT IRODALOM [1] BENKŐ T.: Programozzunk Delphi 5 rendszerben, Computerbooks, Budapest, 2000. [2] CANTU M.: Delphi 5 Mesteri szinten, I.-II. kötet, Kiskapu Könyvesbolt, 2000. [3] DAVIS L.: Job Shop Scheduling with Genetic Algorithms. International Conference on Genetic Algorithms and their Applications, Erlbaum, 1985. 136 140. o. [4] GOLDBERG D. E.: Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, 1989. [5] HOLLAND J. H.: Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology Control, and Artificial Intelligence, The University of Michigan Press, 1975. [6] MICHALEWICH Z.: Genetic Algorithms + Data Structures = Evolution Programs, Springer, 1996. [7] OLÁH B.: A flow shop ütemezési probléma optimalizálására szolgáló algoritmusok összehasonlítása. OGÉT 2005 XIII. Nemzetközi Gépész Találkozó, Szatmárnémeti, 2005. 268 272. o. [8] OLÁH B.: Genetikus algoritmus vs. megerősítéses tanulás, Szolnoki Tudományos Közlemények IX. 2005. [9] OLÁH B.: Genetic algorithm vs. Reinforcement learning, Chapter 80 in DAAAM International Scientific Book 2009, Vol. 8, Published by DAAAM International, Vienna, Austria, 2009. 831 844. o. [10] OLÁH B.: Genetikus algoritmus érzékenységvizsgálata, Műszaki Tudomány az Észak-Alföldi Régióban 2010, Nyíregyháza, 2010. 157 162. o. [11] OLÁH B.: Genetikus algoritmus érzékenységvizsgálata a populáció méretének függvényében, ECONOMICA (A Szolnoki Főiskola Tudományos Közleményei), Szolnok, 2010. 4 10. o. [12] OLIVER I. M. SMITH D. J. HOLLAND J. R. C.: A Study of Permutation Crossover Operators on the Traveling Salesman Problem. 2 nd International Conference on Genetic Algorithms, Lawrence Erlbaum Associates, Hillsdale, New Jersey, 1987. 224 230. o. [13] POHLHEIM H.: Evolutionary Algorithms, 2009. http://www.geatbx.com/docu/algindex.html [14] TÓTH I.: Operációkutatás I., Tankönyvkiadó, Budapest, 1990. 17