halad o algoritmusok v1.02 1. fejezet. optimalizaci o 1.1.2.heurisztik ak az optimaliz aci os m...

95
Halad´ o Algoritmusok v1.0.1 Sz´ en´asiS´ andor 2021. janu´ ar

Upload: others

Post on 03-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

Halado Algoritmusokv1.0.1

Szenasi Sandor

2021. januar

Page 2: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

ii

Page 3: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

Tartalomjegyzek

1. Optimalizacio 11.1. Optimalizacio feladata . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1. Optimalizacio fogalma . . . . . . . . . . . . . . . . . . 11.1.2. Heurisztikak . . . . . . . . . . . . . . . . . . . . . . . . 21.1.3. Metaheurisztika . . . . . . . . . . . . . . . . . . . . . . 3

1.2. Alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.1. A feladat meghatarozasa . . . . . . . . . . . . . . . . . 31.2.2. Kereses meghatarozasa . . . . . . . . . . . . . . . . . . 5

1.3. Tobbcelu optimalizalas . . . . . . . . . . . . . . . . . . . . . . 71.3.1. Visszavezetes egycelu optimalizalasra . . . . . . . . . . 81.3.2. Pareto dominancia . . . . . . . . . . . . . . . . . . . . 10

1.4. Klaszterezes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.1. Celja . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.2. Modszerek . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.3. Tavolsag . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.5. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 13

2. Hegymaszo modszer 152.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2. Megvalosıtas - Stochastic . . . . . . . . . . . . . . . . . . . . . 15

2.2.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 152.2.2. Megjegyzesek . . . . . . . . . . . . . . . . . . . . . . . 16

2.3. Megvalosıtas - Steepest Ascent . . . . . . . . . . . . . . . . . . 162.3.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 162.3.2. Megjegyzesek . . . . . . . . . . . . . . . . . . . . . . . 17

2.4. Megvalosıtas - Random Restart . . . . . . . . . . . . . . . . . 182.4.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 182.4.2. Megjegyzesek . . . . . . . . . . . . . . . . . . . . . . . 18

2.5. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.6. Kiegeszıtesi lehetosegek . . . . . . . . . . . . . . . . . . . . . . 19

2.6.1. Gradiens modszerek . . . . . . . . . . . . . . . . . . . . 19

iii

Page 4: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

iv TARTALOMJEGYZEK

2.6.2. Dynamic Hill Climbing . . . . . . . . . . . . . . . . . . 202.6.3. Greedy Randomized Adaptive Search Procedures (GRASP) 20

2.7. Gyakorlati problemak . . . . . . . . . . . . . . . . . . . . . . . 202.8. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 20

3. Szimulalt lehutes 213.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 223.2.2. Parameterezes . . . . . . . . . . . . . . . . . . . . . . . 243.2.3. Homerseklet meghatarozasa . . . . . . . . . . . . . . . 24

3.3. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.4. Kiegeszıtesi lehetosegek . . . . . . . . . . . . . . . . . . . . . . 263.5. Gyakorlati problemak . . . . . . . . . . . . . . . . . . . . . . . 263.6. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 26

4. Veletlen Optimalizalas 274.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.2. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 284.2.2. Megjegyzesek . . . . . . . . . . . . . . . . . . . . . . . 28

4.3. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.4. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 29

5. Tabu kereses 315.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.2.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 325.2.2. Megjegyzesek . . . . . . . . . . . . . . . . . . . . . . . 33

5.3. Tabu tarhely kezelese . . . . . . . . . . . . . . . . . . . . . . . 335.3.1. Tarolas . . . . . . . . . . . . . . . . . . . . . . . . . . 335.3.2. Kereses . . . . . . . . . . . . . . . . . . . . . . . . . . 345.3.3. Karbantartas . . . . . . . . . . . . . . . . . . . . . . . 35

5.4. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.5. Kiegeszıtesi lehetosegek . . . . . . . . . . . . . . . . . . . . . . 36

5.5.1. Tovabbi memoriateruletek bevezetese . . . . . . . . . . 365.6. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 37

6. Evolucios algoritmusok 396.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.2. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Page 5: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

TARTALOMJEGYZEK v

6.2.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 406.3. Reprezentacio . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.3.1. Kromoszoma . . . . . . . . . . . . . . . . . . . . . . . 416.3.2. Populacio . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.4. Fitnesz hozzarendeles . . . . . . . . . . . . . . . . . . . . . . . 436.4.1. Egyszeru fitnesz fuggveny . . . . . . . . . . . . . . . . 446.4.2. Rangsor hasznalata . . . . . . . . . . . . . . . . . . . . 446.4.3. Verseny alapu . . . . . . . . . . . . . . . . . . . . . . . 45

6.5. Kivalasztas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.5.1. Elitizmus . . . . . . . . . . . . . . . . . . . . . . . . . 476.5.2. Csonkolo kivalasztas . . . . . . . . . . . . . . . . . . . 476.5.3. Rendezett kivalasztas . . . . . . . . . . . . . . . . . . . 486.5.4. Fitnesz aranyos kivalasztas . . . . . . . . . . . . . . . . 486.5.5. Versengo kivalasztas . . . . . . . . . . . . . . . . . . . 49

6.6. Keresztezes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.6.1. Altalanos feladatok . . . . . . . . . . . . . . . . . . . . 516.6.2. Kombinatorikai feladatok . . . . . . . . . . . . . . . . . 52

6.7. Mutacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526.7.1. Altalanos feladatok . . . . . . . . . . . . . . . . . . . . 526.7.2. Kombinatorikai feladatok . . . . . . . . . . . . . . . . . 53

6.8. Ertekelese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.9. Gyakorlati problemak . . . . . . . . . . . . . . . . . . . . . . . 546.10. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 54

7. Genetikus Programozas 557.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2. Feladat specifikacioja . . . . . . . . . . . . . . . . . . . . . . . 55

7.2.1. Programfa felepıtese . . . . . . . . . . . . . . . . . . . 557.2.2. Validacio . . . . . . . . . . . . . . . . . . . . . . . . . . 567.2.3. Fitnesz . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

7.3. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.3.1. Kezdopopulacio letrehozasa . . . . . . . . . . . . . . . 587.3.2. Szelekcio . . . . . . . . . . . . . . . . . . . . . . . . . . 597.3.3. Keresztezes . . . . . . . . . . . . . . . . . . . . . . . . 597.3.4. Mutacio . . . . . . . . . . . . . . . . . . . . . . . . . . 597.3.5. Specialis kontextusfuggo muveletek . . . . . . . . . . . 59

7.4. Genotıpus-fenotıpus lekepezes . . . . . . . . . . . . . . . . . . 607.4.1. JB mapping . . . . . . . . . . . . . . . . . . . . . . . . 607.4.2. Gene Expression Programming . . . . . . . . . . . . . 60

7.5. Kiegeszıtesi lehetosegek . . . . . . . . . . . . . . . . . . . . . . 617.5.1. Automatikusan definialt fuggvenyek . . . . . . . . . . . 61

Page 6: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

vi TARTALOMJEGYZEK

7.5.2. Grammatical Evolution . . . . . . . . . . . . . . . . . . 61

7.6. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

7.7. Gyakorlati problemak . . . . . . . . . . . . . . . . . . . . . . . 62

7.8. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 62

8. Non-dominated Sorting Genetic Algorithm 63

8.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

8.2. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

8.2.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 64

8.2.2. Megjegyzesek . . . . . . . . . . . . . . . . . . . . . . . 65

8.2.3. Megoszto fuggveny . . . . . . . . . . . . . . . . . . . . 66

8.3. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.4. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 67

9. Non-dominated Sorting Genetic Algorithm II 69

9.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

9.2. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

9.2.1. Fast Nondominated Sorting Approach . . . . . . . . . 69

9.2.2. Suruseg becsles . . . . . . . . . . . . . . . . . . . . . . 71

9.2.3. Szelekcio . . . . . . . . . . . . . . . . . . . . . . . . . . 72

9.3. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

9.4. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 74

10.Particle Swarm Optimization 75

10.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

10.2. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

10.2.1. Alap mukodes . . . . . . . . . . . . . . . . . . . . . . . 76

10.2.2. Sebesseg meghatarozas . . . . . . . . . . . . . . . . . . 77

10.3. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

10.4. Kiegeszıtesi lehetosegek . . . . . . . . . . . . . . . . . . . . . . 78

10.5. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 78

11.K-kozep 79

11.1. Alapelve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

11.2. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

11.3. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

11.4. Kiegeszıtesi lehetosegek . . . . . . . . . . . . . . . . . . . . . . 81

11.5. Gyakorlati problemak . . . . . . . . . . . . . . . . . . . . . . . 81

11.6. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 81

Page 7: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

TARTALOMJEGYZEK vii

12.DBSCAN 8312.1. Alapelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8312.2. Alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . 8312.3. Megvalosıtas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

12.3.1. Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . 8512.4. Ertekeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8612.5. Felhasznalt irodalom . . . . . . . . . . . . . . . . . . . . . . . 86

Page 8: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

viii TARTALOMJEGYZEK

Page 9: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

1. fejezet

Optimalizacio

1.1. Optimalizacio feladata

1.1.1. Optimalizacio fogalma

Szamos teruleten talalkozhatunk optimalizalasi feladatokkal. Ezek celja,hogy egy problemara megtalaljak az optimalis megoldast. Maguk a felada-tok lehetnek pusztan matematikai hatteruek (pl. keressuk meg egy fuggvenyminimumat), valo vilagbol erkezo gyakorlati problemak (pl. az optimalistermelesi utemezes meghatarozasa), vagy akar termeszetiek (pl. magat azevoluciot is felfoghatjuk egyfajta optimalizalaskent).

Informatikai szempontbol az optimalizalast altalaban egy vagy tobb fuggvenyminimumanak megkeresesekent ertelmezzuk. Ez onmagaban nem tunik tulgyakorlatorientaltnak, de erre mar egyszeruen visszavezetheto szamos ossze-tett feladat:

� termeles utemezes→ egy fuggvennyel ırjuk le a termeles idoigenyet, eskeressunk olyan utemezest, ahol ez minimalis;

� fuggvenykozelıtes→ vegyuk a referencia es a parameterek alapjan meg-adott fuggveny kulonbseget, es keressuk meg azokat a fuggveny pa-rametereket, ahol ez minimalis;

� klaszterezes→ vegyuk az azonos illetve kulonbozo klaszterekbe tartozoelemek tavolsagat, es keressunk olyan csoportosıtast, hogy az elobbiertek minel kisebb, ez utobbi pedig minel nagyobb legyen.

A feladat termeszetesen lehet a fuggveny maximumanak keresese is, deegyszeruen belathato, hogy az egyik modszer egyszeruen visszavezetheto amasikra, ezert mi mindig minimumot fogunk keresni.

1

Page 10: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

2 1. FEJEZET. OPTIMALIZACIO

1.1.2. Heurisztikak

Az optimalizacios modszerek sokfelekeppen csoportosıthatok, tekinthetjuk azalabbi csoportosıtast:

� analitikus modszerek: matematikai eszkozokkel levezetheto megoldasok� numerikus modszerek: linearis programozas, nemlinearis programozas,

dinamikus programozas, visszalepeses kereses, stb.� heurisztikus modszerek: hegymaszo modszer, genetikus algoritmusok,

raj alapu modszerek, stb.

A numerikus modszerek tehat a mar megismert egzakt, matematikailagbizonyıthatoan jol mukodo modszerek, amelyek garantalni tudjak, hogy min-dig megtalaljak a tokeletes megoldast. A gyakorlatban azonban ez sokszorolyan nagy szamıtasi kapacitast igenyel, hogy azokat hasznalhatatlanna te-szi. Ezekkel ellentetben a heurisztikus keresesi modszerek (vagy rovidenheurisztikak) olyan algoritmusok, amelyek valamilyen nem egzakt, de sok-kal jobb teljesıtmenyu modszerrel probalnak egy kozelıto eredmenyt adni aproblemara.

Ezek tobbnyire moho algoritmusok, azok minden elonyevel es hatranyaval.Helyes mukodesuk elvi sıkon nem bizonyıthato, altalaban csak a gyakor-lati tapasztalatok alapjan latjuk ezek elonyeit. Felfoghatok ugy is, hogyegyensulyoznak a pontossag/teljesseg/eroforrasigeny kozott. Amikor az eg-zakt megoldast nyujto modszerek a szamıtasigenyuk miatt nem hasznalhatok,gyakran megelegszunk a csak kozelıto eredmenyt ado, de legalabb mukodomodszerekkel.

Ez a konyv alapvetoen ezekkel foglalkozik (bar szerepelnek is benne nemsztochasztikus modszerek is), megha szamos nyilvanvalo hatrannyal is bırnakaz elso csoporttal szemben:

� nem determinisztikusak: a megoldas soran altalaban jelentos szerepevan a veletlen valtozoknak, ebbol kifolyolag egymast koveto futtatasokmas-mas eredmenyeket adhatnak;

� nem pontosak: ezek az algoritmusok (veges idon belul) altalaban csakkozelıto megoldast tudnak adni, illetve ha meg is talaljak az optimalismegoldast, nem tudjuk igazolni, hogy nincs annal jobb eredmeny.

A modszerek letjogosultsaga azonban ketsegtelen, hiszen sok esetben csakezeket tudjuk felhasznalni, amennyiben

� a problemater tul nagy: a hagyomanyos eljarasok (visszalepeses kereses,stb.) bar nagyon hatekonyak a maguk nemeben, egy nagyon nagy (akarvegtelen) meretu problematerben gyakran hasznalhatatlanok;

Page 11: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

1.2. ALAPFOGALMAK 3

� problema tul komplex: elkepzelheto, hogy maga a problemater kezel-heto meretu, viszont az egyes elemek kiertekelese olyan koltseges, hogya hagyomanyos algoritmusok futasideje nem elfogadhato.

Maguk a keresesi algoritmusok altalaban fuggetlenek maguktol a problematol,tehat egy modszer szamos (megadott szerkezetu) feladat megoldasara hasznalhato.Az persze szinten igaz, hogy egyes feladatokat bizonyos heurisztikak hatekonyabbanoldhatnak meg, mint masok. A koztuk levo dontes jelentos szakertelmet, esidonkent probalkozast igenyel.

1.1.3. Metaheurisztika

Metaheurisztika nevvel illetjuk azokat a modszereket, amelyek egy magasabbszinten mukodnek egy feladat megoldasa erdekeben. Altalaban mar meglevoheurisztikak osszekapcsolasabol allnak, azokat egy magasabb szinten kezelik(parameterezik, ujraindıtjak, stb.).

Meg tovabb lepve megismerkedhetunk a hiperheurisztikakkal is, amelyekonmaguk parametereit is probaljak beallıtani.

1.2. Alapfogalmak

1.2.1. A feladat meghatarozasa

Problemater

A problemater1 egy halmaz, amely tartalmazza a feladat osszes lehetsegesmegoldasat, a megoldasjelolteket2). Az optimalizacio celja az lesz, hogy ezekkozul kivalasszuk azt (vagy azokat), amelyek a legjobbak valamilyen szem-pontbol.

Jelolese: P, amelynek elemei (x ∈ P) a megoldasjeloltek.A problemater mindig a megoldando feladattol fugg (feladatspecifikus),

peldaul:

� fuggvenykozelıtes eseten a problemater elemei a lehetseges fuggvenyparameterek,� utazougynok problema eseten a problemater elemei a lehetseges utvonalak.

A problemater definialasakor meg nem foglalkozunk magaval a leendomegoldo algoritmussal. Itt meg csak magat a feladatot probaljuk meg-hatarozni.

1problem space2candidate solution

Page 12: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

4 1. FEJEZET. OPTIMALIZACIO

Celfuggveny

Az optimalizalasi feladatok soran valamilyen formaban szamszerusıtenunkkell a problematerben talalhato potencialis megoldasok

”josagat”. Erre szolgal

a celfuggveny3, ami minden problematerbeli elemhez egy szamot rendel.Jelolese: g : P 7→ RA celfuggveny lehet egy egyszeru matematikai fuggveny (pl. fuggveny

kozelıteskor a referencia fuggveny es a vizsgalt parameterek altal leırt fuggvenykulonbsege), de lehet valamilyen bonyolult algoritmus eredmenye is (pl. haegy kepfeldolgozasi algoritmus idealis parametereit keressuk, akkor a celfuggvenykiszamıtasahoz le kell futtatnunk az algoritmust a megoldasjelolt altal tar-talmazott parameterekkel, majd ennek eredmenyenek kiertekelese adja mega celfuggveny erteket).

Globalis optimum

Egy optimalizalasi feladat celja altalaban egy (vagy tobb) globalis optimummegtalalasa. Globalis optimumnak nevezzuk a problemater azon elemeit,amelyeknel nincs

”jobb” elem.

Tehat egy xg ∈ P megoldasjelolt globalis optimum, ha

∀x ∈ P : g(xg) ≤ g(x) (1.1)

Megegyezes szerint altalaban a legkisebb erteket keressuk, de termeszetesena definıcio fordıtva is felırhato.

Lokalis optimum

Bizonyos feladatok eseteben gyakran talalkozhatunk ugynevezett lokalis op-timumokkal. A problemater azon elemeit nevezzuk ıgy, amelyeknek egy bi-zonyos kornyezeteben nincs naluk

”jobb” elem.

Tehat egy xl ∈ P megoldasjelolt lokalis optimum, ha

∃ε > 0,∀x ∈ P, | x− xl |< ε : g(xl) ≤ g(x) (1.2)

Megegyezes szerint altalaban a legkisebb erteket keressuk, de termeszetesena definıcio fordıtva is felırhato.

Erdemes megjegyezni, hogy a lokalis optimumot nem tekinthetjuk”majd-

nem jo” erteknek. Elkepzelheto, hogy az idealis megoldastol nagyon messzeall, csak a problemater jellege miatt eppen olyan helyen talalhato, ahol akozvetlen kornyezeteben nincsenek nala jobb elemek.

3goal function

Page 13: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

1.2. ALAPFOGALMAK 5

Megszorıtasok

Feladattol fuggoen gyakran kulonfele megszorıtasoknak4 is meg kell felelniuka leendo megoldasoknak. Ilyen lehet peldaul, hogy egy gyartasi folyamattervezesekor valamely muveletnek meg kell eloznie egy masikat. A meg-szorıtasok a mi esetunkben fuggvenyekkent fognak megjelenni:

Jelolese: c : P 7→ RMegegyezunk abban, hogy egy megszorıtast akkor tekintunk kielegıtettnek,

ha annak erteke a megoldasjeloltre legalabb 0.Mivel egy feladat gyakran tobb megszorıtast is tartalmazhat, ezert C

legyen a megszorıtasi fuggvenyek halmaza.Tehat egy x ∈ P csak akkor jo megoldas, ha:

∀c ∈ C : c(x) ≥ 0 (1.3)

1.2.2. Kereses meghatarozasa

Keresesi ter

A problemater leırja a feladat osszes lehetseges megoldasat, ezek kozul kellkivalasztatnunk egyet vagy tobbet. Leendo modszereink azonban nem kozvet-lenul ebben a problematerben dolgoznak, hanem egy vele parhuzamos ke-resesi terben5. A ket ter szetbontasanak azert van szerepe, mert a keresesiter gyakran:

� mas szerkezetu (tıpusu), mint az eredeti problemater (pl. az utazougynokproblema eseteben a problemater elemei utvonalak, a szamıtogepesmegvalosıtas soran a keresesi terben azonban jobban kezelheto, ha egy-szeruen csak szamokat tartalmazo tombokkel dolgozunk);

� a teljes problematernek csak egy kisebb szelete, tehat az optimalizaloalgoritmus nem kell, hogy minden lehetseges megoldast megvizsgaljon(pl. lehet, hogy eleve ki tudunk zarni szamos remenytelen megoldasjeloltet);

� a teljes problematernek a leegyszerusıtese (pl. lehet, hogy a gyartasifolyamat optimalizalasakor a folyamatnak csak bizonyos aspektusaivalszeretnenk foglalkozni, hogy ezzel is egyszerusıtsuk a feladatot).

Jelolese: S, amelynek elemei (x ∈ S) a keresesben resztvevo elemek(ezeket az egyszeruseg kedveert szinten megoldasnak, megoldasjeloltnek ne-vezzuk).

4constraint5search space

Page 14: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6 1. FEJEZET. OPTIMALIZACIO

Nem kotelezo megkulonboztetni egymastol a ket teret, bizonyos szakiro-dalomak eseten ez nem is tortenik meg. A pontossag kedveert mi viszontezt megtesszuk. Persze az is elofordulhat, hogy a ket ter megegyezik (pl.fuggveny kozelıtesnel a lehetseges parameterek tere problematerkent es ke-resesi terkent is hasznalhato).

Tehat osszefoglalva:

� problemater: a feladat valo vilagbeli megfogalmazasahoz tartozo meg-oldasjelolteket tartalmazza (tehat pl. utvonalak halmaza);

� keresesi ter: az a ter, amelyben a tenyleges algoritmus mukodni fog(tehat pl. fix meretu szamokat tartalmazo tombok).

Terek kozotti lekepezes

