You are on page 1of 55

Heurisztikák, evolúciós

algoritmusok
Tüű-Szabó Boldizsár
Beadandó feladat leírása
• Feladat: optimalizálási feladat megoldása evolúciós vagy memetikus
algoritmussal
• Határidő: 2020.06.07.
• Lehet folytonos és diszkrét optimalizálási probléma is, néhány
példa:
– Függvényoptimalizálás: Rosenbrock-függvény, Ackley-függvény, Wood-
függvény stb.
– útvonaloptimalizálás: Utazó Ügynök Probléma vagy annak valamely
változata stb.
– Ládapakolási feladatok
– Gráfszínezési feladatok
– Sudoku, 8-puzzle problem, N-királynő probléma stb.
Kérem, hogy a feladat specifikációját előzetesen egyeztessük email-ben
tuu.szabo.boldizsar@sze.hu
Beadandó feladat leírása
• Az alkalmazott algoritmus lehet egy szakirodalomban
publikált módszer választott feladathoz igazított verziója
• Saját algoritmusokat is ki lehet találni
• Programozási nyelvre nincs megkötés
• A feladatról készített dokumentációnak tartalmaznia kell:
- feladat leírását
- az alkalmazott algoritmus részletes bemutatását
pszeudo-kóddal
- futtatási eredmények bemutatását
- az algoritmus kódját
Algoritmusok csoportosítása

• Pontos megoldást adó: általában nem hatékony, lassú,


csak kis problémaméretre használható

Approximációs algoritmusok: approximációs
hányadossal jellemezzük
• Heurisztikák: lokális keresési algoritmusok, evolúciós
algoritmusok: hatékonyak, rövid időn belül közel-
optimális megoldások
Lokális keresési algoritmusok

• lokális keresési algoritmusok (local search):


• csak egy aktuális állapotot (current state) vesznek
figyelembe (a többszörös utak helyett) és általában csak
ennek az állapotnak a szomszédjaira lépnek tovább
• A keresés által követett utat tipikusan nem is tárolják el
Állapotfelszín
• Célfüggvény esetén: cél a globális maximum
megtalálása
• Költségfüggvény esetén: cél a globális minimum
megtalálása
Lokális keresés
Lokális keresési módszerek
Iterált Lokális Keresés (Iterated Local Search):
• Iteratív módon alkalmaznak valamilyen lokális
keresést
• Minden iterációban végrehajtanak egy
perturbációt a lokális keresés előtt, amely
változtatást hajt végre a megoldáson. Ezen a
perturbált megoldáson végzik el ismét a
lokális keresést.
Lokális keresési módszerek
Iterált Lokális Keresés (Iterated Local Search):
Lokális keresési módszerek
Változó Szomszédsági Keresési (Variable
Neighborhood Search) módszerek:
- egyszerű, kevés paramétert tartalmazó
kétfázisú heurisztikák: perturbációs fázis +
lokális keresés
- Adaptív perturbáció alkalmazása: ha a lokális
kereséssel előálló megoldás nem jobb mint az
eredeti, akkor megnöveljük a perturbáció
nagyságát
Lokális keresési módszerek
Változó Szomszédsági Keresési (Variable
Neighborhood Search) módszerek:
Lokális keresési módszerek
GRASP (Greedy Randomized Adaptive Search
Procedures) módszerek:
- kétfázisú heurisztikák: az első fázisban egy
érvényes megoldást hoznak létre mohó
algoritmussal a problémára, majd a második
fázisban az első fázisban létrehozott megoldást
javítják lokális kereséssel
Lokális keresési módszerek
GRASP (Greedy Randomized Adaptive Search
Procedures) módszerek:
Hegymászó algoritmus (hill-
climbing)
•  A keresés egyszerűen csak egy ciklus, ami mindig
javuló értékek felé – azaz felfelé – lép
•  Minden lépésben az aktuális csomópontot a legjobb
szomszédjával cseréli le
• Az algoritmus megáll, amikor felér a csúcsra, ahol
nincsenek már magasabb értékű szomszédjai
• nem tart nyilván keresési fát, ezért a csomópontot leíró
adatszerkezetnek csak az állapotot és a célfüggvény
értékét kell nyilvántartania
• nem néz előre az aktuális állapotot közvetlenül követő
szomszédokon túl
Példa: 8-királynő probléma
• A h heurisztikus
függvény a közvetlenül
vagy közvetett módon
egymást támadó
királynőpárok száma.
• Következő állapot: egy
királynőt ugyanabban
az oszlopban egy másik
mezőre mozgatunk
minden állapotnak 56
követője van
Hegymászó algoritmus
• hegymászás gyakran megakad az alábbi problémák miatt:
• Lokális maximumok: egy csúcs, amely minden
szomszédjánál magasabb, de a globális maximumnál
alacsonyabb
• Hegygerincek (ridges): egy olyan lokális maximum
sorozatot eredményez, ahol egy mohó algoritmusnak
igen nehéz navigálnia
maximumok nincsenek közvetlen módon egymással
összekapcsolva
Minden egyes lokális maximumból az összes lehetséges
cselekvés a lejtőn lefelé mutat.
Hegymászó algoritmus


