8. Előadás
Speciális optimalizációs eljárások
Genetikus algoritmusok
OPTIMALIZÁLÁSI ELJÁRÁSOK Gradiens alapú módszerek Véletlent használó módszerek Kimerítő keresésen alapuló módszerek Direkt módszerek Indirekt módszerek Tabukeresés Szimulált lehűtés Evolúciós algoritmusok Dinamikus programozás Evolúciós stratégiák Genetikus algoritmus párhuzamos soros
Gradiens alapú módszerek 1. direkt indirekt Fajtái Lokális vizsgálódás Jellemzők Feltételezik a deriváltfüggvény létezését
Gradiens alapú módszerek 2. Indirekt módszerek A lokális szélsőértéket a gradiensfüggvény nullává tételével keresik meg. A differenciáláson alapuló egydimenziós szélsőérték-keresés többdimenziós általánosítása
Gradiens alapú módszerek 3. Direkt módszerek A lokális minimumot a lokális gradiens irányába való elmozdulással igyekeznek elérni a felületen. Hegymászás (hill-climbing) fogalma: a lokális szélsőérték eléréséhez a legmeredekebb emelkedőn kell felmászni, vagy a legmeredekebb lejtőn kell leereszkedni.
Robusztusság Mindkét módszer csak lokálisan vizsgálódik, az aktuális (kiindulási) pont környezetében keresi a legjobb szélsőértéket. Egy kisebb abszolút értékű szélsőérték közeléből indítva az eljárást gyakran nem találja meg a nagyobb abszolút értékű szélsőértéket. Sőt, ha már megtalálta az eljárás a kisebb abszolút értékű szélsőértéket, akkor véletlenszerű újraindítással vagy más trükkel lehet csak rávenni a nagyobb abszolút értékű szélsőérték keresésére.
Robusztusság A gradiens alapú módszerek feltételezik a deriváltfüggvény létezését. Számos gyakorlati problématér nem biztosít elegendő simaságot az optimalizálandó függvénynek, ebből következően nem létezik deriváltfüggvény sem. A valós életben nem mindenütt folytonos, sok lokális szélsőértékkel rendelkező függvényekkel és zajos keresési terekkel kell dolgozni.
Jellemzők Kimerítő keresésen alapuló módszerek 1. A problématér minden pontját megvizsgálja Korlátok A problématér komplexitása Idő Előnyök Megtalálja a globális optimumot
Kimerítő keresésen alapuló módszerek 2. Egy véges vagy diszkretizált végtelen problématérben az algoritmus egyesével végignézi a tér összes pontját. A problématér pontjait legtöbbször leírhatjuk egy fával. Ezután teljes bejárást végezve, egyszerű módszerrel megvizsgálható a fában található valamennyi pont.
Kimerítő keresésen alapuló módszerek 3. Visszalépéses eljárás A gyökértől indulva az elágazásokban egy előre rögzített sorrendben haladunk rendre a lehetséges irányok egyikében. Először minden elágazásban a sorrend szerinti első lehetséges irányba haladunk, amíg egy levélhez nem érünk. Ekkor megvizsgáljuk, hogy a levél jelentheti-e az optimumot. Ezután az ehhez a levélhez vezető út utolsó elágazásig visszalépünk. Nagy problématérnél nehezen használható.
Kimerítő keresésen alapuló módszerek 4. Elágazás és korlátozás Amennyiben rendelkezésre állnak olyan feltételek vagy megkötések, amelyek segítségével egy adott csúcsot megvizsgálva könnyen eldönthető, hogy az optimum biztosan nem az adott csúcsból kiinduló egyik részfában található, akkor levágjuk ezt a részfát, vagyis az ebben található pontokat nem kell megvizsgálnunk.
Kimerítő keresésen alapuló módszerek 5. Bár a kimerítő keresési módszerek biztosan megtalálják a globális optimumot, valamint a pontok sorravétele is hasonlít az emberi keresés technikájához, mégis azt kell mondanunk, hogy ezek az eljárások sem bizonyulnak elegendően robosztusnak, ugyanis hatékonyságuknak korlátot szab a problématér komplexitása.
Véletlent használó módszerek 1. Szimulált lehűtés 2. Tabukeresés 3. Genetikus algoritmus
Véletlenszerű bejárást végző módszerek véletlent használó technikák A véletlenszerű bejárást végző módszerek lényegében az enumerációs módszerek használatát jelenti, csak az ágak kiválasztása történik véletlenszerűen. Ez a módszer nem hoz jelentős sebesség növekedést és merőben eltér a véletlent használó technikáktól.
Véletlent használó módszerek Meg kell határozni, hogy mit nevezünk jónak Ha globális optimumot kell keresnünk, akkor nem bizonyulnak jobbnak a kimerítő keresésen alapuló aljárásoknál A valóságban a megoldásoptimum mellett a költségoptimumot is figyelembe kell venni, ezért van létjogosultságuk
A kompromisszum eredménye 1. Megelégszünk egy közel optimális eredménnyel 2. Erősen korlátos időn belül eredményt akarunk/kell szolgáltatni
Szimulált lehűtés Egyetlen megoldást szolgáltat A szilárd anyagok rácsszerkezetének hőkezelés során történő kialakulását másolja. Egy megoldásjelöltet módosít, mégpedig a hőmérsékleti folyamatok mintájára mindig az alacsonyabb energiájú hely felé haladva.
Tabukeresés A problématér egy véletlen pontjából indul ki Megvizsgálja a pont szomszédjait, s a legjobbra tovább lép A körbe-körbe haladás elkerülése érdekében van egy tiltólista (tabulista) Egy előre megadott lépésszám, vagy jóság esetén befejezzük az eljárást Paraméterei: tabulista hossza, küszöb nagysága, pont szomszédjainak listája
Genetikus algoritmus Genetikus algoritmusok számítógépes modellezésével John Holland kezdett foglalkozni 1975-ben. Ezeket az algoritmusokat a Darwin-féle biológiai evolúció elve alapján vezetik le, s az algoritmus, egy lehetséges, többnyire véletlenszerűen kiválasztott állapotból (populációból) indul ki. Ebből a kezdeti generációból különböző műveletek során új generációk keletkeznek, és ezeket a generáló műveleteket mindaddig folytatják, amíg megtalálják a feladat legjobbnak vélt megoldását. A probléma jellemzői általában adott hosszúságú szavakkal (sztring) vannak kódolva, amelyeket kromoszómáknak neveznek. A genetikus algoritmus előállít egy új populációt a genetikai szaporodáshoz hasonlóan. Egy vagy két egyedet kiválaszt a meglevőkből, és a genetikai műveletek segítségével generál újabb lehetséges egyedeket, amelyeket utódoknak nevezünk. Alapvető genetikai műveletek a szelekció, rekombináció és a mutáció, amelyekre a genetikus algoritmus is épül.
Alapvető genetikai műveletek A legfontosabb genetikai műveletek: szelekció rekombináció mutáció.
Szelekció A szelekció folyamán az algoritmus kiválasztja a szülőket, amelyekből a genetikus műveletek segítségével létrejönnek az utódok. Az egyedek az aktuális populációban a fitneszértékük alapján meghatározott eséllyel kerülnek kiválasztódásra. A fitneszérték tehát az egyedek alkalmasságát mutatja a célfüggvény alapján.
Rulettmódszer A legáltalánosabban elterjedt kiválasztási algoritmus az úgynevezett rulett-módszer. Úgy képzelhetjük el ezt a módszert, mint egy szerencsekereket, amely n számú részre van felosztva. A szeletek szélessége egyenesen arányos a hozzátartozó egyed szelekciós valószínűségével. A kereket n-szer megforgatjuk és kiválasztjuk a szülőket a következő generációhoz. Természetesen egy egyednek annál nagyobb az esélye a többszöri kiválasztásra, minél nagyobb a fitneszértéke. Fennáll annak a veszélye, hogy az összes kiválasztott egyed azonos lesz. Ennél az eljárásnál aránylag magas a tervezett és a tényleges kiválasztás közötti eltérés, mégis ez a legelterjedtebb eljárás.
Szelekció (Sztohasztikus mintavétel) D A egyed várható érték másolások száma A 0,1 0 B B C 1,0 0,4 1 1 C D 2,5 2
Rekombináció A rekombináció az utódok létrehozása során kicseréli a szülők egyes kromoszómarészeit hasonlóan a természetbeni genetikai rekombinációhoz. Például: 1. kromoszóma (1 2 3 4 5 6) 2. kromoszóma (6 5 4 3 2 1) A rekombináció után létrejött új kromoszómák: (1 2 3 4 5 6) (1 2 3 3 2 1) (6 5 4 3 2 1) (6 5 4 4 5 6)
Egypontos rekombináció E típus alapján először is kiválasztunk egy rekombinációs pontot 1 és L-1 között (L a kromoszóma hossza), így meghatározzuk azt a pontot - két gén határvonalát -, amelytől az egyik szülő esetén a jobbra eső gének az első, a balra eső gének a második utódba kerülnek, a másik szülő esetén pedig éppen fordítva történik a gének elosztása.
N-pontos rekombináció 1. 2. 3. 4. 5. 1. szülő 1 1 1 1 1 1 1 1 1 2. szülő 0 0 0 0 0 0 0 0 0 1. utód 1 1 0 0 0 1 0 0 1 2. utód 0 0 1 1 1 0 1 1 0
Uniform rekombináció Az uniform rekombináció folyamán minden egyes gén esetén vizsgáljuk, hogy az kicserélésre kerüljön-e vagy sem. A döntés a következőképpen történik: adott egy előre meghatározott érték p ux, és az egyes génekre jellemző U z (ahol z=1,2,,l) érték. Ha p ux > U z, akkor a gén kicserélésre kerül, ellenkező esetben nem.
Uniform rekombináció folyamata 1. szülő 0 0 1 1 1 1 2. szülő 1 1 1 1 0 0 csere igen igen nem igen nem igen 1. utód 1 1 1 1 1 0 2. utód 0 0 1 1 0 1
Génkevert rekombináció A génkevert rekombináció az egy-, illetve n-pontos rekombináció továbbfejlesztett változata. Ebben az esetben az említett rekombinációs folyamatok további két lépéssel (keverés, visszakeverés) bővülnek. Első lépésként a megszámozott géneket összekeverjük, majd következik a már megismert egy-, illetve n-pontos rekombináció. Az utolsó lépés a gének sorrendjének visszaállítása.
Génkevert rekombináció folyamata Sorszám: Keverés Sorszám: Rekombináció Sorszám: Visszakeverés Sorszám: 1 1 1 1 0 1. 2. 3. 4. 5. 0 0 0 1 1 1 1 0 1 1 4. 2. 5. 3. 1. 1 0 1 0 0 1 1 1 0 0 4. 2. 5. 3. 1. 1 0 0 1 1 0 1 0 1 1 1. 2. 3. 4. 5. 1 0 1 1 0 szülők utódok
Diagonális rekombináció A diagonális rekombináció szintén az n-pontos rekombináció továbbfejlesztett változata. Azonban az eltérés most más szempontból történik a korábban megismert eljárásokhoz képest: Ebben az esetben a rekombináció csak több mint, két szülő esetében működhet. A diagonális módszer - sajátossága miatt - i darab szülőből i mennyiségű utódot hoz létre. Ebből a szempontból ez a variáció nem a biológiai analógiát követi, mivel a természetben kevés példa található az ilyen szaporodásra. A folyamat első lépése, hogy az i számú szülői és a még üres utód kromoszómán kiválasztunk i-1 számú töréspontot. Ezután az alábbiak szerint feltöltjük az utód kromoszómákat: az első utód az első üres szakaszban az első szülői kromoszómaszakaszt örökli, a másodikban a második szülő második szakaszát, a harmadikban pedig a harmadik szülő harmadik szakaszát, majd a folyamat a leírtaknak megfelelően folytatódik a második utóddal.
Diagonális rekombináció folyamata 1. szülő 1 1 1 1 1 1 1 2. szülő 1 0 1 0 1 0 0 3. szülő 0 1 0 1 0 1 1 1. utód 1 1 1 0 0 1 1 2. utód 1 0 0 1 1 1 1 3. utód 0 1 1 1 1 0 0
Mutáció A mutáció folyamata alatt véletlenszerűen megváltozik a kromoszómák néhány része: a mutáció előtti kromoszóma: (1 2 3 4 5 6) a mutáció utáni kromoszóma: (1 2 3 4 7 6)
Genetikai műveletek paraméterei Stratégiaválasztás: a kiválasztott szelekciós, illetve rekombinációs stratégia tartalmazza, hogyan generálják a szülők az utódokat, és hogy választják ki a szülőket a következő generációs lépésre. Rekombinációk száma: a rekombinációk számát lehet kiválasztani, vagyis hány ilyen lépés legyen az evolúció alatt. Ez a szám lényegében megadja a genetikus algoritmus generációinak a számát. Mutációs paraméterek: a mutáció esélyét, illetve a mutációkor bekövetkező elváltozás mértékét szabályozzák. > Ezek a tényezők speciálisan az optimalizálási feladattól függnek, ezért általánosságban nem, csak a probléma pontos ismerete, vagy elemzése után határozhatók meg.
Jósági vagy fitneszfüggvény Egy a lehetséges kromoszómák halmazán értelmezett, valós értékkészletű leképzés. A függvényértékek az egyes kromoszómák által reprezentált megoldások jóságát tükrözik.
Reprezentáció A genetikus algoritmus egyik legfontosabb tényezője a probléma szempontjából lényeges tulajdonságok kiválasztása és ezek kódolása.
Kódolás Decimál Bináris kód D Gray-kód D 0 000 --- 000 --- 1 001 1 001 1 2 010 2 011 1 3 011 1 010 1 4 100 3 110 1
Universität Miskolc, Fakultät für Wirtschaftswissenschaften, Istitut für Wirtschaftstheorie Kiindulási időszak (t:=0) A kiindulási populáció meghatározása P(0) A kiindulási populáció értékelése A kívánt jósági szint elérve? ige n ne m t:=t+1 Szelekció Rekombináció Mutáció Az új populáció értékelése A folyamat vége
Egyszerű genetikus algoritmus modell Egy egyszerű példa a fitneszfüggvényre: 30/x. A genotípusok, legyenek például 1010 és 0101, megjelenési formájuk (fenotípusuk) 10 és 5, a fitneszértékek pedig a fitneszfüggvény alapján 30/10=3 és 30/5=6. Ezek az értékek a reprodukció esélyét. a két említett szrtingből (1010, 0101) az első számjegy után történt szakadás eredményeképpen kialakulhat a következő sztringpár: 1101 és 0010. A rekombináció mellett természetesen lehetőség van mutációra is. Ennek során a sztring egy véletlenszerűen kiválasztott helyén megváltozik az adott gén, vagy egy elemének az értéke. Példánkban elképzelhető ez a harmadik helyen: 1111. A folyamat lefutása után meghatározásra kerülnek az új generáció fitneszértékei. A mi példánkban 1111 2 és 0010 15. A legmagasabb egyedi fitneszérték így 6-ról 15-re, a populáció összfitneszértéke 9-ről 17- re emelkedett.