Szukseg van a ket ter kozotti atjarasra, legalabbis az egyik iranyba feltetlenul.Nem sokra mennenk egy megoldassal a keresesi terben, ha azt nem tudnankertelmezni egy gyakorlati megoldaskent a problematerben. Erre szolgal akeresesi terbol a problematerbe iranyulo lekepezes.

Jelolese: gpm : S→ PA rovidıtes a

”genotype phenotype mapping”-et takarja. Ez pedig a ge-

netikus algoritmusoknal megszokott elnevezesi konvenciokra utal:

� genotıpus6: a keresesi terben (S) levo elemek,

� fenotıpus7: a problematerben (P) levo elemek.

Ahogy emlıtettuk, a lekepezesnek legalabb az egyik iranyba teljeskorunekkell lennie:

∀x ∈ S,∃y ∈ P : gpm(x) = y (1.4)

Fitnesz fuggveny

A fitnesz fuggveny8 a keresesi terben ertelmezett fuggveny, amely mindenelemhez hozzarendel egy

”josagot”:

Jelolese: f : S 7→ RTehat a keresesi ter minden elemehez hozzarendel egy szamot, szerepe

hasonlo, mint a celfuggvenye, a nyilvanvalo kulonbseg az, hogy ez nem aproblema-, hanem a keresesi terben hasznalhato. Gyakran nincs is szukseg

6genotype7phenotype8fitness function

Page 15: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

1.3. TOBBCELU OPTIMALIZALAS 7

ket kulon fuggveny kidolgozasara, mivel az elobb megismert lekepezessel afitnesz fuggveny barmikor egyszeruen visszavezetheto a celfuggvenyre:

f(x) = g(gpm(x)), x ∈ S (1.5)

A gyakorlatban viszont gyakran jelentosen elter egymastol a ket fuggvenymegvalosıtasa:

� A fitnesz fuggveny lehet az egyszerusıtese az eredeti celfuggvenynek.Ez akkor lenyeges, ha az eredeti celfuggveny tul osszetett, es a keresessoran annak hasznalata nem lenne praktikus (pl. futasido miatt).

� Szinten elofordul, hogy a fitnesz fuggveny tobb celfuggveny osszevonasatjelenti. Erre mindjart latunk is peldakat a tobbcelu optimalizalas teruleten.

� A problema definialasakor a celfuggvenyeket es a megszorıtasokat kulonadtuk meg, de a keresesben mar lehet, hogy ezeket osszevonjuk, es afitnesz fuggveny tartalmazza mindkettot.

� A fitnesz fuggveny gyakran tamogatja a keresest olyan funkciokkal,amelyek csak a celfuggveny hasznalataval nem mukodnenek. Peldaulha tobb helyes megoldas eseten minel tavolabbiakat akarunk kapni, ak-kor a fitnesz fuggveny erteket nem csak az befolyasolja, hogy a vizsgaltmegoldasjelolt mennyire jo, hanem az is, hogy milyen messze van atobbiektol.

1.3. Tobbcelu optimalizalas

A gyakorlatban szamos olyan optimalizalasi problema letezik, ahol nem tu-dunk egyetlen egyertelmu celfuggvenyt meghatarozni, peldaul:

� befektetest kell ajanlani, ami minel nagyobb hozamot hozzon, de minelkisebb legyen a kockazata;

� munkat szeretnenk elvegeztetni, minel jobb minosegben es minel olcsobban.

Tehat ezekben az esetekben nem csak egy g celfuggvenyunk van, hanemtobb darab (pl. reszveny ar celfuggvenye, reszveny kockazat celfuggvenye,stb.).

Ebben az esetben G-vel fogjuk jelolni a celfuggvenyek halmazat.Az egyszeruseg kedveert neha indexelt format fogunk hasznalni, tehat

kulon-kulon az egyes celfuggvenyek:

gi : P 7→ R, i ∈ {1, 2, ..., |G|} (1.6)

Page 16: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

8 1. FEJEZET. OPTIMALIZACIO

1.3.1. Visszavezetes egycelu optimalizalasra

Latni fogjuk, hogy a legtobb altalunk hasznalt algoritmus alapvetoen egyceluoptimalizalasra van felkeszıtve. Tehat az algoritmus alapja egy darab fitneszfuggveny, es annak erteke alapjan fogja elvegezni a keresesi lepeseket. Afitnesz fuggveny pedig altalaban a problematerben megadott celfuggveny egyvaltozata.

A tobbcelu optimalizalasi feladatok eseteben ez a felepıtes kozvetlenulnem hasznalhato, azonban egyszeru modszerekkel vissza tudjuk vezetni eze-ket is egycelu feladatokra.

Itt is jo hasznat vesszuk a celfuggveny es a fitnesz fuggveny megkulonboztetesenek,hiszen a celfuggvenyek a feladat megfogalmazasakor adottak (ezekbol tobbis van), a fitnesz fuggvenyt azonban mi konstrualhatjuk meg ugy, hogy azegyetlen fuggvenyben probalja meg osszesıteni az osszes celt.

Sulyozas

A legegyszerubb lehetoseg, ha fitnesz fuggvenyt ugy valosıtjuk meg, hogyaz egyszeruen osszegzi a meglevo celfuggvenyek erteket egy megadott meg-oldasjeloltre, tehat egyszeruen skalarizaljuk a problemat. Az mar csak mi-nimalis tovabbfejlesztest igenyel, hogy egy osszegzes soran egy sulyvektorral(w ∈ R|G|) sulyozzuk is az egyes celfuggvenyeket.

f(x) =

|G|∑i=1

wigi(gpm(x)), x ∈ S (1.7)

A modszer legnagyobb elonye annak egyszerusege. A fenti kiegeszıtesselmaris kapunk egy hagyomanyos fitnesz fuggvenyt, amit egyszeruen tudunkhasznalni a mar megismert algoritmusainkban. A sulyok segıtsegevel pe-dig az is beallıthato, hogy melyik cel mennyire fontos. A nagy sullyal bırocelok jelentosen fogjak befolyasolni a fitnesz erteket, a kisebb sulyuak pedigkevesbe (extrem esetben akar 0 is valaszthato sulykent).

A fenti rugalmassag azonban egyben hatranyt is jelent. A gyakorlatbanugyanis nagy nehezseget okozhat a sulyok megfelelo ertekenek megtalalasa.A megoldas ugyanis nagyon erzekeny lesz a valasztott sulyokra, helytelenulmegvalasztott ertekek teljesen torz megoldasokat adhatnak. Tovabbi hatrany,hogy bizonyos esetek nem ırhatok le sulyozassal, pl. elkepzelheto, hogy van-nak olyan kockazatos reszvenyek, amelyeket nem kellene valasztani, barmekkorahaszonnal is kecsegtetnek. Ilyet ıgy nem tudunk definialni, hiszen barmilyensulyaranyt is valasztunk, egy megadott mennyiseg felett az egyik cel mindigdominalhat.

Page 17: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

1.3. TOBBCELU OPTIMALIZALAS 9

Method of distance

Ebben az esetben meg kell hatarozni a celertekek egy vektorat, amit el sze-retnenk erni (az eddigiekhez igazodva ez lehet egy csupa 0-kbol allo vektor,hiszen minden celfuggvennyel ezt szeretnenk minel jobban megkozelıteni).Ez a vektor legyen v, ez tulajdonkeppen felfoghato egy pontnak a celertekektereben. Egy elem josaga pedig ez alapjan nem mas, mint a hozza tartozocelfuggvenyek ertekei altal megjelolt pont tavolsaga ettol az idealis ponttol[?].

f(x) = (

|G|∑i=1

|gi(gpm(x))− vi|r)1r (1.8)

Az r parameterrel adhatjuk meg, hogy pontosan milyen modon szeretnenka tavolsagot szamolni (pl. r = 2 eseten egyszeru Euklideszi tavolsagotmerunk).

Min-max

Az elozoleg megismert modszerek jelentos hatranya, hogy nem tudjak figye-lembe venni az egyes celfuggvenyertekek ertekkeszlete kozotti kulonbsegeket.Peldaul a reszvenyes peldanal maradva a kockazat 0.0 es 1.0 kozotti szamkentvan megadva, mıg a varhato hozam 0 es 1 000 000 000 kozott mozog. A min-max modszer segıtsegevel lehet ezeket az ertekeket normalizalni, hogy ezek akulonbsegek kiegyenlıtodjenek (illetve a kepletbol lathato, hogy az esetlegesmertekegysegek is eltunnek).

Zi(x) =gi(|gpm(x))− vi|

vi(1.9)

Az ıgy kiszamıtott Zi ertekek tehat mar normalizaltak, viszont ezek megcsak az egyes celokra vonatkoznak. Ezeket meg valamilyen formaban ossze-gezni kell a fitnesz fuggveny kiszamıtasahoz. Ez lehet egy egyszeru osszegzes,de lehet akar az alabbi forma is, ami mindig a legrosszabb reszeredmenyt adjavissza:

f(x) = maxj=1,2,..,|G|

Zj(x) (1.10)

Az itt megismert min-max alapelv kisebb modosıtasokkal meg szamoshelyen elo fog kerulni, hiszen nagyon gyakori, hogy normalizalni szeretnenkadatainkat.

Page 18: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

10 1. FEJEZET. OPTIMALIZACIO

Hierarchikus modszer

A modszer jelentosen elter az elobbiektol. Az alapelv itt az, hogy az egyescelfuggvenyeket sorrendbe rakjuk fontossag szerint. Elsodlegesen az elsofuggveny szerint keresunk, es a masodik fuggvenyt csak akkor vesszuk figye-lembe, ha az elso alapjan azonos eredmenyt kaptunk (es ez persze altalanosıthatotovabb is). Tipikus peldaja, amikor verseny eredmenyeket kell publikalni, ak-kor elsodleges pontszam alapjan rendezzuk a listat, az azonos pontszammalbırok kozott pedig az ABC sorrend dont.

Az egyszeruseg kedveert ket celfuggvenyre megadva:

f(x) < f(y) ha g1(x) < g1(y) ∨ (g1(x) = g1(y) ∧ g2(x) < g2(y)) (1.11)

Feladattol fugg, hogy a modszer sajatossagait elonykent vagy hatranykenteljuk meg. Nyilvanvalo hatranya, hogy egy kesobbre priorizalt fuggvenymindig csak a sajat szintjen tudja befolyasolni a sorrendet. Tehat ha egyreszvenynek akar csak 0.001%-al nagyobb a kockazata, akkor az hatterbeszorul akkor is, ha sokszoros hasznot hozott volna.

A modszer egy masik figyelemre erdemes jellemzoje (amivel kesobb meggyakran talalkozunk, de eddig ilyenre meg nem volt pelda), hogy nem ad egyegyertelmu erteket a fitnesznek. Tehat nem egy egyszeru szamot rendel min-den keresesi terbeli elemhez, hanem csak annyira vallalkozik, hogy ket elemkozul meg tudja mondani, hogy melyik a jobb. Ez bizonyos modszereknel(pl. hegymaszo algoritmusok) elegseges lesz, mashol viszont hatranyos lehet(pl. genetikus algoritmusok).

1.3.2. Pareto dominancia

Pareto dominancia fogalma

Egy x megoldas Pareto dominal egy y megoldast (x ≺ y), ha

∀i ∈ {1, 2, ..., |G|} : gi(x) ≤ gi(y)

∃j ∈ {1, 2, ..., |G|} : gj(x) < gj(y)

Tehat az x megoldas minden szempontbol legalabb olyan jo mint az y, eslegalabb egy szempontbol meg jobb is nala.

Pareto optimum

A Pareto dominancia segıtsegevel is bevezethetjuk az optimum fogalmat.Egy x ∈ P akkor Pareto optimum, ha nincs meg egy olyan megoldas jelolt,ami dominalna ot:

Page 19: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

1.3. TOBBCELU OPTIMALIZALAS 11

@x ∈ P : x ≺ x (1.12)

Pareto front

Gyakori, hogy nem csak egy, hanem tobb Pareto optimalis elemunk is van.Ebben az esetben a Pareto optimalis elemek halmazat nevezzuk Pareto front-nak.

Egy pelda

Az 1.1. abra egy peldat mutat a Pareto optimumokra. A diagram elofizetesiadatokat mutat, ahol minden elofizetesnel meg van adva, hogy mennyi ahavi dıja, es ehhez milyen husegidot kell alaırni. Feltetelezzuk, hogy aszolgaltatasok mind ugyanolyanok, tehat celunk a minel olcsobb elofizetesminel rovidebb husegidovel (tehat egy pont kinel kozelebb van az origohoz,annal jobb).

Nehany pelda, ami leolvashato a diagramrol:

� B ≺ D: mivel mindket szempont szerint jobb nala;

� A ≺ B: mivel az elofizetesi dıjuk azonos, de a husegido alapjan nemjobb;

� A ⊀ F : mert bar az elofizetesi dıja jobb, de a husegido rosszabb;

� F ⊀ A: mert bar a husegido szempontjabol jobb, de az elofizetesi dıjatobb;

� A, G, C: oket senki se dominalja (ok se egymast), ezert ok a Paretofront.

A peldabol is jol lathato, hogy a feladatnak nincs egyetlen kiemelhetooptimalis megoldasa. Az A, G es C pontok nem azonosak, megse tudjukegyiket se elonyben reszesıteni a tobbihez kepest. A feladat megoldasa tehatez a harom pont.

Kihangsulyozando, hogy ez nem egy hatrany, hanem eppenhogy egy elony.A Pareto dominancia ugyanis lehetove teszi azt, hogy ne csak az egyik jo meg-oldast kapjuk vissza, hanem akar mindet. A hasonlo feladatok megoldasanalkimondottan azt szeretnenk, hogy minel tobb nem dominalhato eredmenytkapjunk. Amennyiben a front merete nagyon nagy, es mindet nem varhatjuk,akkor is az egymastol minel tavolabbiakat szeretnenk megkapni.

Az, hogy utan ki melyik elofizetest valasztja, az mar legyen a felhasznalodontese.

Page 20: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

12 1. FEJEZET. OPTIMALIZACIO

A

B

C

D

E

F

G

0

1

2

3

4

5

6

7

8

9

0 500 1000 1500 2000 2500 3000 3500

ségi

Előfizetési díj

1.1. abra

1.4. Klaszterezes

1.4.1. Celja

A klaszterezesi feladatok celja, hogy kozeli adatokbol csoportokat (klasztere-ket) alakıt ki. Az egyes klasztereken belul kozeli elemek vannak, az egymastoltavoli elemek pedig kulonbozo klaszterekbe kerulnek. A nehezseg, hogy acsoportok elhelyezkedeset (es gyakran szamat) sem ismerjuk elore.

1.4.2. Modszerek

Az alapveto klaszterezesi modszereket az alabbi fo csoportokba sorolhatjuk:

� Hierarchikus klaszterezes

– Osszevono: kiindulasi allapotkent minden elemet kulon klaszter-nek tekint, majd ezeket kapcsolja ossze valamilyen szabaly szerintegyre nagyobb klaszterekbe.

– Feloszto: kiindulasi allapotkent egy nagy klaszternek tekinti ateljes adathalmazt, es ezt probalja meg szetbontani valemilyenszabaly szerint kisebb klaszterekre.

� Nem hierarchikus klaszterezes

Page 21: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

1.5. FELHASZNALT IRODALOM 13

1.4.3. Tavolsag

A klaszterezesi feladatok soran definialni kell valamilyen tavolsag fogalmataz egyes elemek kozott. Ezzel egyenerteku, ha nem tavolsagot, hanem ha-sonlosagot hatarozunk meg, ami ennek kb. az ellentete.

Ez lehet euklideszi tavolsag, de barmilyen egyeb tavolsagi metrika, amimegfelel az ezekkel szemben tamasztott kovetelmenyeknek.

1.5. Felhasznalt irodalom

[7, 1]

Page 22: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

14 1. FEJEZET. OPTIMALIZACIO

Page 23: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

2. fejezet

Hegymaszo modszer

2.1. Alapelv

Az egyik legregebbi es legegyszerubb modszer. Konnyen implementalhato,gyakran a mar meglevo kereseseket kiegeszıto finomhangolaskent jelenik meg.

Indulaskent kivalasztja a keresesi ter egy veletlen pontjat, majd ezt kovetoenegy ciklust futtat, ami ezt a pozıciot megprobalja ugy megvaltoztatni, hogyjobb helyre jussunk. Ha ez sikerul, akkor az lesz az uj aktualis pozıcio, esa ciklus folytatodik. Ha nem sikerul, akkor vagy tovabb probalkozik, vagyleall.

A kulonfele alvaltozatok abban kulonboznek egymastol, hogy melyik mi-lyen formaban vizsgalja az aktualis elem kornyezetet.

A hegymaszo elnevezes kisse felrevezeto lehet, ugyanis mi nem a legna-gyobb hanem a legkisebb fitnesz fele szeretnenk haladni. Ilyen szempontbolszerencsesebb lenne egy hegyrol leereszkedo elnevezes.

2.2. Megvalosıtas - Stochastic

2.2.1. Algoritmus

A klasszikus megvalosıtasban az algoritmus kiindul egy veletlen pozıciobol,majd ezt kovetoen egy ciklust futtat addig, amıg a megallasi feltetel nemlesz igaz. Ez a megallasi feltetel sokfelekeppen megvalosıthato, tipikus le-hetosegek: idokorlat, iteraciokorlat, fitnesz korlat, fitnesz javulas korlat, stb.

Az aktualis allapotot folyamatosan tarolja a p valtozo. A cikluson belulvalaszt egy veletlen pozıciot (q) ennek ε sugaru kornyezeteben. Ha ez azuj pont jobb, akkor atlep ide, ha nem, akkor tovabb probalkozik egy masikveletlen ponttal.

15

Page 24: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

16 2. FEJEZET. HEGYMASZO MODSZER

2.1. Algoritmus HillClimbingStochastic

1: fuggveny HillClimbingStochastic(S, ds, ε, f,StopCondition)

2: prnd←−− S

3: ciklus amıg ¬StopCondition()

4: qrnd←−− {x ∈ S | ds(x, p) = ε}

5: ha f(q) < f(p) akkor6: p← q7: elagazas vege8: ciklus vege9: vissza gpm(p)

10: fuggveny vege

Az algoritmus visszateresi erteke a p altal reprezentalt megoldas.

2.2.2. Megjegyzesek

� Indeterminisztikus modszer. Minden indıtaskor mas lehet a kiindulopont, de meg azonos kiindulo pontok eseten is mas-mas utakat jarhatbe.

� A fitnesz vizsgalatnal erdemes meggondolni a < helyett ≤ hasznalatat.Ilyenkor a sıksagokon1 az algoritmus tovabb fog lepni.

� Az ε erteke valtozhat menet kozben. Tipikusan pl. megakadasnal lehetcsokkenteni, vagy akar novelni.

2.3. Megvalosıtas - Steepest Ascent

2.3.1. Algoritmus

A lenyegi valtozas az elozo valtozathoz kepest a q elem kivalasztasanakmodja. Itt ugyanis mar nem csak egy veletlen elemet valasztunk az ε kornye-zetbol, hanem ennek a kornyezetnek a legjobb elemet. Ezzel arra szamıtunk,hogy az algoritmus gyorsabban es celiranyosabban fog haladni a globalis op-timum fele.

Ennek a valtozasnak koszonhetoen azt is fel tudjuk fedezni, ha beragad-tunk egy lokalis optimumba. A sztochasztikus valtozat abban az esetben, haa q pont nem volt jobb, akkor egy ujabb veletlen szomszed fele probalkozott.

1plateou

Page 25: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

2.3. MEGVALOSITAS - STEEPEST ASCENT 17

2.2. Algoritmus HillClimbingSteepestAscent

1: fuggveny HillClimbingSteepestAsc(S, ds, ε, f,StopCondition)

2: prnd←−− S

3: stuck ← hamis4: ciklus amıg ¬stuck ∧ ¬StopCondition()

5: qargminf(x)←−−−−−− {x ∈ S | ds(x, p) = ε}

6: ha f(q) < f(p) akkor7: p← q8: kulonben9: stuck ← igaz

10: elagazas vege11: ciklus vege12: vissza gpm(p)13: fuggveny vege

Ebben az esetben ennek nincs ertelme, hiszen a q a szomszedok kozul a leg-jobb. Tehat ha erre nem erdemes tovabbmenni, akkor le is allıthatjuk a teljeskeresest. Ennek vizsgalatara szolgal a stuck valtozo.

2.3.2. Megjegyzesek

� Elozo valtozattal ellentetben ez mar determinisztikus. Tehat azonoshelyrol indıtva mindig ugyanazt az utat fogja bejarni (ez otletet adnemi tovabbfejlesztesre, lasd Tabu kereses).

� A kornyezet legjobb elemenek kivalasztasa a gyakorlatban altalabannem kivitelezheto. Egy dimenzioban meg csak ket elem van ε tavolsagra,ketto vagy tobb dimenzioban azonban mar vegtelen. Ennek megfe-leloen csak arra tudunk vallalkozni, hogy a kornyezetet valamilyen fel-bontassal vizsgaljuk meg, es ez alapjan valasztjuk meg a tovabblepesiranyat.

� Az elvarhato, hogy ez a valtozat kevesebb lepest fog megtenni, hiszensokkal celiranyosabban kozelıt az optimum fele. Azonban ne felejtsukel, hogy a kornyezet vizsgalata ebben az esetben sokkal szamıtasigenyesebb,tehat a teljes algoritmus futasidejere nem varhatjuk, hogy jobb lesz.