Fennsík (plateaux):  fennsík az állapottérnek egy
olyan területe, ahol a kiértékelő függvény gyakorlatilag
lapos.
Lehet ez egy lapos lokális maximum, amelyből nincs
tovább felfelé, de lehet egy váll (shoulder), ahonnan
még lehetséges az előrehaladás
Hegygerinc
Hegymászó algoritmus
sztochasztikus hegymászó keresés (stochastic hill climbing): a
felfelé mutató irányokból véletlen módon választ
elsőnek-választott hegymászó algoritmus (first-choice hill
climbing) sztochasztikus hegymászó keresést használ
a követőket véletlen módon addig generálva, amíg az az aktuális
állapotnál nem lesz jobb
jó stratégia lehet, ha egy állapotnak sok követője van
véletlen újraindítású hegymászás (random-restart hill-climbing):
Véletlenül generált kiinduló állapotokból hegymászó keresést végez, amíg
célba nem ér
teljes, de nem hatékony
Lokális keresés (Utazó Ügynök
Probléma)
2-opt: két él cseréje

3-opt: két él cseréje


Evolúciós módszerek
Jellemzők:
• Biológiai folyamatok – egyszerű modell
• Heurisztikus optimalizálási technikák
• (kvázi)optimális megoldás nehéz feladatok esetén
is:
- Nemlineáris
- Nem folytonos
- Nagyméretű sokdimenziós állapottér
- Többkritériumos optimalizálás
Történet
• Többféle irányzat:
• Evolúciós stratégiák (Rechenberg,1973)
• Evolúciós programozás (Fogel et al.,1966)
• Genetikus algoritmusok (Holland, 1975)
• Genetikus programozás (Koza,1992)
Evolúciós stratégiák
• Az első evolúciós stratégiát 1964-ben Rechenberg és
Schwefel alkotta meg
• áramlástani tulajdonságok optimalizálására használták
• Egyszerű evolúciós stratégia: (1+1) ES
• Egyedszám: 1
• 1 iteráció alatt létrehozott utódok száma: 1
•  (μ+1) ES
• (μ+λ) ES
• (μ,λ) ES
Egyszerű evolúciós stratégia
Genetikus algoritmusok

• Alapötlet Holland nevéhez köthető


• Darwin evolúciós elméletén alapszik
• Folyamatosan fejlődő populációk: természetes kiválasztódás
vezérli
• Természetes kiválasztódás: jobb egyed jobb eséllyel
marad fenn
Genetikus algoritmus
Genetikus algoritmus
Egyed:
• Az egyed egy megoldás jelölt a problémára
• A probléma egy lehetséges megoldása valamilyen
formában az egyedbe van kódolva
• pl. bináris, vagy valós
• Fitnesz érték (alkalmassági érték): az egyedeket
valamilyen kritérium szerint értékeljük ki, aszerint, hogy
mennyire jó megoldást adnak a feladatra
• Jobb egyednek nagyobb a fitnesz értéke, és nagyobb
eséllyel él túl
Genetikus algoritmus
Szelekció: Szülő egyed kiválasztása a keresztezés számára
• többféle kiválasztási módszer terjedt el:
• 1, Párverseny: Válasszunk ki a populációból két megoldást
teljesen véletlenszerűen és a szelekció által kiválasztott
elem legyen a kettő közül a rátermettebb
• Módszer általánosítható
több elemre
Genetikus algoritmus
• 3, Fitnesz arányos/ rulettkerék kiválasztás:
Genetikus algoritmus
• 3, Rangsorolás: a populáció egyedit fitneszérték szerint
sorba rendezzük
• Legjobb fitneszértéke N lesz, legrosszabbé 1.
N: egyedek száma a populációban
Genetikus algoritmus
Keresztezés:
• Véletlenszerű keresztezési pont kiválasztása a két szülőn
• Utódok létrehozása az információ kicserélődésével a
keresztezési pont alapján
Leggyakoribb módszerek:
• Egypontos
Genetikus algoritmus
• Kétpontos keresztezés

• Uniform keresztezés:
kromoszóma minden egyes génjénél
véletlenszerűen döntünk, hogy
melyik szülő bitjét kapja az
első utód és melyiket a második
Genetikus algoritmus
Mutáció:
Véletlenszerűen választott egyed génkészletének
véletlenszerű megváltoztatása
Genetikus algoritmus
Szempontok:
• Kezdeti populáció legyen változatos
• Mutációval garantáljuk a változatosságot
• Jobb egyedek szaporodjanak nagyobb valószínűséggel
• Mutáció ne rontsa el a jó egyedeket
Genetikus programozás
• A genetikus programozás ötletét J. Koza javasolta
először 1992-ben
• Cél: meghatározott feladatokat végrehajtó
számítógépes programok automatikus kifejlesztése
• egyedek itt nem egyetlen stringbe vannak bekódolva,
hanem kifejezésfával adottak
• A fát kétféle csomópontok alkotják:
• Terminális csomópontok
• Függvény csomópontok
• Cél: optimális kifejezésfa megtalálása
Genetikus programozás
• Terminálisok és függvények halmazának definiálása
• Paraméterek beállítása
• egyedek száma
• a szülők arány
• a mutációs arány
• a leállási feltétel
• Populáció: fák különböző méretűek és alakúak lehetnek
• Kezdeti populáció: véletlenszerűen létrehozott, de
szintaktikailag érvényes fák alkotják
Genetikus programozás
Genetikus programozás
• Keresztezés
Genetikus programozás
• Mutáció
Bakteriális evolúciós algoritmus