Page 26: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

18 2. FEJEZET. HEGYMASZO MODSZER

2.4. Megvalosıtas - Random Restart

2.4.1. Algoritmus

2.3. Algoritmus HillClimbingRandomRestart

1: fuggveny HillClimbingRandomRestart(S, ds, ε, f,StopCondition)2: V ← ∅3: ciklus amıg ¬StopCondition()

4: prnd←−− S \ V

5: stuck ← hamis6: ciklus amıg ¬stuck ∧ ¬StopCondition()

7: qargminf(x)←−−−−−− {x ∈ S | ds(x, p) = ε}

8: ha q /∈ V ∧ f(q) < f(p) akkor9: p← q

10: V ← V ∪ {q}11: kulonben12: stuck ← igaz13: elagazas vege14: ciklus vege15: ciklus vege16: vissza gpm(p)17: fuggveny vege

Belso mukodese azonos az elozoleg megismert hegymaszo varianssal, csakannyi a kulonbseg, hogy ez egymas utan tobb keresest indıt. Futas kozbenpedig egy V halmazban eltarolja a mar meglatogatott helyeket, hogy odatobbe ne lepjen.

2.4.2. Megjegyzesek

� A hegymaszo algoritmusok klasszikus problemaja, hogy hajlamosak be-ragadni a lokalis optimumokba. Ennek egyik kivedesi lehetosege, hogyegyszeruen tobbszor indıtjuk el a keresest kulonfele kiindulo pontokbol.

� Amennyiben a determinisztikus valtozatot hasznaljuk, akkor celszerueltarolni a mar vizsgalt pontokat, mivel ezek mindig ugyanoda vezet-nek. Ez azonban meg egy nagyon primitıv megoldas, a Tabu keresesfog erre egy hatekonyabb mukodest mutatni.

Page 27: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

2.5. ERTEKELES 19

� Ez mar egy metaheurisztika, hiszen egy magasabb szinten iranyıtja egymasik heurisztikus kereses mukodeset.

2.5. Ertekeles

+ Nagyon egyszeru, ezert gyors kiprobalast tesz lehetove. Nem igenyelhosszas implementaciot es tesztelest, ezert erdemes hozzaadni a marmeglevo keresesek vegehez.

+ Alapvetoen kis szamıtasigennyel bır, mivel egy idoben csak egy elemetkell vizsgalni (nem populacio alapu).

+ Anytime algoritmus: minden allapotaban helyes megoldasokat ad.

– Legnagyobb hibaja, hogy konnyen beragad lokalis optimumokba (ezertis szoktak lokalis optimalizalasi modszernek nevezni). Amennyiben azaktualis pozıcio olyan helyre keveredik, ahol a kornyezeteben mindenholrosszabb fitneszu pontokat lat, akkor leall, pedig elkepzelheto, hogy akeresesi ter mas pontjain vannak sokkal jobb helyek.

– Csak akkor ad garantaltan helyes megoldast, ha a keresesi ter mindenpontjabol egy monoton csokkeno ut vezet a globalis optimumba (ezeketnevezzuk konvex problemaknak).

– Az aktualis pont kornyezetenek teljes megvizsgalasat a gyakorlatbanaltalaban nem tudja elvegezni, csak bizonyos felbontassal. Neha azon-ban ez nem elegseges, ezert megall olyan esetekben is, ahol meg tovabbtudott volna lepni.

– Az egyetlen ε parametert nehez meghatarozni. Tul kicsi valasztas le-lassıtja az algoritmust, tul nagy valasztas soran pedig elkepzelheto,hogy az atugorja a optimalis pontot.

2.6. Kiegeszıtesi lehetosegek

2.6.1. Gradiens modszerek

Ezek nagyon hasonlıtanak a hegymaszasra, csak az a lenyeges kulonbseg,hogy nem egy elore megadott ε tavolsagot figyel, hanem az aktualis pontbanmegvizsgalja a keresesi ter

”meredekseget” (gradienset), es abba az iranyba

fog lepni, amerre ez a legnagyobb es olyan mertekben, amekkora a gradiens

Page 28: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

20 2. FEJEZET. HEGYMASZO MODSZER

merteke. Tehat ha nagy a meredekseg akkor nagyot lep, ha kicsi, akkorkisebbet lep.

2.6.2. Dynamic Hill Climbing

Az utolso ket vizsgalt pont alapjan egy vektort szamıt. A tovabblepeskor ezta vektor iranyt is figyelembe veszi.

2.6.3. Greedy Randomized Adaptive Search Procedures(GRASP)

Veletlenszeruen valaszt kiindulo pontokat, majd egy lokalis kereses segıtsegevelprobalja ezeket finomıtani (ebben hasonlıt a hegymaszora). A kezdopontkivalasztasa azonban lehet joval osszetettebb, mint egy egyszeru veletlenvalasztas.

Bovebben: [2, 7]

2.7. Gyakorlati problemak

Ha az utazougynok problemat szeretnenk megoldani, akkor tetszoleges sor-rendben fel kell venni az osszes varost. Ez a kiindulo trivialis megoldas.Szomszedok alatt azokat az allapotokat ertjuk, ahol csak ket varos sorrendjekulonbozik (tehat ezek meg vannak cserelve). Ennek megfeleloen keressunkolyan szomszedot (tehat csereljunk meg ket varost), hogy az rovidebb utatadjon szamunkra. Ha talaltunk ilyet, akkor legyen ez az aktualis allapot,es folytassuk a keresest. Konnyen belathato, hogy nehany varos utan a de-terminisztikus megoldas mar nem fog mukodni, hiszen az osszes szomszedvizsgalatanak idoigenye exponencialisan novekszik.

Egy tombben levo szamok rendezeset is felfoghatjuk egyfajta hegymaszasnak.Ha az egymas melletti elemek nem jo sorrendben vannak, akkor megcsereljukoket, ezzel egy jobb allapotba kerulunk. Ez egy konvex feladat, tehat bizto-san megkapjuk a megoldast (gondoljunk csak a buborekrendezesre).

2.8. Felhasznalt irodalom

[7, 1]

Page 29: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

3. fejezet

Szimulalt lehutes

3.1. Alapelv

A modszer a hegymaszo alapu metodusokhoz hasonlo, vagy tekintheto akarazok tovabbfejlesztesenek is. A hegymaszo keresesek legnagyobb hibaja azvolt, hogy nagyon konnyen megakadtak a lokalis optimumokban. Csak kon-vex problemaknal tudtak garantalni a helyes megoldast, minden egyeb eset-ben csak akkor hasznalhatok hatekonyan, ha a kiindulo pont eleg kozel vanaz optimumhoz (es ez nem csak elvi kerdes, hanem a gyakorlat is azt a ta-pasztalatot mutatja, hogy a modszer csak lokalis optimalizalasra jo).

Ebbol a szempontbol meg egy teljesen veletlen vandorlas is hatekonyabblehet. Ugyan ez nem tudja garantalni a konvergenciat az optimum fele, delegalabb nem akad be a lokalis optimumokba, hiszen egy veletlen lepesselazokbol barmikor ki tud ugrani. Az alapotlet tehat az, hogy a ket modszerelonyeit probaljak meg otvozni egy globalis keresesben.

Az alapelv a kohaszatbol szarmazik: regota ismert teny, hogy kulonbozoanyagok minosege jelentosen javıthato egy vagy akar tobb egymast koveto fel-melegıtest es lehutest vegrehajtva. Napjainkban mar ismert, hogy ennek azaz oka, hogy az anyag felmelegıtese soran a kristalyszerkezet szetbomlik, ıgya zarvanyok eltunnek, az ezt koveto lehutes soran pedig az ujrakristalyosodasmellett is megmaradnak ezek a pozitıv jellemzok. A gyakorlati tapasztala-tok viszont mar regota azt mutatjak, hogy ez csak kontrollalt lehules soranerheto el, ha eleg lassu a lehules, akkor jobb szerkezet jon letre (sajat ter-minologianknal maradva eleri a globalis optimumot). Amennyiben a mun-kadarab tul gyorsan hul, akkor nem eri el az optimalis allapotot (egy lokalisoptimumban all meg a folyamat).

A fentieknek megfeleloen ezt a fizikai ihletesu modszerek koze soroljuk.Szamos ilyen algoritmus letezik, ugyanis mikent az evolucios rendszerek is a

21

Page 30: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

22 3. FEJEZET. SZIMULALT LEHUTES

termeszetet probaljak utanozni, ugy itt is errol van szo (tulajdonkeppen aztprobalja kovetni, mikent a fizikai rendszerek torekednek az energiaminimum-ra).

Ezt az alapelvet atultethetjuk az optimalizalasi feladatokra is: nem kenyszerıtjuka rendszert a tul gyors konvergenciara, mivel az (a hegymaszohoz hasonloan)belefuthat egy lokalis optimumba, ahonnan kesobb mar nincs lehetosegekilepni. Ehelyett a kiindulo allapotbol egy lassabb konvergenciat probalunkelerni ugy, hogy megengedjuk a negatıv iranyu lepeseket is. Legalabbisa kereses elejen meg mindenkeppen, a kesobbiekben pedig folyamatosancsokkentjuk ennek szerepet.

3.2. Megvalosıtas

3.2.1. Algoritmus

Az algoritmuson jol lathato a hegymaszo modszereknel mar megszokott alap-veto mukodes. Tehat elindul egy veletlen pontbol, es innen probal mindigjobb es jobb helyre atlepni. Kozben folyamatosan figyeli a megallasi feltetelt,es ha ez bekovetkezik, akkor kilep a ciklusbol.

A lenyeges kulonbseg csak az uj pont fitnesz ellenorzesenel lathato. Amennyi-ben az uj pont fitnesze jobb, mint az aktualis, akkor azonnal atlep, mint ahagyomanyos hegymaszo. Amennyiben az uj pont fitnesze rosszabb, akkorviszont a hegymaszoval ellentetben bizonyos esetekben atlephet, amit egyvaloszınuseggel fogunk meghatarozni.

Az anyagtudomanyi terminologianal maradva, ez a valoszınuseg fugg aT homerseklettol. Nagy T erteknel nagyobb valoszınuseggel engedjuk arossz lepeseket, kisebbnel pedig eppen ellenkezoleg. A kereses elejen tehatmeg megengedobbek vagyunk, de idovel egyre inkabb csak a lefele haladolepeseket fogjuk engedelyezni, mıgnem az algoritmus vegul teljesen a hegymaszohozhasonloan fog viselkedni. A homerseklet meghatarozasaval meg kulon foglal-kozunk.

A valoszınuseg fugg a ∆E energiavaltozas mennyisegetol is. Ez az aktualises a vizsgalt allapot kozotti energiaszint kulonbseget jelenti, jelen esetben eznem mas, mind az aktualis es az uj pont fitnesze kozotti kulonbseg (tehatpozitıv esetben azt mutatja, hogy mennyivel lepnenk rosszabb helyre). Aztmindig megengedjuk, hogy egy alacsonyabb energiaszintu allapotra lepjunkat.

A kB a Boltzmann allandora utal. Ez egy tetszoleges erteku konstans(ahol persze hasznalhatjuk annak fizikabol megismert erteket is). A P valoszınusegez alapjan mondja meg, hogy megadott homerseklet mellett, megadott ener-

Page 31: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

3.2. MEGVALOSITAS 23

3.1. Algoritmus SimulatedAnnealing

1: fuggveny SimulatedAnnealing(S, ds, f, ε, kB,Temperature,StopCondition)

2: prnd←−− S

3: popt ← p4: t← 05: ciklus amıg ¬StopCondition()6: t← t+ 17: q

rnd←−− {x ∈ S | ds(x, p) = ε}8: ∆E ← f(q)− f(p)9: ha ∆E ≤ 0 akkor

10: p← q11: ha f(p) < f(popt) akkor12: popt ← p13: elagazas vege14: kulonben15: T ← Temperature(t)

16: P ← e− ∆E

kBT

17: ha RNDu(0, 1) < P akkor18: p← q19: elagazas vege20: elagazas vege21: ciklus vege22: vissza gpm(popt)23: fuggveny vege

Page 32: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

24 3. FEJEZET. SZIMULALT LEHUTES

giaszint valtozas (kedvezotlen iranyba) milyen esellyel kovetkezhet be. Ezlehet egy kulonallo fuggveny is (elfogadasi valoszınuseg fuggveny 1).

A t valtozo szamolja, hogy hanyadik iteracional jarunk, a T pedig a maremlıtett homerseklet, ez folyamatosan csokken a szimulacio soran, ennek me-neterol kesobb reszletesebben ertekezunk.

A hegymaszoval ellentetben itt mar lephetunk rossz iranyba is, tehat a perteke nem mindig az aktualis legjobb helyet mutatja. Ezert valahol el kelltarolnunk az eddig talalt legjobb pozıciot, erre szolgal a popt valtozo. Ez leszaz egesz fuggveny visszateresi erteke is.

3.2.2. Parameterezes

Pusztan a valoszınuseget szamıto utasıtas formai vizsgalatabol is jol lathatoaz egyes parameterek hatasa:

1. Minel nagyobb a T , annal megengedobbek vagyunk a kedvezotlen valtozasokfele.

2. Minel kisebb a T , annal kevesbe vagyunk megengedok a kedvezotlenvaltozasok fele. T = 0 az osztas miatt nem lehet, de ahhoz kozeliertekeknel mar szinte hegymaszokent mukodik az algoritmus.

3. A kB minel nagyobb, annal megengedobb a rendszer.4. A kB minel kisebb, annal szigorubb a rendszer.5. A ∆E minel nagyobb, annal kisebb az esely az elfogadasra.6. A ∆E minel kisebb, annal nagyobb az esely az elfogadasra.

3.2.3. Homerseklet meghatarozasa

Fontos kerdes a Temperature fuggveny megvalosıtasa, mivel ez iranyıtja alehules sebesseget. Ez egy tetszoleges fuggveny lehet, csak annyi a megkotesunk,hogy T = 0 fele kozelıtsen (es altalaban elvarjuk, hogy monoton csokkenolegyen).

Idokorlatos esetben

Ha van egy tmax felso idokorlatunk, akkor a homerseklet szamıthato az alabbimodon:

Temperature(t) = Tmax ∗ (1− t

tmax)α (3.1)

Ahol Tmax a kiindulo homersekleti ertek. Az α ertekevel pedig lehetbefolyasolni a homersekletet leıro gorbe erteket. Tipikus ertekei lehetnek az

1acceptance probability function

Page 33: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

3.3. ERTEKELES 25

1, 2, 4, stb. Nagyobb α ertek meredekebb lehulest jelent a kezdeti idoszakban,tehat ilyenkor a rendszer tobb idot tolt majd az alacsonyabb homersekletuteruleteken.

Idovel lassulva csokkeno

Amennyiben nem ismert a teljes idokorlat, akkora fenti keplet nem mukodhet.Ilyenkor lehetoseg nyılik arra, hogy folyamatosan egy megadott ertekkel csokkentsuka homersekletet:

Temperature(t+ 1) = Temperature(t) ∗ (1− ε) (3.2)

Az 0 < ε < 1 parameterrel tudjuk meghatarozni, hogy mennyire gyorsancsokkenjen a homerseklet.

A fentit kiegeszıthetjuk azzal, hogy nem minden lepesben, hanem csakminden m. lepesben csokkentjuk a homersekletet. Ezzel egy lepcso formajucsokkenest eredmenyezunk.

Fitnesz fuggo

Szinten logikus gondolat lehet a fitneszhez kotni a homerseklet erteket. Ittabbol indulhatunk ki, hogy a kereses elejen (amikor meg nagy az aktualiselemhez tartozo fitnesz fuggveny erteke) szeretnenk megengedni a nagy ki-lengeseket, viszont ahogy egyre inkabb kozelıtunk a globalis optimumhoz(egyre kisebb a fitnesz), ezzel egyutt szeretnenk egyre szigorubb konvergen-ciat, itt mar ne ugorjon le a kereses a megtalalt utrol.

Ennek egy megvalosıtasa lehet:

Temperature = max(β(f(popt)− f(p)), γ) (3.3)

Ebben az esetben nincs is szukseg a t valtozora, hiszen a homerseklet nemfugg az iteraciok szamatol (masra pedig nem hasznaltuk).

A β erteke celszeruen egy kıserletekkel megallapıtott konstans. Ertekeminel kisebb, annal kevesbe fogja a rendszer engedni a negatıv iranyba valolepeseket.

A γ szerepe pedig csak annyi, hogy elkerulje a homerseklet nullas erteket,mivel ez a kesobbi osztasnal problemakhoz vezetne. Ezert ezzel egy alsokorlatot tudunk beallıtani (γ > 0).

3.3. Ertekeles

+ A kereses rendelkezik a hegymaszonal megismert elonyokkel (egyszeru,hatekony, stb.).

Page 34: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

26 3. FEJEZET. SZIMULALT LEHUTES

+ Nincs szukseg populaciora, csak egyetlen elemet mozgatunk a keresesiterben.

+ A hegymaszoval ellentetben van ra lehetoseg, hogy kiugorjon a lokalisoptimumokbol.

+ Bizonyıthato, hogy megfeleloen valasztott hutesi karakterisztika esetenaz algoritmus biztosan megtalalja a globalis minimumot.

– Lepesszama a rossz iranyu lepesek miatt joval nagyobb lehet, mint ahegymaszoe.

– Ennek megfeleloen a futasideje is kedvezotlenebb, olyan feladatoknalhasznalhato jol, ahol inkabb tobb idot szanunk egy globalis optimummegtalalasara, semmint hogy gyorsan kapjunk egy lokalist.

– A hegymaszohoz kepest joval tobb parametert igenyel, amelyeknekgyakran nem egyszeru a meghatarozasa.

3.4. Kiegeszıtesi lehetosegek

� Itt is hasznalhatok a hegymaszo modszereknel mar megismert meta-heurisztikak. Ilyen peldaul a random ujraindıtas lehetosege. Ez ki-egeszıtheto a Tabu keresesnel megismert funkciokkal, illetve elkepzelhetoaz is, hogy elozoleg jonak tuno allapotokbol indıtjuk ujra a keresest.

� Vannak olyan valtozatok, amelyek nem leptetnek at kotelezoen a kisebbenergiaszintekre, hanem ott is csak egy valoszınusegi probat tesznek.

3.5. Gyakorlati problemak

A hegymaszo algoritmusnal megismert feladatok minimalis valtoztatassalmegoldhatok szimulalt lehutessel is.

Mint metaheurisztika, hozzaepıtheto mas heurisztikakhoz is, peldaul ge-netikus algoritmushoz is. Ez esetben a szelekcional megengedjuk az egyebkentnem nyero elemeknek is a szaporodast bizonyos valoszınuseggel.

3.6. Felhasznalt irodalom

[7, 1]

Page 35: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

4. fejezet

Veletlen Optimalizalas

4.1. Alapelv

A mar megismert hegymaszo algoritmus szamos hatrannyal bır, ezek kozulaz alabbiakra probal megoldast nyujtani ez a modszer:

� Tobbdimenzios kereses eseteben a hegymaszo algoritmust altalabanugy implementaljuk, hogy egy idoben mindig csak egy parameter erteketvaltoztatja meg. Ez problemat okoz a tengelyekkel nem parhuzamos

”hegygerinceken” keresztul vezeto utaknal. Hatekonyabb lenne, ha

ezektol eltero iranyba is tudna lepni.� A hegymaszonal rogzıtve volt a lepes tavolsag (ε). Ez altalaban eleg

kicsit ertek volt, hogy tenylegesen”szomszedokat” vizsgaljunk. Ennek

beallıtasa azonban meglehetosen nehez, hiszen tul kis lepes eseten las-san konvergal az algoritmus, tul nagy lepeseknel pedig atugorhatja azoptimalis pontot.

� A legnagyobb problema, amit mindig megemlıtunk a hegymaszonal,hogy nagyon konnyen beragad a lokalis optimumokba.

A veletlen optimalizalas1 alapelve teljesen megegyezik a hegymaszonaltanulttal: egy darab elemet vizsgal, ami egy veletlen allapotbol indul ki, esminden lepesben probalja ezt elhelyezni egy jobb fitnesszel bıro pozıcioba.Attol azonban kulonbozik nehany jellemzojeben: nem csak a tengelyek irantielmozdulast figyeli, es a lepes merete nem fix, hanem egy eloszlas alapjanlesz meghatarozva.

Ez valojaban nem magahoz a modszerhez kapcsolodik, de ennel a modszernelmutatunk egy peldat a celfuggveny (f) es a peremfeltetelek (C halmaz)megkulonboztetesere.

1random optimization

27

Page 36: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

28 4. FEJEZET. VELETLEN OPTIMALIZALAS

4.2. Megvalosıtas

4.2.1. Algoritmus

4.1. Algoritmus RandomOptimization

1: fuggveny RandomOptimization(S, f, C, µ, σ,StopCondition)

2: prnd←−− S

3: ciklus amıg ¬StopCondition()

4: step←

RNDn(µ1, σ1)RNDn(µ2, σ2)

...RNDn(µdim(S), σdim(S))

5: q ← p+ step6: ha ∀c ∈ C | c(q) ≥ 0 akkor7: ha f(q) < f(p) akkor8: p← q9: elagazas vege

10: elagazas vege11: ciklus vege12: vissza gpm(p)13: fuggveny vege

A kereses indıtasa meg megegyezik a hegymaszonal latottal, tehat a ke-resesi ter egy veletlen pontjabol indıtjuk a p valtozot.

Ezt kovetoen megallapıtjuk a tovabblepes iranyat. Ez nemileg osszetet-tebb mint a hegymaszo eseteben, mivel itt:

� tobbdimenzios ter eseteben minden dimenzioban lepunk,� nem egy fix tavolsagot lepunk, hanem ezt egy (ν, σ) parameteru normal

eloszlassal hatarozzuk meg.Az p pozıciohoz minden lepesben hozzaadjuk az ıgy szamıtott iranyvektort,

majd ezt hasonlıtjuk ossze az aktualis ponttal. Amennyiben ez jobb, akkoratlepunk, ha nem, akkor pedig nem.

Az algoritmus vegez egy vizsgalatot arra is, hogy az uj pont megfelel-eaz atadott peremfelteteleknek. Amennyiben nem, akkor termeszetesen nemleptetjuk at.

4.2.2. Megjegyzesek

� A µ ertekek a haladasi iranyt befolyasoljak. Tipikusan 0 lehet egykiegyensulyozott ertek. Pozitıv vagy negatıv ertek megadja a haladasi

Page 37: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

4.3. ERTEKELES 29

iranyt.

� A σ ertekek a veletlen szamok meretet befolyasoljak. Ezt altalabankicsinek valasztjuk, hiszen szomszedsagot szeretnenk vizsgalni.

� Mivel a normal eloszlas nem korlatos, ıgy barmilyen parametereket isvalasztunk, mindig lesz nemi esely egeszen nagy pozitıv vagy negatıviranyu lepesekre. Ez adja meg az algoritmus lehetoseget arra, hogy kitudjon lepni egy lokalis optimumbol.

� A µ es σ ertekek futas kozben is valtoztathatok (pl. egyre jobb fitneszeseten csokkenteni ez utobbit). Ez jelentosen javıthatja a konvergen-ciat.

4.3. Ertekeles

+ Rendelkezik a hegymaszo alapu modszerek mar megismert elonyeivel.

+ Nagyobb esellyel lep ki a lokalis optimumokbol, mint a hegymaszo.

+ Elvileg mindig megtalalja a globalis optimumot (vegtelen ido alatt).

– Nem determinisztikus modszer.

– A mozgas iranyat megado vektor szerkezetebol adodoan ez csak RNkeresesi terben hasznalhato.

4.4. Felhasznalt irodalom

[7, 1]

Page 38: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

30 4. FEJEZET. VELETLEN OPTIMALIZALAS

Page 39: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

5. fejezet

Tabu kereses

5.1. Alapelv

A hegymaszo algoritmus egyik hatranya, hogy konnyen beragad a lokalisoptimumokba, ezert mar ott is felmerult az otlet, hogy egymas utan tobbszorkellene elindıtani, kulonfele kiindulo allapotokbol, ezzel is novelve annak azeselyet, hogy talaljunk egy jobb megoldast. Mivel maga az alap keresesmeglehetosen kis eroforrasigennyel bır, ıgy ez altalaban egy jol hasznalhatokiegeszıtes.

Ezek a keresesek alapvetoen teljesen fuggetlenek, ami abbol a szempontbolnem szerencses, hogy a kulonbozo helyekrol indıtott keresesek is befuthatnakugyanazokba az utakba, ahol varhatoan ugyanahhoz a vegeredmenyhez isfognak elerni. Emiatt celszeru lenne egy kozos helyen eltarolni a mar meg-tett utakkal kapcsolatos tudast, hogy a kesobbi keresesek ez alapjan marhatekonyabbak lehessenek.

A tabu kereses1 modszer eppen ezt teszi, folyamatosan tarolja az egyeslepeseket, illetve azt is figyeli, hogy az aktualis lepes nem jutott-e olyanhelyre, amit mar elozoleg megvizsgaltunk (ebben az esetben nyugodtan le isallıthatjuk, es ujraindıthatjuk egy masik helyrol). A modszer terminologiajatkovetve ez azt jelenti, hogy minden egyszer mar meglatogatott hely

”tabu”

lesz, tehat a kesobbiekben nem szabad megvizsgalni.

Ehhez hasonlo modszert mar felvazoltunk a hegymaszo megvalosıtasokkozott is, az azonban a gyakorlatban nem volt jol hasznalhato. Egy konkretalkalmazasnal ugyanis felmerul szamos problema, amit kezelnunk kell:

� ha minden lepes pozıciojat el akarjuk tarolni, annak mar rovid tavonis oriasi lesz a memoriaigenye;

1tabu search

31

Page 40: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

32 5. FEJEZET. TABU KERESES

� a nagy memoriaigeny mellett problemat jelent az is, hogy mikent tu-dunk keresni ebben a nagy adatbazisban (hiszen minden lepesnel egykeresest is vegre kell hajtanunk).

5.2. Megvalosıtas

5.2.1. Algoritmus

5.1. Algoritmus TabuSearch

1: fuggveny TabuSearch(S, ds, ε, f,StopCondition)2: popt ← ø3: ciklus amıg ¬StopCondition()

4: prnd←−− S

5: SetTabuBarrier()6: stuck ← hamis7: ciklus amıg ¬stuck ∧ ¬IsTabu(p) ∧ ¬StopCondition()8: ha popt = ø ∨ f(p) < f(popt) akkor9: popt ← p

10: elagazas vege11: AddTabu(p)12: PurgeTabu()

13: qargminf(x)←−−−−−− {x ∈ S | ds(x, p) = ε}

14: ha f(q) < f(p) akkor15: p← q16: kulonben17: stuck ← igaz18: elagazas vege19: ciklus vege20: ciklus vege21: vissza gpm(popt)22: fuggveny vege

Az alapveto mukodesen jol latszik a hegymaszo algoritmus hatasa. Alenyeges kulonbseget csak a tabu tarhelyet kezelo kiegeszıto muveletek, illet-ve a ciklus kilepesi feltetelenek modosıtasa jelenti olyan modon, hogy tabuponthoz erve azonnal abbahagyja a belso ciklus futtatasat.

Az algoritmus altal hasznalt segedfuggvenyek:

Page 41: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

5.3. TABU TARHELY KEZELESE 33

� SetTabuBarrier: ez a fuggveny elhelyez egy jelzest a tabu pontoklistajaba, ami azt jelzi, hogy az ezt koveto pontok az aktualis keresesheztartoznak. Ez azert fontos, hogy maga a kereses ne akadjon ossze sajatpontjaival.

� IsTabu: elvegez egy keresest a tabu tarhelyen, es igazat ad akkorvissza, ha a parameterkent atadott pozıcio tabunak minosul.

� AddTabu: felvesz egy uj elemet a tabu tarhelyre.

� PurgeTabu: karbantartja a tabu tarhelyet (tomorıti).

5.2.2. Megjegyzesek

Bar nem feltetel, de itt a determinisztikus hegymaszo algoritmust vettuk fi-gyelembe. Ebben az esetben nyilvanvalo a tabu kiegeszıtes szerepe, hiszenha akar egyszer is egy olyan pontba lepunk, ahol mar jartunk, akkor az al-goritmus determinisztikus voltanak koszonhetoen egeszen biztosan ugyanodajutunk, ahova az elozo kereses soran.

A kereseskor nem csak magat a konkret elem pozıciojat kereshetjuk a ta-bu tarhelyen, hanem akar annak egy bizonyos kornyezetet. Amennyiben (le-begopontos) szamokkal dolgozunk, akkor tobbnyire ennek van csak ertelme,egy tobbdimenzios feladatnal kicsi lehet annak az eselye, hogy tobbszor isbefusson az algoritmus pontosan ugyanabba a pontba.

5.3. Tabu tarhely kezelese

5.3.1. Tarolas

Az adatok tarolasanal meg kell talalni az egyensulyt a helyfoglalas es a gyorskeresesi/modosıtasi lehetosegek kozott.

Vegtelen lista

A legegyszerubb eset, ilyenkor minden mar megvizsgalt megoldasi lehetosegbekerul a listaba. Vegtelen alatt termeszetesen nem azt ertjuk, hogy atenyleges fizikai merete is lehet vegtelen, menet kozben a karbantarto funk-ciok esetenkent csokkenthetik annak meretet.

Page 42: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

34 5. FEJEZET. TABU KERESES

Hasıto tablak

Bizonyos szempontbol idealisak lehetnek a tabu elemek tarolasara, hiszeneppen hasonlo feladatokra lettek kitalalva. Nagyon gyorsan, a kulcsutkozesektolfuggoen nehany lepessel el tudjak tarolni az elemeket, es kozel ugyanennyiido alatt vissza is tudjak keresni. Jelentos hatranyt jelent azonban, hogyıgy csak teljes egyezesre tudunk keresni, olyanra nincs mod, hogy egy tabuelemtol megadott tavolsagon belul levo elemeknel is jelezzunk.

Tulajdonsagok tarolasa

A feladat pontosabb ismereteben van lehetoseg joval hatekonyabb megoldasokkeszıtesere. Ezek egyike az, hogy ha nem magukat az ut kozben erintett meg-oldasokat taroljuk el kozvetlenul, hanem csak azok valamely tulajdonsagait,amely alapjan mar utolag eldontheto, hogy valami a tabu lista resze, vagypedig sem. De ehhez ismerni kell a keresesi ter pontos szerkezetet, es fennallannak a kockazata is, hogy kizarunk egyebkent jonak tekintheto elemeket.

Valtozasok tarolasa

Arra is van lehetoseg, hogy nem kozvetlenul magukat az egyes megoldasjelolte-ket, hanem az azok kozotti valtozasokat taroljuk el tabu elemkent. Ennekmegfeleloen, ha a kesobbi keresesben egy ugyanilyen valtozast probalnakvegrehajtani, akkor ezzel megsertenenk a tabu szabalyokat.

5.3.2. Kereses

Mivel maga a kereses minden egyes lepesben meghıvodik, fontos, hogy minelhatekonyabban tudja megadni, hogy egy elem szerepel-e a tabu listaban, vagysem. A tarolasi mod persze jelentos reszt meghatarozza a keresesi modszertis.

Linearis kereses

Amennyiben a tarolas egy egyszeru listaban tortenik, akkor a keresesre nincsmas megoldas, mint a hagyomanyos linearis kereses. Ez termeszetesen na-gyon idoigenyes, pedig sokszor kell vegrehajtani, minden lepes elott.

Terbeli indexeles

A geoinformatikabol is jol ismert modon, celszeru lehet felbontani a tel-jes keresesi teret kisebb reszteruletekre. Ezeken a teruleteken kulon-kulon

Page 43: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

5.4. ERTEKELES 35

vegezzuk el az elemek tarolasat, akar egy sajat lista, vagy egyeb szerkezetsegıtsegevel. Konnyen belathato, hogy ha egy nagy listat sikerul felbonta-ni tobb, azonos hosszusagu reszre, akkor meg az egyszeru linearis kereses isjelentosen gyorsıthato (amennyiben tudjuk persze, hogy melyik listaban kellkeresnunk).

Hasznalatanak azonban gatat szabhat, hogy ehhez jol kell ismernunk akeresesi teret. Ezt ugy kell felbontani, hogy az egyes reszteruletekben azonoslegyen az eltarolt pontok szama. Amennyiben csak nehany reszterulet tar-talmazza a pontok tobbseget, mıg a tobbi teruleten minimalis ezek szama,akkor a modszer elonye eltunik.

5.3.3. Karbantartas

A karbantartas is jelentosen fugg a mar meglevo tarolasi modtol. Itt alap-vetoen arra celszeru torekedni, hogy megprobaljuk a listat minel kisebb meretunekmegtartani olyan feltetelek mellett, hogy lehetoleg ne seruljon annak in-formaciotartalma.

FIFO lista

A gyakorlatban a vegtelen lista termeszetesen nem mukodhet, a legegy-szerubb esetben egy FIFO listat hasznalhatunk helyette. Ebben az esetbena tabu lista tulajdonkeppen egy sorkent mukodik. Folyamatosan el tudjukbenne helyezni az elemeket, es amikor az eleri a maximalis meretet, akkor akovetkezo elem elhelyezesekor kivesszuk a legregebbit.

Nem feltetlenul szerencses ez a megvalosıtas, hiszen a tabu listaba kerulesidejenek nincs koze az elem hasznossagahoz (tehat nem biztos, hogy a legregebbieketcelszeru torolni).

Klaszterezes

Egy joval bonyolultabb, de idealis karbantartasi modszer az lehet, hogy ha azegyes tabu elemek kozott elvegzunk egy klaszterezesi muveletet. Ennek kime-netekent megkapjuk az egymashoz kozeli tabu pontok halmazait. Ezen hal-mazokbol celszeru ugy torolni pontokat, hogy a halmaz altal lefedett teruletne valtozzon.

5.4. Ertekeles

+ Rendelkezik a hegymaszo alapu modszerek mar megismert elonyeivel.

Page 44: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

36 5. FEJEZET. TABU KERESES

+ Tobbszori ujraindıtas utan jelentosen csokkentheti a futasidot.

+ Foleg determinisztikus kereseseknel hatekony, mivel ott mindig ugyan-oda vinne a folytatas egy mar megvizsgalt pontbol.

+ A modszer, mint metaheurisztika alapvetoen nem csak a hegymaszonalhasznalhato, mas heurisztikak is kiegeszıthetoek ezzel.

– Csak kismeretu keresesi tereknel mukodik hatekonyan. Ha tul nagy ater, akkor tul nagy lesz a modszer tarhelyigenye, tul lassu az ebben valokereses, es meg ıgy is nagyon kicsit lehet annak a valoszınusege, hogytobbszor is ugyanabba a pontba teved az algoritmus.

– A kereses lepes meglehetosen idoigenyes lehet, ezert egyaltalan nemgarantalhato, hogy gyorsabb lesz a tabu kereses, mint a hagyomanyoshegymaszo.

5.5. Kiegeszıtesi lehetosegek

5.5.1. Tovabbi memoriateruletek bevezetese

A megismert alapmodszer jol hasznalhato kisebb, egyszerubb feladatoknal, dekomplexebb feladatoknal, es nagyobb keresesi ternel gyakran nem hatekony.A fenti bemutatott elv valojaban csak egy reszet mutatta be a tabu keresesalgoritmusnak, annak csak a rovid tavu memoria tartomanyat2 hasznalja.Igy nevezzuk azt a teruletet, ahol a kesobbi keresesekbol kizarando elemeketgyujtjuk.

Osszetettebb esetekben szukseg lehet hosszabb tavu memoria hasznalatara3.Ennek funkcioja kettos lehet:

� Erosıtes4: celja a kivalasztasi szabalyok olyan iranyu modosıtasa, hogya keresest minel inkabb az eddigi vizsgalatok alapjanjonak tuno terule-tek fele terelje.Ennek egy egyszeru megoldasa lehet, ha kereses kozben folyamatosangyujtjuk az eddigieknel jobbnak talalt pozıciokat, es a kesobbi keresesekkezdopontjat ezek kozul indıtjuk. Ugyanıgy arra is lehetosegunk van,hogy a kereses kozbeni veletlen szomszedvalasztast befolyasoljuk, esnemileg modosıtjuk az eddig talalt legjobb megoldasok adatai alapjan.

2short-term memory3longer-term memory4intensification

Page 45: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

5.6. FELHASZNALT IRODALOM 37

� Szetosztas5: ennek hatasa ellentetes az elozovel. Alapvetoen az a celja,hogy a keresesi ter minel nagyobb reszet bejarjak az egymas utanindıtott keresesek, ennek megfeleloen probalja azokat a meg fel nemfedezett teruletek fele terelni.Ennek egy megoldasa lehet, ha a tovabblepes soran a veletlen lepesekhelyett nemileg elonyben reszesıtjuk a megoldas azon reszkomponenseit,amelyeket eddig nem vizsgaltunk melyebben.

5.6. Felhasznalt irodalom

[7]

5diversification

Page 46: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

38 5. FEJEZET. TABU KERESES

Page 47: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6. fejezet

Evolucios algoritmusok

6.1. Alapelv

A heurisztikus algoritmusok egyik legismertebb csoportja az evolucios algo-ritmusok. Ezen modszerek alapelvuket a termeszetes szelekciobol (evolucio)merıtik, ahol jol lathato, hogy nincs semmilyen felsobb vezerlesi elv, hanemegyszeru torvenyszerusegek iranyıtjak a populacio tulajdonsagait: a jobbkepessegu elemek nagyobb esellyel maradnak eletben, nagyobb esellyel szapo-rodnak, ıgy az o tulajdonsagaik oroklodnek tovabb a kesobbi generaciokba.

Ez evolucios modszerek is ehhez hasonlo modon mukodo populacio alapualgoritmusok, amelyek az alabbi biologiailag inspiralt mechanizmusokon ala-pulnak:

� termeszetes kivalasztas: a legjobb tulajdonsagu elemek elnek tul/szaporodnaka legnagyobb esellyel,

� keresztezes: az uj egyedek a kivalasztott szulok tulajdonsagait oroklikvalamilyen kombinacioban,

� mutacio: az egyedek tulajdonsagai bizonyos valoszınuseggel veletlenszeruenmegvaltozhatnak,

� legjobbak tulelese: a legjobb elemek jo esellyel tulelnek.

A keresesi ter (S) az egyes megoldasjelolteket tartalmazza, ezeket fog-juk egyedeknek nevezni (vagy kromoszomanak, ha maradunk a hagyomanyosbiologiai nevezektannal). Tobbdimenzios ter eseteben nem csak egy, hanemtobb parameter erteket keressuk, ezeket nevezzuk geneknek.

A modszer itt nem egy darab, hanem egy idoben tobb megoldasjelolt-tel dolgozik, ezek osszesseget nevezzuk populacionak (P ), ahol minden egyedvalojaban egy lehetseges megoldasjeloltet reprezental. A modszer egy veletlenszerukiindulo allapotbol indul, majd a fenti szabalyok szerint tobb iteracion ke-resztul finomıtja az egyes egyedek parametereit. Eredmenykent azt varjuk,

39

Page 48: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

40 6. FEJEZET. EVOLUCIOS ALGORITMUSOK

hogy az algoritmus leallıtasakor a populacio egyedei jo fitnesz erteku meg-oldasjelolteket fognak kepviselni.

Tobbfele evolucio alapu modszert kulonboztethetunk meg (genetikus al-goritmus, evolucios strategia, stb.), mivel egymastol fuggetlenul/egymas hatasarasokfele valtozatot dolgoztak ki. Ezek kulonbsegeibe, illetve az egyebkentis meglehetosen nehezen kovetheto nevezektanba nem merulunk el. Ennekazert se lenne ertelme, mert az egyes modszerek otleteibol konnyen ossze le-het allıtani egy sajat megoldasi javaslatot. Ezert itt csak felsorolasszeruenvizsgaljuk a lehetseges alteruleteket, fuggetlenul attol, hogy azt ki es melyikmodszer reszekent publikalta.

6.2. Megvalosıtas

6.2.1. Algoritmus

6.1. Algoritmus GeneticAlgorithm

1: fuggveny GeneticAlgorithm(S, f,StopCondition)2: P ← InitializePopulation(S)3: Evaluation(P, f)

4: pbestargminf(x)←−−−−−− {∀x ∈ P}

5: ciklus amıg ¬StopCondition()6: (P ′,M)← SelectParents(P, f)7: ciklus amıg |P ′| < |P |8: (p1, p2, ..., pk)← Selection(M, f)9: c← CrossOver(p1, p2, ..., pk)

10: c←Mutate(c)11: P ′ ← P ′ ∪ {c}12: ciklus vege13: P ← P ′

14: Evaluation(P, f)

15: pbestargminf(x)←−−−−−− {∀x ∈ P}

16: ciklus vege17: vissza gpm(pbest)18: fuggveny vege

Az algoritmus elso lepeskent letrehozza a veletlen populaciot. Az Initialize-Population fuggveny szerepe, hogy legeneralja a szukseges szamu veletlenegyedet a keresesi ter alapjan. Ezt kovetoen az Evaluation fuggveny

Page 49: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6.3. REPREZENTACIO 41

meghıvasaval kiertekeli a populacio minden egyedet a parameterkent atadottfitnesz fuggveny alapjan. Ugy tekintjuk, hogy ekkor minden p elem kap egyp.fitness erteket, amely a josagat jelzi. A kovetkezo sorban kivalasztjuk apopulacio azon elemet, amelyik a legjobb fitnesz ertekkel bır, ezt elhelyezzuka pbest valtozoban. A fenti elokeszıtes utan elindul a program fo ciklusa, amelyegeszen addig fog futni, amıg nem teljesul valamelyik megallasi feltetel.

A ciklus elso lepesekent megtortenik a leendo szulok kivalasztasa. A Se-lectParents fuggveny a populaciobol a fitnesz fuggveny alapjan kivalasztjaa P ′ es M halmaz elemeit. A P ′ halmaz lesz majd a kovetkezo generacio, eb-be azonnal bekerulnek azok az elemek, akiket nem szeretnenk versenyeztetni(elitizmus). Az M halmaz pedig a szulojeloltek allomanya1.