• A baktériumok evolúciós folyamatán alapul


• Alkalmas bonyolult optimalizációs problémák
megoldására
• Egyed: egy megoldás a problémára
• Intelligens keresési stratégia eléggé jó megoldás
keresésére (kvázi optimum)

Bakteriális evolúciós algoritmus
Bakteriális evolúciós algoritmus
Bakteriális mutáció: egy egyeden végrehajtott operátor
Minden egyedre végrehajtjuk
Egyes egyedek külön-külön
optimalizálja
Bakteriális evolúciós algoritmus
• Génátadás: információcsere az
egyedek között a populációban
1. A populációt 2 részre osztjuk, jó
egyedekre, és rossz egyedekre
2. Egy baktériumot
véletlenszerűen kiválasztunk
a jobbik alpopulációból
(forrásbaktérium) egy másikat
pedig a rossz egyedek közül
(célbaktérium)
3. A forrásbaktérium egy része
felülírja a célbaktérium egy
részét
Részecske raj optimalizálás
• 1995-ben dolgozták ki (Kennedy, Ebenhart)
• Működését a madár és halrajok mozgása inspirálta
• A nagyszámú egyed mozgásában egyfajta rendezettség
figyelhető meg. Érzékelik egymás helyzetét, bizonyos
mértékben pedig emlékeznek a korábbi pozíciókra
•  A részecskék mozgását a keresési térben a saját ismert
legjobb pozíciójuk, valamint a teljes raj ismert legjobb
pozíciója határozza meg
• Egy adott pozíció jóságát fitneszfüggvénnyel fejezi ki 
Részecske raj optimalizálás

• Legyen N a részecskék száma a rajban


• Minden i. részecskét (i = 1,…,N) jellemez az x i helye és
a vi sebessége. Legyen továbbá p i az i. részecske
(particle) eddigi legjobb értéket adó pozíciója a keresési
térben
• g pedig a raj eddigi legjobb pozíciója
Részecskeraj optimalizálás
Hangya kolónia algoritmus
Hangya kolónia algoritmus
• Dorigo dolgozta ki 1996-ban
• Hangyák táplálkozási szokásán alapszik: ha a hangya élelmet talál,
akkor a visszavezető úton feromon ösvényt hoz létre, majd a többi
hangya nagy valószínűséggel ezt az ösvényt fogja követni
• Minden iteráció 2 lépésből áll:
1. Megoldások felépítése: a meglevő feromonértékek illetve lokális
információk alapján többnyire véletlen döntések használatával

2. Feromonértékek felülírása: megoldások minősége alapján


Méh kolónia algoritmus
Szimulált hűtés
• Hatékony algoritmus
• legjobb lépés megtétele helyett azonban egy véletlen lépést
tesz.
• Ha a lépés javítja a helyzetet, akkor az mindig végrehajtásra
kerül.
• Ellenkező esetben az algoritmus a lépést csak valamilyen 1-
nél kisebb valószínűséggel teszi meg. A valószínűség
exponenciálisan csökken a lépés „rosszaságával” – azzal a
ΔE mennyiséggel, amivel a kiértékelő függvény értéke
romlott. A valószínűség a T „hőmérséklet” csökkenésével is
csökken. A „rossz” lépések az indulásnál T magasabb
értékeinél valószínűbbek, T csökkenésével egyre
valószínűtlenebbé válnak
Szimulált hűtés
Memetikus algoritmusok
• Az elnevezés Moscato-tól származik. Moscato ötlete az
volt, hogy kombináljuk a rendelkezésünkre álló
algoritmikus módszereket, az így előálló hibrid
módszerekkel a megoldandó komplex problémák
hatékonyabban kezelhetőkké válnak.
• Memetikus algoritmus = evolúciós algoritmus + lokális
keresés
Az elnevezés Moscato-tól származik. Moscato ötlete az
volt, hogy kombináljuk a rendelkezésünkre álló
algoritmikus módszereket, az így előálló hibrid
módszerekkel a megoldandó komplex problémák
hatékonyabban kezelhetőkké válnak
Memetikus algoritmusok
Miért hatékonyak?
Az evolúciós algoritmusok a globális térben
keresnek, képesek a keresési tér legjobb
régióinak megtalálására.
A lokális keresés pedig egy adott megoldás
környezetének feltérképezését végzi.
A kettő kombinálásával csökken a lokális
optimumba való korai beragadás valószínűsége.
Memetikus algoritmusok
Források
• Az előadás anyagai cikkek és könyv
formájában itt érhetők el:
https://drive.google.com/open?id=1sm33xwCF
GRebz2c3Dn2-5HlTAOOA8WFE

You might also like