A belso ciklus elkezdi feltolteni a kovetkezo generaciot elemekkel, ezegeszen addig tart, amıg eleri a szukseges elemszamot. A ciklus elsokentkivalaszt k darab elemet a Selection fuggveny segıtsegevel, ezek lesznek ap1, p2, ..., pk elemek. A kovetkezo lepesben a keresztezessel ezekbol letrehozegy uj c egyedet a CrossOver fuggveny segıtsegevel. Vegul a Mutatefuggveny segıtsegevel elvegzi a szukseges mutaciot ezen az elemen. A fentilepesek vegeztevel elhelyezi az elemet a kovetkezo populacioban.

Miutan vegzett a belso ciklus, aktualizaljuk a populacio elemeit. Ezeketujra kiertekeljuk, illetve kivalasztjuk az aktualis legjobb elemet.

A kilepesi feltetel teljesulese utan a fuggveny visszateresi erteke a legjobbmegoldas lesz a problematerben.

6.3. Reprezentacio

6.3.1. Kromoszoma

Az elso kerdes, amit tisztaznunk kell az az, hogy milyen formaban szeretnenka kromoszomak adatait eltarolni. A tarolas modjatol fuggoen mas-mas elne-vezest hasznalhatunk az evolucios algoritmusunkra, az egyszeruseg kedveertezzel nem foglalkozunk.

Alapvetoen ket fo irany kozott donthetunk:

� A genotıpus jellegu tarolas soran egy bit sorozatkenti tarolast alkalma-zunk. Ez a modszer jelenik meg a hagyomanyos megvalosıtasokban esez tekintheto a legaltalanosabb megoldasnak is. Ehhez ertelemszeruenszuksegesek kulonfele lekepezesek, amelyek a megoldasbol bitsorozatothoznak letre, illetve elvegzik a visszaalakıtast. Ez lehet egyszeruen a

1mating pool

Page 50: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

42 6. FEJEZET. EVOLUCIOS ALGORITMUSOK

megoldas szamertekeinek binaris abrazolasa, de jo hasznat vehetjuk aGray kodolas elonyos tulajdonsagainak.

� A fenotıpus jellegu tarolas eseten a kromoszoma kozvetlenul a megoldasadatait tartalmazza, tehat pl. egesz szamok, lebegopontos szamok so-rozatakent kepzeljuk el. Az algoritmus tehat kozvetlenul a megoldaskomponenseit latja.

A ket alapelv kozott nem maga a fizikai tarolas kulonbsege az erdekes, hiszennyilvanvaloan az egesz szamok is binaris formaban tarolodnak a memoriaban,tehat ilyen szempontbol nincs kulonbseg. A lenyeges kulonbseg a muveletekmegvalosıtasa, hiszen a keresztezes/mutacio soran a fenotıpus jellegu tarolastisztaban lehet a megoldas szerkezetevel, ıgy annak megfeleloen dolgozik vele.A binaris tarolas eseten viszont csak egy teljesen lecsupaszıtott egyszeru bitsorozatot lat az algoritmus, ıgy azt csak teljesen altalanosan tudja kezelni.Ilyenkor peldaul elkepzelheto, hogy keresztezes soran a leszarmazott egy szamelso bitjeit az egyik szulotol, a tobbi bitet pedig egy masik szulotol kapja.

Egy masik fontos dontes, ami feladattol fugg, az az, hogy milyen legyena kromoszoma hossza:

� Fix hosszusagu esetben a programozas ertelemszeruen egyszerubb, hi-szen minden egyed egy tombben el tudja tarolni a szukseges adatokat.Minden, az egyedekkel vegzett muvelet ugyanolyan hosszusagu kro-moszomakat fog eredmenyezni.

� Valtozo hosszusagu kromoszomakra is szukseg lehet bizonyos felada-tok megoldasanal, peldaul egy utkeresesi problema megoldasa soran,ahol nem tudjuk elore, hogy milyen hosszu utat keresunk. A technikaikulonbsegeken tul (az adatokat dinamikus szerkezetben kell eltarolnunk)felmerulnek elvi kerdesek is, peldaul a keresztezes soran kulonbozohosszu kromoszomak jelenhetnek meg bemenetkent, illetve a mutaciosoran is elofordulhat, hogy valtozik a kromoszoma hossza.

Intronnak nevezzuk a kromoszomak azon reszeit, amelyek nem vesznekreszt a fenotıpus kialakıtasaban (termeszetben is van ehhez hasonlo inaktıvresz a DNSben).

6.3.2. Populacio

A populacio eseten nem is maga az eltarolas a kerdes, ezt tobbnyire egyegyszeru halmazzal meg tudjuk valosıtani. Inkabb azt erdemes megvizsgalni,hogy milyen kapcsolatban vannak egymassal az egymast koveto generaciok.Alapvetoen ket fo iranyt kulonboztethetunk meg:

Page 51: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6.4. FITNESZ HOZZARENDELES 43

� Generacios2 algoritmusnak nevezzuk azokat, amelyek eseten a kovet-kezo generacio mindig csak az utodokat tartalmazza, a szulok kozulviszont mar egyet sem. Itt meg talalkozhatunk tovabbi fogalmakkal:

– Left extinctive selection: a legjobb egyedeket kizarjuk a szapo-rodasbol, ok nem orokıthetik tovabb a genjeiket. Ezzel a modszerelprobaljuk megelozni a tul korai konvergenciat.

– Right extinctive selection: a legrosszabbak egyedek nem szapo-rodhatnak, hogy ne rontsak le a populacio genkeszletet.

� Konzervalo kivalasztas3 eseten a kovetkezo populacio tartalmazhatjaaz elozo generacio elemeit (tehat a szuloket), illetve az ujonnan ge-neralt leszarmazottakat. Alapvetoen ez all kozel a valo vilag biologiairendszereihez, hiszen altalaban a szulok tulelik az utodok letrehozasat,es a leendo uj populacioban egyutt leteznek.

Elterjedtek bizonyos jelolesmodok, amelyek egyertelmusıtik a kovetkezogeneraciok keszıtesi strategiajat:

� (µ, λ) strategia: Itt λ mutatja a leszarmazottak szamat, µ pedig aszulok szamat. Mukodese szerint osszesen keszıtunk λ darab leszarmazottat(λ ≥ µ), es ezek kozul meghagyjuk a µ darab legjobbat. Mind aszuloket, mind a λ−µ darab legrosszabb leszarmazottat eldobjuk (tehatez egy tipikus generacios modszer).

� (µ + λ) strategia: Itt λ datab leszarmazottat keszıtunk µ darab szuloalapjan (altalaban λ > µ). A szuloket es leszarmazottakat ezt kovetoenegy kozos halmazba helyezzuk (innentol mar lenyegtelen, hogy ki me-lyik generacioban jott letre), es csak a legjobb µ darab egyedet hagyjuktulelni (ez tehat egy tipikus konzervalo megvalosıtas).

6.4. Fitnesz hozzarendeles

Mikent errol volt szo, a pszeudokod Evaluation fuggvenye minden egyedhezhozzarendel egy fitnesz erteket, amit jelen esetben az egyszeruseg kedveertegy egyszeru szamkent tekintunk, ami minel kisebb, annal jobb maga azegyed. A

”jobb” jelen esetben sokmindent jelenthet, alapvetoen arra gondo-

lunk, hogy mennyire szeretnenk tamogatni ot a reprodukcioban. Ez foleg azegyed tulajdonsagaitol fugg, de erre hatassal lehet annak kornyezete is (pl. atobbi egyedtol vett tavolsaga, stb.). Erre a hozzarendelesre szamos modszerall rendelkezesre.

2generational3preservative selection

Page 52: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

44 6. FEJEZET. EVOLUCIOS ALGORITMUSOK

6.4.1. Egyszeru fitnesz fuggveny

A legegyszerubb megoldas soran klasszikusan egy darab fitnesz fuggvenythasznalunk, ami minden egyedhez hozza tud rendelni egy szamot, ez a tobbimodszernel is mar megismert fitnesz fuggveny (f). Tobbcelu optimalizalasnala legegyszerubb (bar nem mindig celravezeto) megoldas az lehet, hogy azelozoleg mar megismert modon a kulonfele celokat visszavezetjuk egyetlenfitnesz fuggveny hasznalatara.

A fitnesz fuggveny hasznalatanak elonye az, hogy megfelelo valasztaseseten nem csak sorrendet ad, hanem maga a fitnesz ertek is jelentessel bırhat.Ha ket elem kozott

”nagy” a fitnesz kulonbseg, akkor az azt is jelenti, hogy

az egyik elem”sokkal” jobb, mint a masik. A szelekcioban ezt jol ki tudjuk

hasznalni, ha ezek az aranyok valoban megbızhatok.

6.4.2. Rangsor hasznalata4

Bar a fitnesz fuggveny sok szempontbol idealis, gyakran nem tudjuk min-den igenyt kielegıto modon meghatarozni. Gyakran elofordul, hogy egyelemparrol el tudjuk ugyan donteni, hogy az egyik jobb-e mint a masik,viszont nem tudunk egy olyan egyertelmu lekepezest adni, amely mindenelemhez hozzarendel egy olyan fitnesz erteket, hogy azok alapjan az elemeksorbarendezhetoek legyenek (foleg ha meg azt is elvarjuk, hogy a fitneszertekek aranyaban valtozzon a josaguk is).

Mivel azonban az egyes elemparokat sorba tudjuk rendezni, ıgy nyilvan ateljes populacio (reszleges) rendezese is megoldhato, aminek eredmenyekeppenha egy elem jobb mint egy masik, akkor az elorebb kerul. Az alapgondolat,hogy ezt a rendezettseget hasznaljuk fitnesz ertekkent.

Celszeru a Pareto dominancia hasznalataval megadni a fitnesz erteket,mivel az ıgy hasznalhato lesz nem csak az egycelu, hanem akar a tobbcelukereseseknel is.

A fentiek szerint tehat minden elem fitnesz erteke attol fugg, hogy a veleegy populacioban levo elemek kozul hanyan dominaljak ot:

f(p) =| {∀q ∈ P | gpm(q) ≺ gpm(p)} | (6.1)

A kerdes persze meg is fordıthato, es mondhatjuk, hogy azok az elemek alegjobbak, akik sok masik elemet dominalnak (a Pareto dominancia szabalyaiszerint nem biztos, hogy ugyanazt az eredmenyt kapjuk ıgy):

f(p) =1

| {∀q ∈ P | gpm(p) ≺ gpm(q)} | +1(6.2)

4ranking

Page 53: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6.4. FITNESZ HOZZARENDELES 45

A fitneszt ugy ertelmezzuk, hogy minel kisebb, annal jobb. Tehat azokataz elemeket reszesıtjuk elonyben, akik sokat dominaltak, ennek koszonhetoaz osztas a kepletben. Az ıgy kapott erteket nevezzuk Pareto rangnak.

A modszer hatranya az, hogy favorizalja azokat az elemeket, amelyek egycsoportba tomorultek (itt ugyanis gyakoribb lesz a dominancia), es hatranybaszorıtja azokat, amelyek szetszorodtak. Ez pedig eppen ellentetes azzal, mintamit szeretnenk, hiszen mi a maganyosabb elemeket inkabb tamogatni sze-retnenk altalaban.

A modszer nagy elonye viszont az, hogy lathatoan nincs szuksegunk egyaranyos lekepezest vegrehajto fitnesz fuggvenyre. Cserebe viszont azzal fi-zetunk, hogy az ıgy kapott fitnesz ertekek mar nem aranyosıthatok (tehat a2. elem nem feltetlenul ketszer jobb, mint az 1. elem).

6.4.3. Verseny alapu5

Az elozo modszer jol hasznalhato, viszont meglehetosen nagy a szamıtasigenye.Hiszen az osszes elem Pareto rangjanak kiszamıtasahoz minden elemet min-den masik elemmel ossze kell hasonlıtanunk.

Ennek kikuszobolesere hasznalhatunk kulonbozo kozelıto szamıtasokat,ezeket versenyeknek nevezzuk. Peldaul a t szintu binaris verseny alapukivalasztas soran minden egyed lejatszik t darab versenyt (ahol minden ver-senyben c darab masik egyedet hıv ki), es megszamoljuk, hogy ezek kozulhanyszor gyozott. Gyozelem alatt azt ertjuk, hogy o dominalta az osszesellenfelet.

5tournament fitness assignment

Page 54: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

46 6. FEJEZET. EVOLUCIOS ALGORITMUSOK

6.2. Algoritmus TournamentFitness

1: fuggveny TournamentFitness(p, P, t, c)2: winCnt← 03: ciklus i ← 1-tol t-ig4: win← igaz5: i← 16: ciklus amıg win ∧ i ≤ c

7: qrnd←−− P

8: ha q ≺ p akkor9: win← hamis

10: elagazas vege11: ciklus vege12: ha win akkor13: winCnt← winCnt+ 114: elagazas vege15: ciklus vege16: vissza winCnt17: fuggveny vege

A pszeudokod a parameterkent atadott p egyeddel vegez el versenyeket,es a visszateresi ertek a gyozelmeinek szama. Az ezen gyozelmek alapjanfelallıtott sorrend egy jo becslese a Pareto rang alapjan felallıtott sorrend-nek. Minel nagyobb a t es c ertek, annal pontosabb becslest kapunk, deertelemszeruen a szamıtasigeny is novekszik.

6.5. Kivalasztas6

A pszeudokod Selection fuggvenye vegzi el a kivalasztast, tehat az aktualispopulacio alapjan elokeszıti a kovetkezo generaciot, illetve kivalaszt meg-adott szamu egyedet a populaciobol, es elhelyezi oket a szulojelolt allomanyban,ami jelen esetben az M halmaz. Legyen Msize ennek az elvart merete, tehatennyi elemmel szeretnenk feltolteni a szaporodas megkezdese elott.

Tobbfele kivalasztasi strategia letezik, ezek kozott talalhatunk determi-nisztikus es valamilyen veletlen valtozokon alapulo modszereket. A gyakor-latban altalaban ez utobbiakat valasztjuk, mivel ez vezet a keresesi ter minelalaposabb bejarasahoz.

Ezen tulmenoen meg ket fo elv kozul kell valasztanunk:

6selection

Page 55: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6.5. KIVALASZTAS 47

� Kivalasztas visszahelyezessel7, amikor az egyes elemek tobbszor is resztvesznek a kivalasztasi folyamatban, ıgy elkepzelheto, hogy tobb peldanybanis bekerulnek a szulojelolt allomanyba. Ez azert elonyos, mivel a parosıtassoran annal nagyobb lesz egy elem szulokent valo kivalasztasanak azeselye, minel tobbszor kerult be az M -be.

� Illetve tortenhet visszahelyezes nelkul8, amikor egy egyed csak egyszervalaszthato. Ilyenkor a szulonek valasztas eselyet egyenlonek tekintjuk,vagy esetleg valamilyen mas modon probaljuk meg favorizalni a jobbfitneszu elemeket.

A kivalasztas alapja tipikusan az elemek fitnesz erteke, amit mar azelozoekben megvitattunk, hogy sokfelekeppen szamıthato, elkepzelheto, hogyez valojaban a Pareto rangot jelenti.

6.5.1. Elitizmus9

Erdemes kulon beszelni az elitizmus fogalmarol. A generacios modszertanegyik hatranya, hogy semmi se garantalja, hogy a leszarmazottak mindigjobbak lesznek, mint a szulok. Ez viszont azzal jar, hogy a szulok eldobasatkovetoen az is elkepzelheto, hogy romlani fog a populacio atlagos es legjobbfitnesz erteke.

Ezt hivatott megelozni az elitizmus modszere, ami annyit jelent, hogy apopulacio legjobb elemei automatikusan atkerulnek a kovetkezo populacioba.Ennek elonye, hogy ıgy garantalhato, hogy a fitnesz erteke monoton csokken-jen, cserebe viszont annak is nagyobb az eselye, hogy beragadjon egy lokalisoptimumba.

6.5.2. Csonkolo kivalasztas

A legegyszerubb determinisztikus modszer. Alapja, hogy fitnesz szerint sor-barendezzuk az elemeket, majd egyszeruen kivalasztjuk a legjobbakat, atobbit pedig eldobjuk.

Egy kulon modszernek, a rang alapu kivalasztasnak nevezzuk azt, amikora fitneszt az egyedek rangja szerint allapıtjuk meg, es ezek kozul csak alegjobbakat hagyjuk meg.

7with replacement8without replacement9elitism

Page 56: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

48 6. FEJEZET. EVOLUCIOS ALGORITMUSOK

6.5.3. Rendezett kivalasztas10

Az elozohoz hasonlo, de nem determinisztikus modszer a rendezett kivalasztas.Tehat itt is egy sorrendbol indulunk ki, viszont nem feltetlenul a sorbanelorebb levok jutnak be a szulojelolt allomanyba, ok csak nagyobb valoszınusegetkapnak erre.

A modszer rendelkezik egy k parameterrel, ez hatarozza meg a szelek-cios nyomast. Ez minel nagyobb, annal dominansabbak lesznek a jo fitneszertekkel bıro egyedek:

� kis k valasztasa eseten jo esellyel be fognak kerulni a rosszabb elemekis;

� nagy k valasztasa eseten viszont a kozepes/rossz elemek ki fognak szo-rulni, es csak a legjobbak szaporodhatnak.

Belathato, hogy a k erteke tulajdonkeppen a legjobb egyed bekerulesiszamanak varhato erteke.

Elsokent kiszamıtjuk az alabbi segederteket:

γ =1

1− logklog|Msize|

(6.3)

Ezt kovetoen egy ciklus segıtsegevel generalunk |Msize| darab veletlenszamot az alabbi keplettel:

i = RNDu(0, 1)γ ∗ |P | (6.4)

Tehat minden iteracioban dob egy veletlen szamot 0 es 1 kozott, majdezt hatvanyozza az elozoleg kiszamıtott γ ertekkel. Az ıgy kapott i pedig egyindexkent hasznalhato, kivesszuk a populacio i. elemet, es elhelyezzuk azt aparosıto teruleten.

A modszer elonye az egyszeru csonkolashoz kepest, hogy nem csak a leg-jobb elemek kerulhetnek tovabb, hanem kapnak nemi eselyt a legrosszabbakis. Ilyen szempontbol jobb, mint a verseny alapu, mivel az is biztosan ki fogjahagyni a legrosszabb elemet, itt viszont meg o is kap egy minimalis eselyt.

6.5.4. Fitnesz aranyos kivalasztas11

Ez a kozismert”rulettkerek” modszer. Ahogy a neve is mutatja, az az alapel-

ve, hogy a jobb fitnesszel bıro elemek nagyobb esellyel szaporodjanak. Ennekerdekeben a kivalasztas soran valoszınusegeket hatarozunk meg arra, hogyaz egyes elemeket milyen esellyel szeretnenk kivalasztani.

10ordered selection11fitness proportionate selection

Page 57: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6.5. KIVALASZTAS 49

A P (p) valoszınuseg azt adja meg, hogy a kivalasztas soran milyen esellyelvalasztjuk a p egyedet. Ez tipikusan fordıtottan aranyos szokott lenni afitnesz ertekkel, kis fitnesz eseten nagy valoszınuseget szeretnenk adni.

P (p) = 1− f(p)∑∀q∈P

f(q)(6.5)

Vegyuk eszre, hogy az ıgy kapott valoszınusegek mind 0 es 1 kozottiertekek lesznek, illetve a valoszınusegek osszege pontosan 1.

A fenti keplet hatranya, hogy ha a fitnesz ertekek nagysagahoz kepestelenyeszoek a kulonbsegek (pl. harom elemu populacio eseten a fitneszek1001, 1002, 1003), akkor a kivalasztasi valoszınusegek kozott kicsi lesz akulonbseg. Ilyenkor celszeru lehet a min-max eljarassal normalizalni a fitneszertekeket, majd ezek alapjan szamıtani a valoszınuseget:

fnorm(p) =f(p)− min

∀q∈Pf(q)

max∀q∈P

f(q)− min∀q∈P

f(q)(6.6)

P (p) = 1− fnorm(p)∑∀q∈P

fnorm(q)(6.7)

A modszer elonye, hogy konnyen ertheto es implementalhato, de a gyakor-latban sokszor nem igazan hasznos megoldas. A fitnesz fuggveny jellemzoiugyanis nagyban befolyasoljak a kivalasztast. Ha pedig ez nem elegge ki-egyensulyozott (aranyos) ertekeket ad, akkor nagyon eltorzulnak a valoszınusegek.

6.5.5. Versengo kivalasztas12

Versennyel egyszer mar talalkoztunk a fitnesz kozelıto kiszamıtasanal. Averseny szerepe itt is az, hogy egy hatekony, megis jol hasznalhato eredmenytkapjunk a szulojelolt allomany feltoltesehez.

A verseny alapu kivalasztas alapja, hogy kiveszunk k darab egyedet apopulaciobol, es egymassal versenyeztetjuk oket. A nyertes pedig bekerult aszulojelolt allomanyba.

A k parameter ertekevel tudjuk azt befolyasolni, hogy mennyire dominaljanakaz eros elemek a kimenetben:

� kis k valasztasa eseten jo esellyel be fognak kerulni a rosszabb elemekis;

12tournament selection

Page 58: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

50 6. FEJEZET. EVOLUCIOS ALGORITMUSOK

� nagy k valasztasa eseten viszont a kozepes/rossz elemek ki fognak szo-rulni, es csak a legjobbak szaporodhatnak.

Ez konnyen be is lathato, pl. k = 2 eseten atlagosan mindenki ketszervesz reszt valamilyen versenyben. Mivel a legjobb elem minden versenyetmegnyeri, ıgy o ketszer kerul be az M -be, a kozepso elem varhatoan egyszer,stb. Amennyiben noveljuk a k erteket, ugy mindenki egyre tobb versenybenvesz reszt, ennek megfeleloen az elso is, aki ıgy egyre tobb peldanyban kerula szulojelolt allomanyba. A kozepsonek mar joval kisebb lesz az eselye, hogycsak nala rosszabbal talalkozzon, ezert az o lehetosegei korlatozottabbak.

Ezt probalja bemutatni a 6.1. abra is, amin az lathato, hogy a populacioi. eleme hanyszor kerul be a szulojelolt allomanyba kulonfele k valasztasokmellett.

6.1. abra. Kulonbozo k ertekek hatasa a populacio elemeire a szaporodasivaloszınuseg szempontjabol[7].

A modszer elonye, hogy a fitnesz abszolut ertekei itt nem szamıtanak, sotmagara a szamszeru fitnesz ertekre sincs szukseg. Eleg ha a veseny soran eltudjuk donteni, hogy valamely elem dominalja-e a masikat, vagy pedig sem.

Tovabbfejlesztesi lehetoseg lehet az, ha a versenyek nem egyertelmu gyozteseketadnak, hanem csak valoszınusegeket. Tehat nem biztos, hogy mindig agyoztes szaporodik, csak o kapja erre a legtobb eselyt. Egy megvalosıtasilehetoseg, ha a verseny i. helyezettje p(1− p)(i−1) esellyel valasztodik ki.

Page 59: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6.6. KERESZTEZES 51

6.2. abra. Keresztezes lehetosegek[7].

6.6. Keresztezes13

A genetikus algoritmusok egyik jellemzo lepese a keresztezes, amikor ketto(vagy akar tobb) szulo adatai alapjan letrehozunk egy uj egyedet. A legalap-vetobb modszereket bemutatja a 6.2. abra.

6.6.1. Altalanos feladatok

Ahogy az abran is jol lathato, a kulonfele keresztezesi modoknal megadhat-juk, hogy az egyes kromoszomak hany ponton legyenek szetvagva, illetve eztkovetoen ujra osszeillesztve:

� Egy pontos keresztezes (SPX14) eseten mindket kromoszomat ugyan-azon a ponton elvagjuk, es az utod az egyik szulo elso es a masodikszulo kromoszomainak masodik reszet kapja meg.

� Ket pontos keresztezes (TPX15) soran mindket kromoszomat ket helyenvagjuk el, es az utod kapja meg az egyik szulotol az elso es utolso reszt,mıg a masik szulotol a kozepso reszt.

� Tobb pontos keresztezes (MPX16) tulajdonkeppen az elozoek altalanosıtasa,a kromoszomakat tetszoleges helyeken elvagjuk, es az utod felvaltjakapja az adatokat egyik-masik szulotol.

� Egyenletes keresztezes17 a fentiek altalanosıtasa, itt minden gennelegyedileg dontjuk el, hogy az melyik szulotol szarmazzon (ehhez meg-adhatunk kulonfele valoszınusegi szabalyokat).

A fentiek alapvetoen a fix hosszusagu kromoszomakra vonatkoznak, valtozohosszusagunal ez termeszetesen maskepp is elkepzelheto.

13crossover14single-point crossover15two-point crossover16multi-point crossover17uniform crossover

Page 60: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

52 6. FEJEZET. EVOLUCIOS ALGORITMUSOK

6.6.2. Kombinatorikai feladatok

Kulon erdemes foglalkozni a kombinatorikai feladatok soran felmerulo le-hetosegekkel. Tipikusan ilyenek a permutacios problemak, ahol a kromoszomagenjei nem egymastol fuggetlen ertekeket tartalmaznak, hanem elore meg-adott ertekek megfelelo sorrendjet keresik.

Ilyenkor a fenti keresztezesek nyilvan nem mukodnek, hiszen elkepzelheto,hogy ennek hatasara valamely ertek eltunne, vagy eppen megkettozodne aleszarmazottban, ami hibas eredmenyhez vezetne.

Egy lehetseges megoldas lehet ilyenkor a ketpontos keresztezeshez hasonlomodszer: ket helyen elvagjuk az egyik szulot, a kozepso teruletet atmasoljuka gyerekbe. A maradek reszeket pedig ugy toltjuk fel a masik szulo genjeialapjan, hogy ne legyen a gyerekben duplikacio.

6.7. Mutacio18

A mutacio szerepe az, hogy a genetikus algoritmus ne konvergaljon tul gyor-san az addig talalt legjobb pont fele, illetve ez ad lehetoseget az esetlegeslokalis optimumokbol valo kiugrasra is.

6.7.1. Altalanos feladatok

A mutacio ebben az esetben a genek ertekenek egyedi megvaltoztatasa. Ketparametert szoktuk megadni, ami ezt befolyasolja:

� mutacios rata megadja, hogy milyen esellyel fog megvaltozni egy elem;� mutacio merete, ami megadja, hogy mekkora merteku mutaciok tortenhetnek

meg (ez lehet korlat, vagy egy eloszlas parameterei, stb.).

A 6.3. abran lathatoak alapjan maga a mutacio erinthet:

� egy pontot, amikor a kromoszoma egyetlen genje valtozik meg veletlenszeruen,� tobb pontot, amikor a kromoszoma egymastol fuggetlen genjei valtoznak

meg veletlenszeruen,� osszefuggo teruletet, amikor egy jol behatarolt terulet genjei valtoznak

meg veletlenszeruen.

Amennyiben megengedjuk a valtozo hosszusagu kromoszomakat, akkor amutacios lehetosegek tarhaza is jelentosen kibovul:

� beszuras soran egy vagy tobb uj gennel bovıtjuk a mar meglevo kro-moszomat;

� torles eseten pedig kitorlunk egy gent, vagy akar egy hosszabb gensorozatot.

18mutation

Page 61: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

6.8. ERTEKELESE 53

6.3. abra. Mutacio lehetosegei[7].

6.7.2. Kombinatorikai feladatok

Itt is kulon erdemes foglalkozni a kombinatorikai feladatokkal, mivel itt jovalkorlatozottabban mukodnek a mutacios muveletek. Egy-egy gen veletlenszerumodosıtasat nem engedhetjuk meg, hiszen ennek hatasara genek tunnenek ela sorozatbol, vagy duplikaciok jonnenek letre.

Ezert ezeknel a feladatoknal a mutacio ket veletlenszeruen kivalasztottgen ertekenek kicsereleset jelenti, ami persze kibovıtheto kisebb-nagyobbreszteruletek cserejere is.

6.8. Ertekelese

+ Gyakorlatban nagyon jol, szeleskoruen hasznalhato modszer, ami marsokszor bizonyıtott.

+ Parameterei (mutacios rata, stb.) konnyen ertelmezhetoek, ıgy konnyenkonfiguralhatok.

+ Elonye, hogy fekete dobozkent mukodik, nincs szukseg informaciora amegoldando feladatrol.

+ A keresztezes es a mutaciok megfeleloen megvalasztott aranyokkal na-gyon jol be tudjak jarni a keresesi teret.

– Populaco alapu modszer, tehat eleg nagy szamıtasigennyel bırhat egynagyobb feladat eseten.

– Ha mar kozel jar a megoldashoz, gyakran erdemes atvaltani valamilyenlokalis keresesi modra, mivel hajlamos bolyongani a globalis optimumkorul.

Page 62: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

54 6. FEJEZET. EVOLUCIOS ALGORITMUSOK

6.9. Gyakorlati problemak

Az utazo ugynok problema egy tipikus kombinatorikai feladat, amit jol meglehet oldani (kozelıteni) genetikus algoritmus segıtsegevel. A kiindulo po-pulacioban ilyenkor felveszunk szamos lehetseges utvonalat (a varosok kulonfelepermutacioit), majd ezeket kiertekeljuk (a fitnesz fuggveny visszateresi ertekelehet az utvonal hossza). Mivel ez egy permutacios problema, ezert a keresz-tezes es mutacio soran az ott leırt modszereket celszeru hasznalni.

6.10. Felhasznalt irodalom

[7]

Page 63: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

7. fejezet

Genetikus Programozas

7.1. Alapelv

A genetikus programozas egy automatikus programkeszıto modszer. Elsoranezesre jelentosen kulonbozik a tobbi targyalt modszertol, valojaban azon-ban itt is optimalizalasrol beszelunk: egy olyan programot kell keszıtenunk,ami a leheto legkisebb hibaval tudja megoldani a kituzott feladatot.

Mukodesi elve hasonlo a hagyomanyos evolucios modszerekhez, a lenyegeskulonbseg csak az, hogy a keresesi ter, amiben dolgozik, az a lehetsegesprogramok tere. Ennek megfeleloen vegeredmenykent egy olyan programotvarunk tole, amely megoldja a megadott feladatot.

Erdekes modon maga a heurisztikus kereso algoritmus nem sokban kulonbozikebben az esetben sem a mar targyalt evolucios modszerekhez kepest, a kulonbsegetinkabb csak a kromoszoma reprezentacioban talaljuk (tehat az a fo kerdes,hogy mikent tudunk leırni egy programot megoldasjeloltkent).

7.2. Feladat specifikacioja

7.2.1. Programfa felepıtese

Osszetett kifejezeseket altalaban egyszeruen es jol lehet reprezentalni egyfaval, amelynek elemei az alabbiak lehetnek:

� A fa levelelemei mindig vegpontok (terminalis elemek), amelyek a Thalmazbol1 kerulnek ki. Mivel ezek levelelemek, ezert ezek onmaguk-ban, tovabbi parameterek nelkul is kiertekelheto elemek:

1terminal set

55

Page 64: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

56 7. FEJEZET. GENETIKUS PROGRAMOZAS

– konstansok,– valtozok,– input ertekek (a program kiertekelesekor ezekre a pontokra kell

rakapcsolni a bemeno adatokat),– parameter nelkuli fuggvenyek.

� A fa belso pontjai pedig mindig valamilyen muveletek, amelyek az Fhalmazbol2 kerulnek ki. Ezek az alattuk levo egy vagy tobb elemmelvegeznek el valamilyen muveletet, ennek eredmenyet pedig tovabbıtjaka sajat szulojuk iranyaba. Amennyiben alattuk nem csak egy-egycsomopont, hanem reszfak talalhatok, akkor a reszfa kiertekelesenekeredmenye lesz a muvelet bemenete. Ezek a muveletek lehetnek:

– aritmetikai muveletek,– logikai muveletek,– vezerlesi szerkezetek (if, for, stb.),– egyeb sajat fuggvenyek.

A fa gyokerpontja kituntetett szerepu, ez adja meg a teljes program-fa kimenetet. Tehat a bemeneteket rakapcsoljuk az ezeket fogadni kepeslevelpontokra, majd kiertekeljuk magat a teljes fat.

7.2.2. Validacio

A T es F halmaznak teljesıtenie kell az alabbi kovetelmenyeket:

� Zartsag3: az egyes muveletek eredmenye bemenete lehet barmelyikmasik muveletnek. Ez azert lenyeges, hogy a fa felepıtesenel ne kell-jen azzal foglalkozni, hogy melyik tıpusu muveletnek milyen bemenetei(jelen esetben reszfai) lehetnek, ıgy a kereses futasa soran a keresz-tezes/mutacio muveletek ne allıthassanak elo szintaktikailag helytelenmegoldasjelolteket.

Ezugyben kulon kerdes lehet, hogy szeretnenk-e tıpusokkal foglalkoz-ni, ha igen, akkor vannak ezt tamogato valtozatok (STGP - StronglyTyped Genetic Programming).

� Elegendoseg4: nyilvanvalo igeny, hogy maganak a problemanak meg-oldhatonak kell lennie a megadott T es F halmaz elemeibol epıtkezve.

2function set3closure4sufficiency

Page 65: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

7.2. FELADAT SPECIFIKACIOJA 57

A fentiek mellett azt is garantalni kell, hogy a programfa kiertekelheto(az altala kepviselt program futtathato) legyen. Ezt tobbfele modon lehetbiztosıtani:

� Celszeru lehet eleve ugy megadni az egyes utasıtasokat, hogy azok tel-jes mertekben hibaturoek legyenek. Tehat egy utasıtas ne akadjon leazon, hogy esetleg tobb vagy kevesebb operandust kapott, mint kellene(ilyenkor helyettesıtsen be valamit, vagy hagyja figyelmen kıvul a tobb-letet). Ugyanıgy, celszeru ertelmet adni a valosagban egyebkent nemertelmezheto muveleteknek (pl. 0-val osztasnak is legyen valamilyeneredmenye).

� Bonyolultabb de messzebbre vezeto lehetoseg az, ha a modosıtott fakatgrammatikai ellenorzesnek vetjuk ala, es amennyiben valamilyen hibattalalunk bennuk, akkor elvegezzuk azok automatikus javıtasat.

� A fenti kerdeskort persze azzal is meg lehet oldani, ha eleve ugy keszıtjukel a modosıto muveleteinket (keresztezes, mutacio), hogy azok csakszintaktikailag helyes fakat tudjanak letrehozni. Ilyenkor nincs szuksegaz elozo ket modszerre, persze maguk a muveletek lesznek joval ossze-tettebbek (vagy kevesbe rugalmasak).

� Egy masik lehetoseg, ha a kereso algoritmus nem kozvetlenul a kife-jezesfat modosıtja, hanem annak csak egy alacsonyabb szintu repre-zentaciojat (pl. a kereso algoritmus mar csak egy bitsorozatot lat).Tehat ez esetben a kifejezesfa a fenotıpus, a genotıpus pedig ennekcsak egy reprezentacioja. A megfelelo genotıpus-fenotıpus lekepezestvalasztva elerheto, hogy mindig helyes fakat kapjunk.

7.2.3. Fitnesz

A tobbi optimalizalasi modszerhez hasonloan itt is definialnunk kell valami-lyen formaban a fitneszt. Mivel az egyes megoldasjeloltek ebben az eset-ben programokat jelentenek, ıgy a fitnesz azt kell, hogy mutassa, hogy egyadott program mennyire jol tudja megoldani az adott feladatot. Ennekeredmenye lehetne akar igaz/hamis ertek is (jol mukodik, nem jol mukodik),de celszerubb ennel arnyaltabb megvalosıtast keresni, hogy a heurisztikusalgoritmusoknak legyen lehetosege a kereses soran tamaszkodni a fitneszaranyokra.

A fitnesz megadasa soran az egyik lehetoseg, hogy egy tanıtasi mintasegıtsegevel definialjuk magat a megoldando feladatot. Ez azt jelenti, hogymegadunk egy vagy tobb bemeneti es azokhoz tartozo kimeneti adatsort,

Page 66: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

58 7. FEJEZET. GENETIKUS PROGRAMOZAS

a feladat pedig egy olyan program osszeallıtasa, ami a megadott bemene-tekre pontosan ugyanazt a kimenetet adja. A fitnesz definialashoz ilyenkorcelszeru megadni valamilyen tavolsag fogalmat ket kimenet kozott (legalabbisaz elvart helyes, es a program altal adottak kozott). Egy konkret meg-oldasjelolt fitnesze pedig nem mas, mint az osszes bemenethez a programaltal adott es a referencia kimenet kozotti tavolsagok osszege.

A feladat megadhato mas modon is, peldaul egy utkereso algoritmusnalnem kell feltetlenul megadni a kimenetet, eleg, ha szabalyokkal meghatarozzuk,hogy mit tekintunk jo megoldasnak. A fitnesz szamıtashoz ilyenkor szintendefinialni kell egy tavolsagot, ami megadja az algoritmus altal adott kimenetes a helyes kimenet kozotti kulonbseget (pl. utkereses eseten milyen kozelrejutott az algoritmus a celponthoz).

Mindket esetben lehetseges tovabbi technikai jellemzokkel bovıteni a fit-nesz fuggveny tartalmat. Ilyen (resz)cel lehet, hogy maga az algoritmuslegyen minel rovidebb, vagy annak futasideje legyen minel kevesebb. Ezekaltalaban csak mint masodlagos cel jelennek meg a pontossag es teljessegutan.

7.3. Megvalosıtas

A keresesi modszer alapvetoen teljesen azonos az evolucios modszereknelmar targyalttal (ami nem meglepo, hiszen a genetikus programozas is egyevolucios modszer). Ennek megfeleloen konkret pszeudokodot nem is vizsgalunkitt, erre hasznalhato az evolucios modszereknel megadott altalanos megoldas.Ehelyett inkabb azt vizsgaljuk, hogy milyen specialitasokkal talalkozhatunk.

7.3.1. Kezdopopulacio letrehozasa

Az inicializalas szerepe itt is egyszeruen csak az, hogy letrehozzunk megadottszamu veletlen elemet. Lenyeges kulonbseg csak az, hogy eddig altalaban fixmeretu kromoszomakkal foglalkoztunk, itt viszont ez mar nem feltetlenul leszigaz. Megadhato a maximalis muveleti darabszam is, de jol hasznalhato a famaximalis melysege (d).

Ennek megfelelo generalasi modszerek:

� full: minden gyokerbol levelbe vezeto ut hossza legyen d,� grow: minden gyokerbol levelbe vezeto ut hossza maximalisan d,� ramped half-and-half: populacio egy resze full, masik resze grow alapjan

lesz generalva.

Page 67: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

7.3. MEGVALOSITAS 59

7.3.2. Szelekcio

Hasonlo a hagyomanyos evolucios modszerekhez.

7.3.3. Keresztezes

Tipikusan egyszeruen hasznalhato a mar megismert egypontos keresztezes.Itt azonban ezalatt azt ertjuk, hogy mindket fat elvagjuk egy ponton, es azegyik fanak megtartjuk a gyokerbol kiindulo reszet, a vagasi pontra pedigraillesztjuk a masik fa vagas alatti reszet.

7.3.4. Mutacio

Mivel nem fix a kromoszoma merete, ıgy meglehetosen tagak a mutacioslehetosegek.

� Legalapvetobb muvelet egy mar meglevo csomopont csereje egy ujra.Belso pontok eseteben ertelemszeruen csak F -beli elemre tudunk cserelni,levelelemek helyere pedig csak T -beli elemet valaszthatunk.

� Uj csomopontok, vagy akar reszfak beszurasa. Egy levelelembol nemtudunk belso pontot csinalni, tehat a beszurasoknak csak a fa bel-sejeben van ertelme.

� Ellenkezo esetben lehetosegunk van csomopontok, vagy akar nagyobbreszfadarabok torlesere is. Itt is arra kell figyelni, hogy belso pontoknem kerulhetnek level szerepbe, mivel oda csak T -beli elemet valaszthatunk.

� Ide sorolhatjuk azt a valtoztatast is, amikor megvaltoztatjuk egy muveletgyerekeinek a sorrendjet.

7.3.5. Specialis kontextusfuggo muveletek

A hagyomanyos evolucios algoritmusoknal megismert primitıv muveletekentul itt felmerulhet nehany feladattol (kontextustol) fuggo muvelet is. Ezekmar magasabb szintu muveletek, amelyek nem csak veletlen cserelgetesenalapulnak, hanem ertelmezni tudjak az egyes megoldasjeloltek szerkezetet,es szukseg eseten valid modon valtoztatni is tudjak azt.

Az egyik ilyen muvelet a fa egyszerusıtese, amely soran megprobaljuk a fatugy atalakıtani, hogy annak eredmenye ne valtozzon (ugyanarra a bemenetremindig ugyanazt a kimenetet adja), viszont csokkenjen a csomopontok szama.

Hasonlo muvelet lehet az, amikor egyes reszfakat rogzıtunk, tehat eztkovetoen ezek elemeit egyetlen egysegkent kezeljunk (ugy is felfoghato, hogy

Page 68: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

60 7. FEJEZET. GENETIKUS PROGRAMOZAS

egy reszfa ezt kovetoen terminaliskent viselkedik). Ennek az a hatasa, hogyaz ıgy rogzıtett muveletek egymastol a kesobbiekben nem valaszthatok el.

7.4. Genotıpus-fenotıpus lekepezes

A fentiek soran megterveztuk, hogy pontosan milyen tıpusu csomopontokatszeretnenk tarolni a faban (ezt tekinthetjuk a fenotıpusnak), viszont megnem esett szo a fa fizikai tarolasi modjarol (ami jelen esetben a genotıpus).

7.4.1. JB mapping

Ebben az esetben a kromoszoma egy egesz szamokbol allo tomb. Hagyomanyosanezen belul minden utasıtas egy szamharmas (opcode, operandus1, operan-dus2), de ez persze tovabbfejlesztheto mas iranyba is.

Hasznalatahoz elozetesen kell keszıteni egy kodtablat, hogy az egyes azo-nosıtok milyen muveletekhez tartoznak, es ezek egesz pontosan hogyan hasznaljakfel a ket operandust. A megvalosıtas ıgy tulajdonkeppen a hagyomanyosgepi kodhoz hasonlo, a programnak egy szekvencialis, binaris reprezentaciojatkapjuk. Igy bar a programot tovabbra is elkepzelhetjuk egy fa adatszerke-zetkent, ez a reprezentacioban nem jelenik meg.

7.4.2. Gene Expression Programming

Amennyiben a programkodot tenyleg fakent szeretnenk eltarolni, akkor nemis maga a tarolas modja vet fel kerdeseket, hanem az, hogy mikent tudjuka fa validitasat garantalni. Legalabb alapszinten azt, hogy a belso pontokmind F -beli, a levelek pedig T -beli elemek legyenek.

Erre nyujt egy egyszeru megoldast ez a technika. A kromoszoma ku-pacszeruen tarolja el az adatokat, tehat a szekvencialisan eltarolt sorozatvalojaban egy (kozel) teljes fat reprezental. Az adatok elso fele a fejlec (eb-ben lehetnek muveletek es terminalisok). A masik fele pedig a farok resz,ebben mar csak terminalis lehet.

A modszer elonye az, hogy a fa ıgy biztosan valid lesz. A muveletekmegadjak a fa alakjat, a farok reszbol pedig csak annyi operandust hasznalfel, amennyi a szulok alapjan indokolt.

Page 69: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

7.5. KIEGESZITESI LEHETOSEGEK 61

7.5. Kiegeszıtesi lehetosegek

7.5.1. Automatikusan definialt fuggvenyek

Egy osszetettebb algoritmus soran elobb-utobb szuksegunk lehet kulonfelesajat fuggvenyek keszıtesere. A fenti formaban ezzel nem foglalkoztunk, de akifejezes fat ki lehet egeszıteni olyan muveletekkel, amelyek a sajat magunkaltal keszıtett fuggvenyeket tudjak meghıvni kulonfele parameterekkel (itt aparameterek lehetnek a gyerekelemek ertekei).

A sajat fuggvenyek letrehozasa is automatizalhato, a kereso algoritmusfutas kozben barmikor kiemelhet egy reszfat, es azt onnan kezdve egy sajatfuggvenykent kezelheti. Ezzel annak mukodeset rogzıti, illetve lehetove tesziannak tobbszori felhasznalasat.

A gondolatot tovabb folytatva elerheto a rekurzio is, ami ismet jelentosenbovıti a megoldashoz felhasznalhato eszkoztarat.

7.5.2. Grammatical Evolution

A genetikus programozas egyik hatranya, hogy nem valasztja el egymastola genotıpust a fenotıpustol. Ugyanazt a fat hasznalja a program futtatasra(fitnesz szamıtas), mint amin az evolucios muveleteket hajtja vegre.

A Grammatical Evolution modszer eseteben megprobaljuk elesen elvalasztaniegymastol az alabbi reszteruleteket:

� Problema: maganak a problemanak a definıcioja, amit meg kell oldani(tehat itt nem jelennek meg a megoldassal kapcsolatos informaciok).

� Kereso motor: barmelyik heurisztikus modszer (GA, PSO, stb.), amelytipikusan egy sima bitsorozattal mukodik (tehat ez teljesen fuggetlena problematol, meg magatol a programfuttatastol is, egy egyszeru he-urisztikus modszere gondoljunk).

� Nyelv: ez teremti meg a kapcsolatot a ketto kozott, ezzel tudjuk akereso motor altal kezelt alacsony szintu bitsorozatokat atalakıtani aproblematerbe egy lehetseges megoldassa.

A fenti szetvalasztasnak koszonhetoen egy modularis, rugalmasabb rend-szerhez jutunk, aminek komponensei tetszoleges modon cserelgethetok. Erdemeskiemelni, hogy nem csak evolucios modszerek jelenhetnek meg a kereso mo-torban, hanem lehet probalkozni barmilyen egyeb heurisztikaval.

Gyakorlati pelda: jGE - Java Grammatical Evolution

Page 70: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

62 7. FEJEZET. GENETIKUS PROGRAMOZAS

7.6. Ertekeles

+ Ha jol mukodik, akkor sokkal altalanosabb eredmenyt adhat, mint egyhagyomanyos kereses. Peldaul utkeresesnel nem csak egy konkret utatad meg, hanem egy algoritmust, amivel barmikor tudunk utakat talalni.

+ Jol hasznalhato, ha keves informacionk van a megoldas szerkezeterol.Peldaul fuggveny kozelıtes mas modszerekkel csak akkor mukodhet, halegalabb tudjuk a kozelıto fuggveny szerkezetet (hanyad foku, stb.), escsak a parametereket kell megtalalni. Itt azonban nincs erre szukseg,megtalalja a szerkezetet is.

– Mar nehany utasıtas es kis fa eseten is oriasi a keresesi ter.

– Nagyon szamıtasigenyes.

– Emiatt altalanos optimalizalasi feladatokhoz nem is erdemes hasznalni,csak nagyon specializalt esetekben.

7.7. Gyakorlati problemak

A modszer ertelemszeruen programgeneralasra hasznalhato jol. Itt nyilvanegyszerubb, tipikusan bemenet es kimenet sorozatokkal megadott problemakmegoldasara kell gondolni. De lehet akar mas jellegu is, hatekonyan meg tudtalalni egyszeru utkeresesi strategiakat.

Masik gyakorlati alkalmazasi terulet lehet az aramkorok tervezese. Itt amegoldas szerkezete jelentosen maskent nez ki, de a cel hasonlo: egy olyanaramkort kell megterveznunk, ami megvalosıtja a kituzott feladatot (es mind-ezt lehetoseg szerint minel kevesebb elembol).

7.8. Felhasznalt irodalom

[7]

Page 71: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

8. fejezet

Non-dominated SortingGenetic Algorithm

8.1. Alapelv

A genetikus algoritmus es a tobbi populacio alapu modszer nagyon jol hasznalhatoa gyakorlatban, azonban ezek mindegyike egycelu optimalizalasra lett kifej-lesztve. Ezt jol mutatja, hogy mindegyik modszer egy f fitnesz fuggvenyalapjan probalja eldonteni, hogy egy egyed mennyire jo vagy sem. Tobbcelufeladatoknal ez problemat okozhat, mivel ennek megfeleloen mindig visszakell vezetnunk a celfuggvenyeket egyceluva, es ez nem mindig vezet elfogad-hato eredmenyhez (pl. sulyozasnal a sulyok megvalasztasa kritikus lehet).

Az NSGA algoritmus erre a problemara ad valaszt, megvalosıtva az alabbikiegeszıteseket:

� a Pareto dominancian alapul, tehat jol kezeli a tobbcelu optimalizalasifeladatokat,

� nem csak egy megoldast, hanem az optimalis megoldasok halmazat adjavissza (Pareto frontot),

� arra is torekszik, hogy a visszateresi ertek minel jobban lefedje a meg-oldashalmazt.

Alapelve egyebkent teljesen megegyezik az evolucios algoritmusoknal meg-ismerttel, csak a szelekcioban kulonbozik. A szelekcio soran a dominanciaalapjan rakja sorba az elemeket, es mindenkinek a josagat az hatarozza meg,hogy hanyan dominaljak. Akiket senki se (elso Pareto front), azok kerulnekelsokent feldolgozasra, oket kovetik majd azok, akiket csak egyvalaki dominal(ok lesznek a masodik Pareto front), stb. A modszer ugyel arra, hogy az elsokorben feldolgozott elemek mindig nagyobb fitnesz erteket kapjanak, mint akovetkezo frontokban levok.

63

Page 72: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

648. FEJEZET. NON-DOMINATED SORTING GENETIC ALGORITHM

A fenti otlet mellett egy megoszto fuggvenyt1 is hasznal arra, hogy meg-probalja minel inkabb diverzifikalni az eredmenyeket. Ennek alapelve az,hogy probalja elonyben reszesıteni a Pareto frontok azon elemeit, amelyekkisebb surusegu helyen vannak (messze vannak tarsaiktol), es hatranybaszorıtani azokat, amelyek nagy surusegu teruleten helyezkednek el.

8.2. Megvalosıtas

8.2.1. Algoritmus

8.1. Algoritmus NSGA kivalasztas

1: fuggveny NSGA-Selection(P, ds,Sh, fitnessdeg)2: M ← ∅ . Mating pool3: fitnessbase ← 14: ciklus amıg | P |> 05: F ← ∅ . Current Pareto front6: ciklus ∀p ∈ P7: ha (@q ∈ P | q ≺ p) akkor8: F ← F ∪ {p}9: elagazas vege

10: ciklus vege11: P ← P \ F12: ciklus ∀p ∈ F13: psh ←

∑q∈F

Sh(ds(p, q))

14: ciklus vege15: Ssh ←

∑p∈F

psh

16: ciklus ∀p ∈ F17: pfitness ← fitnessbase ∗ (1− psh

Ssh) . Large fitness is better

18: ciklus vege19: M ←M ∪ F20: fitnessbase ← min

∀p∈Fpfitness ∗ fitnessdeg

21: ciklus vege22: vissza M23: fuggveny vege

1sharing function

Page 73: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

8.2. MEGVALOSITAS 65

Megjegyzes: a szakirodalomhoz igazodva itt kivetelesen a nagyobb fit-neszt tekintjuk jobbnak. Ha szeretnenk a mar megszokott modon kezelni,akkor celszeru ennek reciprokaval szamolni.

A megadott algoritmus csak a szelekcioert felelos, ennek megfeleloen pa-rameterkent megkapja a P populaciot, visszateresi erteke pedig ugyanezekaz elemek lesznek az M halmazban, csak itt mar kiegeszıtve egy fitness tu-lajdonsaggal.

Az elso ciklus az F halmazba kivalogatja a P azon elemeit, akiket nemdominal senki. Elso esetben ez az elso Pareto frontot fogja visszaadni, utanaa masodikat, stb. A kivalogatas utan a P -bol toroljuk ezeket az elemeket.

A kovetkezo ciklus vegzi el a megoszto fuggveny hıvasokat. Az F halmazminden elemenel kiszamolja az osszes tobbi F -beli elemhez tartozo tavolsagosszeget. Ezt helyezi el a psh tulajdonsagba, majd kiszamolja ezeknek azertekeknek az osszeget (Ssh).

A kovetkezo ciklus elkezdi kiosztani a fitnesz ertekeket az egyes elemek-nek. A fitnesz minden esetben a fitnessbase-bol indul ki, ezt modosıtjuk akiszamıtott egyedi es osszesıtett sharing ertekek alapjan. Minel nagyobb voltvalakinek a sharing erteke (tehat messze volt a tobbiektol→ kis surusegu he-lyen van), annal nagyobb lesz a szorzat masodik tagja, tehat annal nagyobbfitnesz erteket fog kapni.

A fitnessbase szerepe2 az, hogy garantalni tudja, hogy az egymast kovetoPareto frontbeli elemek egyre kisebb fitnesz ertekeket kapjanak. Ezert ezt aciklus vegen mindig beallıtjuk az aktualis Pareto front legkisebb fitneszenelegy kicsivel rosszabb ertekre (a fitnessdeg konstans erteke tehat egy egynelvalamivel kisebb ertek kell, hogy legyen).

Vegul a feldolgozott elemeket hozzaadjuk az M halmazhoz, kiszamıtjuka kovetkezo fitnessbase erteket, es ujraindıtjuk a ciklust ha meg van felnem dolgozott populaciobeli elemunk. Miutan mindegyikkel vegeztunk, afuggveny veget er.

8.2.2. Megjegyzesek

Az algoritmus csak a szelekciot mutatja be, a modszer tobbi lepese megegye-zik a mar megszokottal. Tehat kovetkezik a reprodukcio a fitnesz ertekekalapjan, majd mutacio, stb.

Eredmenykent tehat olyan fitneszeket fogunk kapni, amire igaz, hogy

� azok, akiket kevesebben dominalnak (korabbi Pareto frontban vannak)jobb fitneszt kapnak,

2dummy fitness

Page 74: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

668. FEJEZET. NON-DOMINATED SORTING GENETIC ALGORITHM

� az azonos Pareto fronton belul levo elemek kozul a ritka helyen levokkapnak jobb erteket.

8.2.3. Megoszto fuggveny

A megoszto fuggveny szerepe, hogy a tavolsagok alapjan kiszamıtson egy

”suruseg” erteket. Ennek megfeleloen egy tetszoleges szamhoz szamot ren-

delo fuggvenyre van szuksegunk.Egy lehetseges megvalosıtas az lehet, ha bevezetunk egy tavolsag erteket

(σshare) amely felett mar nem foglalkozunk az elemekkel, tehat itt a suruseget0-nak tekintjuk. A tavolsagon belul pedig egy linearis atmenetet adunk meg,hogy minden elem onmagatol vett tavolsaga 1 legyen, a σshare tavolsagra levoelemek eseteben pedig pont 0.

Sh(dij) =

{1− (

dijσshare

)2, ha dij < σshare;

0, egyebkent(8.1)

A kepletben levo dij tavolsag azt hivatott jelolni, hogy itt az aktualisPareto front i. es j. elemenek a tavolsagat adjuk meg parameterkent.

A Pareto front minden p elemet osszehasonlıtunk minden masikkal a Pa-reto fronton belul, es tavolsagukra kiszamıtjuk a fenti erteket. Ezek osszegelesz a psh ertek, tehat az adott elem megoszto erteke. Ez egy jo becsles arranezve, hogy milyen a kornyezo elemek surusege.

Amennyiben a Pareto front minden elemenek osszeadjuk ezt az erteket,akkor megkapjuk az Ssh erteket3. Ez egy jellemzot ad arra, hogy milyen aPareto front osszesıtett surusege.

8.3. Ertekeles

+ Jol mukodik tobbcelu optimalizalas eseten.

+ Pareto dominancian alapul a kiertekelese.

+ A Pareto frontot adja visszateresi ertekul

+ Ezen belul is igyekszik az egymastol tavoli pontokat megadni.

– Erzekeny a szigma ertekre.

– Nincs benne elitizmus.

– Nagy a szamıtasigenye.3niche count

Page 75: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

8.4. FELHASZNALT IRODALOM 67

8.4. Felhasznalt irodalom

[6]

Page 76: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

688. FEJEZET. NON-DOMINATED SORTING GENETIC ALGORITHM

Page 77: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

9. fejezet

Non-dominated SortingGenetic Algorithm II

9.1. Alapelv

Az NSGA algoritmus jol mukodik, viszont van nehany hatranya, amit akesobbi kutatasok soran sikerult kikuszobolni. Ezek az alabbiak:

� a suruseg szamıtasnal erzekeny a σ parameter ertekre,� nincs benne elitizmus,� nagy a szamıtasigenye.Az NSGAII eseteben a mukodes alapelve hasonlo, viszont szamos techni-

kai modosıtassal sikerult megoldani a fenti problemakat. Egyreszt jelentosengyorsıthato a Pareto frontok kivalasztasa, illetve a suruseg becslese. Amukodes alapelve pedig nemileg szinten modosult, hogy tamogassa az eli-tizmust.

9.2. Megvalosıtas

9.2.1. Fast Nondominated Sorting Approach

A hagyomanyos NSGA eseteben az egyes frontok eloallıtasakor minden ele-met mindennel ossze kell hasonlıtani, ennek a lepesszama meglehetosen ma-gas: M ∗N ∗N ∗N lepes (ahol N populacio meret, M a celfuggvenyek szama,legrosszabb esetben minden frontban csak egy elem van, ezert van az utolsoN). Egy joval gyorsabb, csak M ∗N ∗N lepesu megoldashoz vezet az alabbiotlet.

Az elso ciklus osszehasonlıt minden elemet (p) minden masikkal (q), esmindegyikhez kiszamolja az alabbi ertekeket:

69

Page 78: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

709. FEJEZET. NON-DOMINATED SORTING GENETIC ALGORITHM II

9.1. Algoritmus NSGAII NonDominatedSort

1: fuggveny NonDominatedSort(R)2: F ← ∅3: ciklus ∀ p ∈ R4: np ← 05: Sp ← ∅6: ciklus vege7: ciklus ∀ p ∈ R8: ciklus ∀ q ∈ R \ {p}9: ha q ≺ p akkor

10: np ← np + 111: Sq ← Sq ∪ {p}12: elagazas vege13: ciklus vege14: ha np = 0 akkor15: F ← F ∪ {p} . First Pareto front16: elagazas vege17: ciklus vege18: pfi← 1 . Pareto front iterator19: ciklus amıg F 6= ∅20: F ′ ← ∅ . Next Pareto front21: ciklus ∀p ∈ F22: prank ← pfi23: ciklus ∀q ∈ Sp24: nq ← nq − 125: ha nq = 0 akkor26: F ′ ← F ′ ∪ {q}27: elagazas vege28: ciklus vege29: ciklus vege30: pfi← pfi+ 131: F ← F ′ . Current Pareto front32: ciklus vege33: fuggveny vege

Page 79: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

9.2. MEGVALOSITAS 71

� np erteket, ami megadja, hogy hany masik elem dominalja a p meg-oldast;

� Sp halmazt, ami megadja azokat az elemeket, amelyeket a p dominalja.Ekozben azokat, akiket senki se dominalt (tehat az elso Pareto front elemei),osszegyujti egy F halmazba.

Ezt kovetoen el lehet kezdeni megadni az egymast koveto Pareto frontokelemeit. Ehhez vegig kell nezni az F halmaz, tehat az aktualis (pfi-edik)Pareto front elemeit:

1. Ezeknel az elemeknel eltaroljuk, hogy a rangjuk (prank) legyen pfi.

2. Ezeknek az elemeknek vegignezzuk az Sp halmazukat, es az osszes ottlevo q elemnek csokkentjuk az nq erteket eggyel.

3. Ha valakinek ıgy az nq erteke 0-ra valt, az azt jelenti, hogy oket csak azaktualis Pareto frontban levok dominaltak, tehat ok jonnek a kovetkezofrontba. Oket osszegyujtjuk az F ′ halmazba, ami majd a kovetkezoPareto front lesz.

4. A fentieket megismeteljuk a kovetkezo Pareto frontra egeszen addig,amıg elfogynak az elemek.

9.2.2. Suruseg becsles

Az NSGA altal hasznalt σ nem szerencses, mert fugg a problemater dimen-zioitol, es nehez meghatarozni. A szamıtasi komplexitasa is nagy, hiszenN ∗N osszehasonlıtast igenyel a sharing fuggvenyek szamıtasa. Erre szintentalalhatunk egy gyorsabb, csak M ∗N ∗ logN lepest igenylo becslest.

Az NSGA II megprobalja egy egyszeru modon megbecsulni az egyes ele-mek kornyezetenek suruseget. Ehhez a legkozelebbi ket szomszedos elemtavolsagat hasznalja fel:

1. Az elso celfuggveny ertekei alapjan sorbarakja az aktualis Pareto frontelemeit.

2. Minden elemhez kiszamol egy idistance tavolsagot, ami

� ket szelso elemnel ∞,

� a tobbieknel pedig a ketoldali kozvetlen szomszedok tavolsagabolszamıthato:

cdmi =gm(gpm(pi+1))− gm(gpm(pi−1))

(gmaxm − gminm )(9.1)

Page 80: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

729. FEJEZET. NON-DOMINATED SORTING GENETIC ALGORITHM II

9.2. Algoritmus NSGAII CrowdingDistance

1: fuggveny CrowdingDistance(F,G)2: ciklus ∀p ∈ F3: pdist ← 04: ciklus vege5: ciklus ∀gm ∈ G . Iterate on all objectives6: Sort(F, gm)7: F [1]dist ←∞8: F [|F |]dist =∞9: ciklus i ← 2-tol (|F | − 1)-ig

10: F [i]dist ← F [i]dist + gm(gpm(F [i+1]))−gm(gpm(F [i−1]))(gmax

m −gminm )

11: ciklus vege12: ciklus vege13: fuggveny vege

Az indexeles itt most a rendezes szerinti sorrendet jelenti. A gmaxm

es gminm ertekek pedig az m. celfuggveny altal visszaadott ertekekminimuma, illetve maximuma.

3. Ezeket az erteket kell osszegezni az osszes celfuggveny eseten, es ezekosszege ad egy surusegi becslest (pdist).

Minel kisebb a fuggveny visszateresi erteke (tehat annal kisebb az elemtavolsaga az o kozvetlen szomszedaitol), annal nagyobb a suruseg becsulterteke1.

9.2.3. Szelekcio

A fenti szamıtasok alapjan minden elemnek megvan a Pareto rangja, illetveismert a crowding distance erteke. Ez alapjan egy elem akkor dominal egymasikat, ha annak rangja kisebb (korabbi Pareto frontban volt), vagy ha ezazonos, akkor kisebb a surusege.

p ≺ q ha prank < qrank ∨ (prank = qrank ∧ pdist > qdist) (9.2)

A fentieket osszefoglalva a modszer alapveto mukodese az alabbi:

1. Letrehozzuk az elso veletlen N elemu generaciot (P). Egy Q halmazfogja tartalmazni a leszarmazottakat, ez kezdetben ures.

1crowding distance

Page 81: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

9.2. MEGVALOSITAS 73

9.3. Algoritmus NSGAII Selection

1: fuggveny NSGAII-Selection(P,Q,G)2: M ← ∅3: R← P ∪Q4: NonDominatedSort(R)5: pfi← 16: ciklus amıg |M | < N7: F ← {p ∈ R | prank = pfi}8: ha |M |+ |F | ≤ N akkor9: M ←M ∪ F

10: kulonben11: CrowdingDistance(F,G)12: Sort(F, .dist)13: ciklus i ← 1-tol N − |M |-ig14: M ←M ∪ {F [i]}15: ciklus vege16: elagazas vege17: pfi← pfi+ 118: ciklus vege19: vissza M . M contains .rank and .dist for tournament selection20: fuggveny vege

9.4. Algoritmus NSGAII

1: fuggveny NSGAII(S, G,StopCondition)2: P ← InitializePopulation(S)3: Q← ∅4: ciklus amıg ¬StopCondition()5: P ← Selection(P,Q,G)6: Pbest ← {x ∈ P | xrank = 1}7: Q←MakeNewPopulation(P,≺)8: ciklus vege9: vissza Pbest

10: fuggveny vege

Page 82: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

749. FEJEZET. NON-DOMINATED SORTING GENETIC ALGORITHM II

2. A szelekcio muvelet parameterkent megkapja mindkettot, ez alapjanletrehozza az R = P +Q populaciot (ez biztosıtja az elitizmust).

3. Minden R beli elemnek kiszamıtjuk a rangjat a mar megismert modon.

4. Ezt kovetoen az R-bol kivalasztjuk a legjobb N darab egyedet, ehhez:

(a) Eloallıtjuk az aktualis Pareto frontot (ezt mutatja a pfi).(b) Ha ennek minden eleme belefer a kovetkezo populacioba, akkor

atrakjuk az egeszet.(c) Ha nem, akkor kiszamoljuk a crowding distanceot. Ez alapjan

rendezunk, es csak annyi elemet rakunk at, amennyi atfer.(d) Ha kell meg elem, akkor a belso ciklust megismeteljuk.

5. Ez lesz a kovetkezo P populacio.

6. Ez alapjan a szokasos szelekcio, keresztezes, mutacio utan letrehozzukaz uj leszarmazott Q csoportot.

7. Ezeket a lepeseket kovetjuk, amıg nem jutunk egy megallasi feltetelhez.

9.3. Ertekeles

+ Jol mukodik tobbcelu optimalizalas eseten.

+ Pareto dominancian alapul a kiertekelese.

+ A Pareto frontot adja visszateresi ertekul

+ Ezen belul is igyekszik az egymastol tavoli pontokat megadni.

+ Szamıtasigenye elfogadhato.

+ Keves parametert hasznal.

– Surusegbecslese kevesbe pontos, mint az NSGA eseteben.

9.4. Felhasznalt irodalom

[3]

Page 83: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

10. fejezet

Particle Swarm Optimization

10.1. Alapelv

Szinten egy biologiailag inspiralt algoritmus, amelynek alapelve a madar eshaj rajok mozgasan alapul. Jol lathato, hogy ezek kepesek a hatekony egyuttmozgasra, mikozben nincs egy kituntetett vezeto, aki iranyıtana a teljes fo-lyamatot. A PSO algoritmus ezt a mukodest probalja felhasznalni az opti-malizalasi feladatok megoldasa soran.

A modszer tehat egy populacion alapul, itt nincsenek kulonbozo generaciok,vegig ugyanaz a populacio mozog a terben. Minden egyednek van egy sajatpozıcioja a keresesi terben (tehat ez a pozıcio egy lehetseges megoldasjeloltetreprezental), illetve egy sebessege (ami egy pozıciovaltozast mutat).

Minden pozıciohoz hozzarendelunk egy fitnesz erteket, es a raj celja, hogyminel kozelebb keruljenek az alacsonyabb fitneszu teruletekhez az alabbiszabalyok betartasaval:

� az egyedek kozott nincs egy kituntetett elem aki iranyıtana a tobbit,� mindenki ismeri a raj altal eddig elert legjobb optimumot (globalis

optimumot),� mindenki ismeri az onmaga altal elert legjobb optimumot (lokalis op-

timum).

Megjegyzes: felrevezeto lehet az elnevezes, de jelen esetben a globalisoptimum es lokalis optimum alatt nem az eddig hasznalt fogalmakat ertjuk.

Egy veletlen kiindulo allapot es kiertekeles utan az egyedek mozogni kez-denek. Itt figyelembe veszik eddigi mozgasi iranyukat, illetve a globalis esa lokalis optimum helyet. Ezeket sulyozva figyelembe veve allapıtjak megpillanatnyi sebesseguket.

75

Page 84: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

76 10. FEJEZET. PARTICLE SWARM OPTIMIZATION

10.2. Megvalosıtas

10.2.1. Alap mukodes

10.1. Algoritmus ParticleSwarmOptimization

1: fuggveny ParticleSwarmOptimization(S, f,StopCondition)2: P ← InitializePopulation(S) . Position+velocity3: Evaluation(P, gopt, f)4: ciklus amıg ¬StopCondition()5: CalculateVelocity(P, gopt)6: ciklus ∀p ∈ P7: p← p+ pvelo

8: ciklus vege9: Evaluation(P, gopt, f)

10: ciklus vege11: vissza gpm(gopt)12: fuggveny vege

10.2. Algoritmus PSO evaluation

1: fuggveny Evaluation(P, gopt, f)2: ciklus ∀p ∈ P3: ha f(p) < f(popt) akkor4: popt ← p5: ha f(p) < f(gopt) akkor6: gopt ← p7: elagazas vege8: elagazas vege9: ciklus vege

10: fuggveny vege

A rendszer lepesei tehat az alabbiak:

1. Inicializalas: a tobbi populacioalapu modszerhez hasonloan a keresesiterben veletlenszeruen kivalasztjuk a kezdopozıciokat, illetve a kezdosebessegeket.

2. Kiertekeles: minden egyed megallapıtja a sajat fitneszet, majd ennekmegfeleloen modosıtja a globalis es lokalis optimumok erteket.

Page 85: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

10.2. MEGVALOSITAS 77

3. Sebessegek meghatarozasa: minden egyed megallapıtja a sajat sebessegvektorat.Ehhez figyelembe tudja venni az aktualis pozıciojat, sebesseget, illetvea globalis es lokalis optimumokat.

4. Mozgatas: a sebessegnek megfeleloen modosıtjuk a pozıciot.

5. Kiertekeles: ujra kiertekeljuk az egyedeket, szukseg eseten modosıtva aglobalis es lokalis optimumok erteket.

6. A fenti lepeseket addig ismeteljuk, amıg nem teljesul valamelyik megallasifeltetel.

A fuggveny visszateresi erteke a globalis optimumhoz tartozo problematerbelimegoldas lesz.

10.2.2. Sebesseg meghatarozas

A modszer fontos kerdese, hogy mikent allapıtjak meg az egyes egyedek asebessegeiket (ezen tulmenoen a tobbi lepes tulajdonkeppen mar automati-kusan, determinisztikusan megtortenik).

Sebesseg fogalom barmi lehet, de kell, hogy tamogassa az alabbi kove-telmenyeket:

� ket pozıcio kulonbsege egy sebesseg legyen,� sebesseget meg lehessen szorozni egy skalar ertekkel,� ossze lehessen adni ket sebesseget,� egy pozıciohoz hozza lehessen adni egy sebesseget.

Az uj sebesseg megallapıtasa tipikusan az alabbiakon alapul:

� jelenlegi sebesseg,� globalis optimum iranya az aktualis pozıciotol,� lokalis optimum iranya az aktualis pozıciotol.

Ezeket a tenyezoket megfeleloen sulyozva, esetenkent megfelelo veletlen szamokkalkombinalva szamıtja a haladasi iranyt.

Page 86: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

78 10. FEJEZET. PARTICLE SWARM OPTIMIZATION

10.3. Algoritmus CalculateVelocity

1: fuggveny CalculateVelocity(P, gopt)2: ciklus ∀p ∈ P3: ciklus i ← 1-tol |p|-ig4: rp ← RNDu(0, 1)5: rg ← RNDu(0, 1)6: pvelo[i]← ωpvelo[i] + Φprp(p

opt[i]− p[i]) + Φgrg(gopt[i]− p[i])

7: ciklus vege8: ciklus vege9: fuggveny vege

10.3. Ertekeles

+ Nagy keresesi terek eseten lehet hasznos, mivel ezeket reszletesebbentudja atfesulni. Az egyedek nem ugralnak egyik pontbol a masikba,hanem folyamatosan haladnak.

+ Amikor kozelıt a globalis optimumhoz, akkor az atlagszamıtasnak meg-feleloen automatikusan lassulnak az egyedek.

+ Jol parhuzamosıthato.

– Sok parametere van, nehezen konfiguralhato.

– Mukodesi elvebol adodoan csak szam keresesi terekben mukodik.

10.4. Kiegeszıtesi lehetosegek

� A sebesseg meghatarozasanal szamos keplet jelent meg. Peldaul egyegyszeru kibovıtesi lehetoseg, hogy az ido mulasaval folyamatosan lassıtjukaz elemeket.

10.5. Felhasznalt irodalom

[1]

Page 87: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

11. fejezet

K-kozep

11.1. Alapelve

A K-kozep1 eljaras egy tipikus nem hierarchikus klaszterezesi modszer.Az eljaras eltarol N darab centroidot (C1, C2, ..., CN), amelyek a klaszte-

rek kozeppontjait hatarozzak meg. Minden pont abba a klaszterbe tartozik(K1, K2, ..., KN), amelynek a centroidjahoz a legkozelebb van. Az eljarasmenete az, hogy egy kiindulo allapotbol ugy probalja meg mozgatni ezeketa centroidokat, hogy minel inkabb egymastol elkulonulo klaszterek jojjenekletre.

Alapveto lepesei:

1. Inicializalas, kezdo centroidok (klaszterek”kozeppontjanak”) megadasa

(tipikusan veletlenszeruen).

2. Elemek besorolasa a klaszterekbe a tavolsagi adatok alapjan (mindenelem a hozza legkozelebbi centroid klaszterebe kerul).

3. Ez alapjan klaszterek kozeppontjanak modosıtasa (minden centroid ujpozıcioja a hozza tartozo elemek pozıcioinak atlaga lesz).

4. Amennyiben valtoztak a kozeppontok, akkor megismeteljuk a muveletet.

5. Amennyiben nem valtoztak a kozeppontok, kilep az eljaras.

11.2. Algoritmus

A modszer elso lepeskent letrehozza a kezdo centroidokat, ez kerul a C ′ hal-mazba. Ez a halmaz mindig a kovetkezo iteracio centroidjait fogja tartal-

1K-means

79

Page 88: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

80 11. FEJEZET. K-KOZEP

11.1. Algoritmus K-means

1: fuggveny K-means(P,N, ds)2: C ′ ← InitializeCentroids(P,N) . Next centroids3: ciklus4: C ← C ′ . Centroids5: Ki ← ∅|∀i ∈ 1, 2, ..., |C| . Clusters6: ciklus ∀x ∈ P7: nearest← arg min

i∈{1,2,...,|C|}ds(x,Ci)

8: Knearest ← Knearest ∪ {x}9: ciklus vege

10: ciklus i ← 1-tol |C|-ig

11: C ′i ←∑

x∈Ki

x

|Ki|12: ciklus vege13: amıg C 6= C ′

14: vissza K15: fuggveny vege

mazni. A ciklus elso lepesekent ezzel aktualizaljuk is a C valtozot.

Ezutan toroljuk a K halmazokat (tehat a klaszterek elemeit), majd ezeketelkezdjuk feltenni. Minden elemet (x) egyesevel megvizsgalunk, megkeressuk,hogy melyik centroidhoz vannak a legkozelebb. Ezt kovetoen elhelyezzuk oketaz ehhez a centroidhoz tartozo klaszterben.

A klaszterek feltolteset kovetoen kiszamoljuk a klaszterekben levo elemekpozıciojanak atlagat. Ezzel az ertekkel frissıtjuk a klaszter kozeppontjat.Amennyiben a frissıtes utan nem valtozott egyik centroid sem, akkor kilepunkaz ciklusbol.

A fuggveny visszateresi erteke a klaszterek halmaza.

11.3. Ertekeles

+ Egyszeru, gyors megoldas.

– Sajatossaga, hogy elore meg kell adni a klaszterek szamat. Ez gyakraneleg nagy hatranyt jelent, mivel nem ismerjuk ezt az erteket.

Page 89: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

11.4. KIEGESZITESI LEHETOSEGEK 81

11.4. Kiegeszıtesi lehetosegek

� Amennyiben nem ismerjuk elore a klaszterek szamat, ugy az is egy le-hetoseg, hogy lefuttatjuk a muveletet egymas utan kulonbozoN ertekekkel,es ezek kozul valasztjuk ki a legjobbat.

11.5. Gyakorlati problemak

Jol hasznalhato kepfeldolgozasi feladatoknal szegmentalasra. Elsokent felepıtunkegy hisztogramot (a kep megadott intenzitasu pixeleibol hany darab van),majd megprobaljuk megkeresni a centroidokat ugy, hogy minden pixelnek aleheto legkisebb legyen a tavolsaga az ot tartalmazo klaszter kozeppontjatol(tavolsag alatt itt az intenzitaskulonbseget ertjuk). Erdekes, hogy ennel amodszernel nem is vesszuk figyelembe a pixelek egymashoz valo elhelyez-kedeset, megis jol hasznalhato eredmenyt ad.

11.6. Felhasznalt irodalom

[5]

Page 90: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

82 11. FEJEZET. K-KOZEP

Page 91: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

12. fejezet

DBSCAN

12.1. Alapelv

A Density-Based Spatial Clustering of Applications with Noise (DBSCAN)egy hatekony suruseg-alapu klaszterezesi eljaras, amely a terben levo pontokkozul kivalogatja azokat, amelyek egymashoz kelloen kozel helyezkednek el(nagy surusegu teruleten). Ez egy hierarchikus modszer, azon belul is ossze-vono jellegu, tehat egy pontbol kiindulva egyre nagyobb klasztereket kezd elnovelni.

12.2. Alapfogalmak

A klaszterezes bemenetei az alabbiak:

� A pontok halmaza (S), amelyen belul a keresest vegezzuk.

� Egy tavolsagfuggveny (ds), amellyel meghatarozhato, hogy ket pontmilyen tavolsagra van egymastol.

� Illetve tovabbi parameterek: egyminPts ami egy minimalis darabszamothataroz meg, es egy ε, ami egy minimalis tavolsagot hataroz meg.

Az algoritmus bemutatasa elott celszeru nehany alapfogalmat tisztazni.

� Belso pont1: egy p ∈ S pontot belso pontnak nevezunk, ha a tolelegfeljebb ε tavolsagra levo elemek szama legalabb minPts.

1core point

83

Page 92: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

84 12. FEJEZET. DBSCAN

� Kozvetlen suru elerhetoseg2: egy q ∈ S pont kozvetlenul surun elerhetoegy p ∈ S pontbol, ha p egy belso pont, es a q tole vett tavolsagalegfeljebb ε.

ds(p, q) ≤ ε (12.1)

� Suru elerhetoseg3: egy q ∈ S surun elerheto egy p ∈ S pontbol, haletezik olyan a1, a2, ..., an ut, ahol a1 = p es an = q es minden ai+1 pontkozvetlenul surun elerheto az ai pontbol (∀i ∈ {1..n − 1} eseten). Ezvalojaban nem mas, mint a kozvetlen suru elerhetoseg tranzitıv lezartja.

� Kıvulallok4: minden o ∈ S pont, amelyek nem erhetoek el egyetlenp ∈ S pontbol sem.

A belso pontokat es a beloluk surun elerheto pontok halmazat tekintjukklasztereknek. Azokat a pontokat, amelyek egyik ilyen klaszterbe se kerultekbe, pedig zajnak.

Ezek alapjan az alapmukodes:

1. Vegyuk azokat a pontokat, amelyeknek az ε kornyezeteben legalabbminPts darab masik pont talalhato.

2. Ezeket a belso pontokat es az ε kornyezetben levo pontokat tekinthetjukegy klaszter kiindulo halmazanak.

3. Amennyiben vannak a terben olyan pontok, amelyek meg nem reszei en-nek a halmaznak, viszont annak valamelyik belso pontjatol ε tavolsagonbelul vannak, akkor ezekkel egeszıtsuk ki a halmazt.

4. Amennyiben mar nem talalunk ilyen pontot, megkaptuk a kezdopontbolelerheto legnagyobb klasztert.

5. Vegezzuk el a muveletet a tobbi belso pontra.

Vegyuk eszre, hogy a klaszterek atfedhetik egymast (tipikusan az egyklaszter kulonbozo pontjaibol indulo keresesek atfedo eredmenyeket adnak).Ezert menet kozben csak olyan kezdopontokat valasztunk, illetve olyan ele-mekkel bovıtunk, amelyek meg nem lettek feldolgozva.

2direct reachable3reachable4outlier

Page 93: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

12.3. MEGVALOSITAS 85

12.3. Megvalosıtas

12.3.1. Algoritmus

12.1. Algoritmus DBSCAN

1: fuggveny DBScan(S, ds, ε,minPts)2: C ← ∅ . Tarolja a klasztereket3: I ← ∅ . Tarolja a mar feldolgozott pontokat4: ciklus ∀p ∈ S5: ha p /∈ I akkor6: Q← {x ∈ S|ds(p, x) ≤ ε} . p szomszedai es o maga7: ha |Q| ≥ minPts akkor . p feldolgozatlan belso pont8: R← ∅ . p-bol elerheto pontok9: ciklus ∀q ∈ Q . Kisse perverz, mert valtozik a Q

10: ha q /∈ I akkor11: I ← I ∪ {q}12: R← R ∪ {q}13: D ← {x ∈ S|ds(q, x) ≤ ε} . q kozvetlen szomszedai14: ha |D| ≥ minPts akkor . q is belso pont15: Q← Q ∪D16: elagazas vege17: elagazas vege18: ciklus vege19: C ← C ∪R . Felvetel a klaszterek koze20: elagazas vege21: elagazas vege22: ciklus vege23: vissza C24: fuggveny vege

Elso lepeskent inicializaljuk a valtozokat, mind a klasztereket (C), mind amar feldolgozott pontokat tartalmazo halmaz (I) legyen ures.

A kovetkezo ciklus egyesevel vegignezi az elemeket, elsokent megvizsgalva,hogy nem lett-e meg feldolgozva. Ha nem, es a pont egy belso pont, ak-kor annak kornyezetet eltaroljuk a Q-ban, es elkezdunk ebbol egy klasztertfelepıteni (ez lesz az R).

A belso ciklus elkezdi megvizsgalni a Q-beli elemeket egyesevel. Ha azaktualis elem meg nem lett feldolgozva, akkor berakjuk az I-be es az R-be is. Amennyiben belso pont is, akkor az ε kornyezeteben levo elemeket

Page 94: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

86 12. FEJEZET. DBSCAN

elhelyezzuk a Q-ba tovabbi feldolgozasi celbol.Amikor a belso ciklus vegetert, akkor a felepıtett legnagyobb R klasztert

eltaroljuk a C halmazban. Ez lesz a kulso ciklus lefutasa utan a fuggvenyvisszateresi erteke.

12.4. Ertekeles

+ Jol tudja kezelni a zajos kornyezeteket (pl. a K-kozep modszer a zajtis mindenaron egy klaszterbe akarja helyezni).

– Nehez megtalalni a megfelelo parameter ertekeket.

– Sok elem eseten meglehetosen szamıtasigenyes lehet.

12.5. Felhasznalt irodalom

[4]

Page 95: Halad o Algoritmusok v1.02 1. FEJEZET. OPTIMALIZACI O 1.1.2.Heurisztik ak Az optimaliz aci os m odszerek sokf elek eppen csoportos that ok, tekinthetjuk az al abbi csoportos t ast:

Irodalomjegyzek

[1] Jason Brownlee: Clever Algorithms: Nature-Inspired Programming Reci-pes. 2011. ISBN 9781446785065. ISSN 0269-2821.

[2] Jason Brownlee: Clever Algorithms: Nature-Inspired Programming Reci-pes. 2011. ISBN 9781446785065. ISSN 0269-2821.

[3] Kalyanmoy Deb: NSGA II paper by Kalyanmoy Deb. IEEE Transactionson Evolutionary Computation, 6. evf. (2002) 2. sz., 182–197. p. ISSN1089778X.

[4] Jiawei Han – Micheline Kamber – Jian Pei: Data Mining: Concepts andTechniques. 2012. ISBN 9780123814791.

[5] J. A. Hartigan – M. A. Wong: Algorithm AS 136: A K-Means ClusteringAlgorithm. Applied Statistics, 28. evf. (2006) 1. sz., 100–108. p. ISSN00359254.

[6] N. Srinivas – Kalyanmoy Deb: Muiltiobjective Optimization Using Non-dominated Sorting in Genetic Algorithms. Evolutionary Computation, 2.evf. (2008) 3. sz., 221–248. p. ISSN 1063-6560.

[7] Thomas Weise: Global Optimization Algorithms. 2009.

87