Algoritmi Genetici. Operatori Genetici Uzuali Si Codificarea Binara

C U P R I N S

0. INTRODUCERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1. CÃUTARE, OPTIMIZARE, ÎNVÃØARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2. Noøiuni de teoria probabilitãøilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1. Variabile aleatoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2. Media ši dispersia unei variabile aleatoare . . . . . . . . . . . . . . . . . . . . . . . . 1 9

2.3. Matricea de covarianøã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

2.4. Repartiøia normalã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.5. Repartiøia uniformã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3. Metode tradiøionale de optimizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4. Cãutarea directã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5. Metode de coborâre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

6. Metoda gradientului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

7. Minimizarea de-a lungul razei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

8. Principiul punctului staøionar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

9. Metoda lui Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

10. Metode cvasi-Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

11. Metoda direcøiilor conjugate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

12. Algoritmii evolutivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

13. Învãøare ši mašini instruibile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

14. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2. ALGORITMI GENETICI ŠI EVOLUTIVI. PRINCIPII GENERALE . . . . . . . 33

1. Metafora evolutivã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2. Structura unui algoritm evolutiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3. STRUCTURA UNUI ALGORITM GENETIC . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2. Echilibrul explorare – exploatare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3. Rezolvarea problemelor utilizând algoritmi genetici . . . . . . . . . . . . . . . . . . . . . . 41

4. Structura algoritmilor genetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.1. Algoritmul genetic fundamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2. Modulele unui algoritm genetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5. Scheme ši blocuri constructive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6. Caracteristicile algoritmilor genetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49

4. OPERATORI GENETICI UZUALI. CODIFICAREA BINARÃ . . . . . . . . . . . . 51

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2. Selecøia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.1. Selecøia proporøionalã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.2. Scalarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54

2.3. Selecøia bazatã pe ordonare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.4. Alte mecanisme de selecøie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

2.4.1. O selecøie nestandard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57

2.4.2. Probleme multimodale. Niša ecologicã . . . . . . . . . . . . . . . . . . 58

2.4.3. Selecøia prin concurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3. Încrucišarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.1. Încrucišarea cu un punct de tãieturã . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.2. Încrucišarea cu mai multe puncte de tãieturã . . . . . . . . . . . . . . . . . . . . . 64

3.3. Alte variante ale operatorului de încrucišare . . . . . . . . . . . . . . . . . . . . . . 66

3.3.1. Încrucišarea adaptivã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.3.2. Încrucišarea segmentatã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.3.3. Încrucišarea cu amestec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.3.4. Încrucišarea uniformã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.4. Acøiunea operatorului de încrucišare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.5. Supravieøuirea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.6. Probabilitatea de încrucišare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.7. Consideraøii generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4. Mutaøia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5. Încrucišare versus mutaøie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

6. Operatorul de inversiune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

7. Selecøie versus recombinare, mutaøie ši inversiune . . . . . . . . . . . . . . . . . . . . . . 74

8. Algoritmul genetic fundamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

9. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5. CODIFICAREA REALÃ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

1. Codificarea specificã. Hibridizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

2. Codificarea realã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3. Operatorul de încrucišare pentru codificarea realã . . . . . . . . . . . . . . . . . . . . . . 81

3.1. Încrucišarea discretã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.2. Încrucišarea continuã (medie) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.3. Încrucišarea continuã (medie) completã . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.4. Încrucišarea convexã (sau intermediarã) . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.5. Operatorul SBX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

4. Operatorul de mutaøie pentru codificarea realã . . . . . . . . . . . . . . . . . . . . . . . . . 85

4.1. Mutaøia uniformã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

4.2. Mutaøia neuniformã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

5. Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6. OPTIMIZAREA FUNCØIILOR REALE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

1. Optimizarea funcøiilor de una ši mai multe variabile reale . . . . . . . . . . . . . . 91

1.1. Codificarea binarã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

1.2. Decodificarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

1.3. Precizia codificãrii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

1.4. Acurateøea soluøiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

1.5. Populaøia iniøialã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

1.6. Funcøia de adecvare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

1.7. Selecøia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

1.8. Operatorii genetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

1.9. Optimizarea unei funcøii de mai multe variabile reale . . . . . . . . . . . . . . 98

1.10. Optimizare cu restricøii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

1.11. Utilizarea codificãrii reale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

2. Optimizarea vectorialã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102

3. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106

7. TEOREMA SCHEMELOR ŠI PROBLEME CONEXE . . . . . . . . . . . . . . . . .109

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

2. Mãrimi ce caracterizeazã schemele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110

3. Dinamica schemelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111

4. Efectul selecøiei asupra dinamicii schemelor . . . . . . . . . . . . . . . . . . . . . . . . . . .112

5. Efectul recombinãrii asupra dinamicii schemelor . . . . . . . . . . . . . . . . . . . . . . . 114

6. Efectul selecøiei ši recombinãrii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

7. Efectul mutaøiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118

8. Teorema schemelor. Blocuri constructive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120

9. Ipoteza blocurilor constructive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121

10. Funcøii de ešec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122

11. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

8. ALTE ABORDÃRI PRIVIND ALGORITMII GENETICI.

PROGRAMAREA GENETICÃ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

2. Algoritmi genetici dezordonaøi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

2.1. Schema de codificare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

2.2. Incompletitudine ši ambiguitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

2.3. Operatorii genetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

2.3.1. Recombinarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

2.3.2. Mutaøia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

2.3.3. Posibilitãøi de generalizare . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

3. Codificarea delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

4. Diploidie ši dominanøã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

5. Programarea geneticã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

5.1. Principiile programãrii genetice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

5.2. Algoritmul fundamental al PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

5.3. Operatorii genetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

5.3.1. Operatorii de mutaøie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138

5.3.2. Operatorii de încrucišare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

5.3.3. Operatorul de clonare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

5.4. Aplicaøii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

6. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

9. STRATEGII EVOLUTIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

2. Strategia (1+1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

2.1. Principiul strategiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

2.2. Convergenøa strategiei (1+1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

2.3. Rata de convergenøã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

2.4. Modelul sferei. Probabilitatea de succes . . . . . . . . . . . . . . . . . . . . . . . . . 148

2.4.1. Modelul sferei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

2.4.2. Probabilitatea de succes pentru modelul sferei . . . . . . . . . . . . .148

2.5. Modelul coridor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153

2.6. Regula de succes 1/5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

2.7. Algoritmul de optimizare bazat pe strategia (1+1) . . . . . . . . . . . . . . . . . .157

2.8. Concluzii privind strategia (1+1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

3. Strategia evolutivã (+1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159

3.1. Principiul strategiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

3.2. Recombinarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

3.2.1. Principiul recombinãrii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

3.2.2. Recombinarea discretã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160

3.2.3. Recombinarea discretã globalã . . . . . . . . . . . . . . . . . . . . . . . . 161

3.2.4. Recombinarea intermediarã (convexã) . . . . . . . . . . . . . . . . . . 161

3.2.5. Recombinarea intermediarã globalã . . . . . . . . . . . . . . . . . . . . 162

3.3. Mutaøia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

3.4. Supravieøuirea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163

4. Strategia evolutivã (1+) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

5. Strategia evolutivã (1, ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164

6. Strategiile (+ ) ši (,). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165

6.1. Principiile strategiilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165

6.2. Reprezentarea indivizilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166

6.3. Mutaøia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167

6.3.1. Mutaøia standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167

6.3.2. Mutaøiile corelate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

6.4. Recombinarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

6.5. Parametrii strategiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

6.6. Algoritmul strategiilor evolutive (+) ši (,). . . . . . . . . . . . . . . . . . . . 175

7. Auto-adaptarea ši învãøarea evolutivã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177

8. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

10. PROGRAMAREA EVOLUTIVÃ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183

2. Automate finite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

3. Programarea evolutivã – modelul mašinii turing . . . . . . . . . . . . . . . . . . . . . . . .185

4. Programarea evolutivã pentru optimizarea funcøiilor . . . . . . . . . . . . . . . . . . . . . 188

4.1. Reprezentarea indivizilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188

4.2. Mutaøia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

4.3. Selecøia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

4.4. Recombinarea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

4.5. Algoritmul Programãrii Evolutive . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

4.6. Convergenøa metodei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

4.7. Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

5. Bibliografie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195

11. APLICAØIILE CALCULULUI EVOLUTIV . . . . . . . . . . . . . . . . . . . . . . . . . .197

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197

2. Alegerea unei strategii decizionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

3. Aplicaøii în instruirea ši proiectarea reøelelor neuronale . . . . . . . . . . . . . . . . . . . . .199

3.1. Instruirea reøelelor utilizând calculul evolutiv . . . . . . . . . . . . . . . . . . . . 200

3.2. Stabilirea arhitecturii reøelelor neuronale folosind Calculul evolutiv . . .201

4. Recunoašterea formelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

4.1. Un algoritm genetic pentru clasificarea nuanøatã (fuzzy) . . . . . . . . . . . 201

4.2. Alte abordãri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

4.3. Cromodinamica geneticã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204

4.3.1. Funcøia criteriu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

4.3.2. Operatorii genetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204

4.3.3. Supravieøuirea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

4.3.4. Stabilirea claselor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207

5. Automatele celulare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208

5.1. Noøiuni de bazã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

5.2. Folosirea AG pentru determinarea funcøiilor de tranziøie . . . . . . . . . . . .210

6. Alte aplicaøii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

7. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213

=== Capitolul0 ===

0

INTRODUCERE

Calculul Evolutiv (C.E.) reprezintã o direcøie de cercetare nouã ši de mare importanøã atât din punct de vedere teoretic cât, mai ales, din punct de vedere al aplicaøiilor. Putem considera Calculul Evolutiv ca fiind un domeniu de sine stãtãtor al Inteligenøei Artificiale. Îl putem însã considera ši drept o tehnicã pentru rezolvarea unor probleme reputate ca fiind grele, din cele mai diferite domenii: štiinøã, tehnicã, economie, urbanisticã etc.

Din punctul de vedere al ideilor de pornire ši aplicaøiilor Calculul evolutiv (sau adaptativ) evidenøiazã douã aspecte:

(i) Utilizeazã idei ši concepte referitoare la sistemele adaptive complexe pentru a rezolva probleme computaøionale (în special de optimizare ši cãutare).

(ii) Utilizeazã calculatoarele ši metodele computaøionale pentru a modela sisteme adaptive complexe.

Tehnicile Calculului evolutiv au fost iniøial dezvoltate pentru rezolvarea unor probleme de optimizare complicate, a cãror abordare prin mijloace tradiøionale era imposibilã. Curând s-a observat cã metodele gãsite sunt utile în toate acele situaøii în care ne muløumim sã gãsim o soluøie a problemei, fãrã a pretinde cã aceasta sã fie neapãrat o soluøie optimã.

Calculul evolutiv are rãdãcini multiple, care s-au dezvoltat în douã direcøii principale. Prima direcøie, ši cea mai popularã, o reprezintã Algoritmii Genetici. Cea de-a doua direcøie conøine Programarea Evolutivã ši Strategiile Evolutive. Alte directii derivate sunt Programarea Geneticã a lui J. Kaza ši Sistemele de Clasificare Instruibile propuse de Holland.

Din punct de vedere al istoriei ideilor Calculul evolutiv este important ši deoarece marcheazã un punct de cotiturã în abordarea problemelor de optimizare, control ši cãutare. Metodele dezvoltate în C.E. sunt generale, independente de problemã ši de funcøia ce se dorešte a fi optimizatã (funcøia criteriu). Proprietãøile de continuitate, convexitate, derivabilitate sau de netezime ale funcøiei criteriu nu mai influenøeazã alegerea metodei de optimizare. Din cauza generalitãøii ši simplitãøii lor metodele Calculului evolutiv sunt populare atât printre practicienii cât ši printre teoreticienii diferitelor domenii (inteligenøã artificialã, optimizare, inginerie, štiinøele naturii, economie). Aceste metode au o comportare bunã, sunt robuste ši, contrar unei pãreri rãspândite, nu sunt mari consumatoare de timp. Multe probleme care nu pot fi abordate cu tehnici tradiøionale au putut fi soluøionate utilizând metodele Calcului evolutiv.

De regulã algoritmii genetici ši celelalte tehnici ale calculului evolutiv sunt utilizate pentru a minimiza o funcøie criteriu. Existã însã probleme pentru care nu este simplã formularea explicitã (analiticã) a unei funcøii criteriu. Însã, de regulã, ši în aceste cazuri se poate ataša un anumit scor fiecãrei soluøii gãsite. Scorul mãsoarã calitatea soluøiei respective. Uneori scorul (adecvarea unei soluøii) este stabilit în funcøie de o muløime de exemple de instruire. Se poate folosi ši evaluarea într-un model al problemei. În acest caz metodele C.E. pot fi utilizate pentru a obøine soluøii tot mai performante pornind de la o populaøie de soluøii aleatoare.

Calculul evolutiv este un corpus de concepte ši metode, având ca punct de pornire o metaforã biologicã. O populaøie (aleatoare) de soluøii iniøiale (cromozomi sau indivizi) este modificatã prin operatori de tip biologic (selecøie, încrucišare, mutaøie etc.). Procesul de modificare favorizeazã soluøiile cele mai bune. Cei mai buni indivizi (cromozomi) vor fi selectaøi ca pãrinøi ai unei noi generaøii de soluøii. În felul acesta calitatea soluøiilor obøinute se îmbunãtãøešte. Cel mai bun individ obøinut într-un numãr fixat de generaøii va constitui soluøia finalã a problemei.

Existã alte douã clase de metode de calcul neconvenøionale, robuste ši de mare succes. Acestea sunt Calculul Neuronal (Reøelele neuronale artificiale) ši Calculul Nuanøat (Sistemele fuzzy).

În Calculul neuronal un sistem format prin interconexiunea unui numãr mare de elemente de calcul simple (neuronii) este capabil sã se înveøe o sarcinã specificã pornind de la o muløime de exemple. Putem considera cã muløimea de instruire a unei reøele neuronale, datã prin perechi de forma (intrare, iešire), reprezintã valorile unei funcøii. Expresia acestei funcøii nu este cunoscutã.

A instrui o reøea neuronalã înseamnã a stabili ponderile reøelei (arhitectura ei se considerã fixatã) astfel încât reøeaua sã aproximeze (interpoleze) funcøia (necunoscutã) ale cãrei valori sunt date prin muløimea de instruire. Întrebarea este dacã acest lucru este posibil în general. Rãspunsul este afirmativ, pentru o clasã de reøele neuronale cu o arhitecturã de o complexitate suficientã. Astfel s-a demonstrat cã reøelele neuronale sunt aproximatori universali.

Acest lucru înseamnã cã o reøea neuronalã având o arhitecturã adecvatã (cel puøin un strat de neuroni intermediari, situaøi între stratul de intrare ši stratul neuronilor de iešire) poate aproxima orice funcøie cu o precizie doritã.

Calculul nuanøat (fuzzy) reprezintã un corpus de metode în care accentul cade pe tratarea situaøiilor afectate de o imprecizie de naturã ne-probabilistã. Aplicaøiile cele mai spectaculoase s-au obøinut în controlul proceselor ši sistemelor complexe, în recunoašterea formelor, ši în domeniul sistemelor expert care tolereazã imprecizia datelor. Aceastã abordare pornešte de la ideea cã imprecizia trebuie stapânitã, nu înlãturatã cu orice preø. Ambiguitatea ne ajutã sã sintetizãm informaøia ši sã facem faøã situaøiilor complexe. Capacitatea de a lucra cu informaøie imprecisã este caracteristicã minøii umane. Problema este de a transmite mašinilor aceastã capacitate.

Se admite cã între apartenenøa ši neapartenenøa unui obiect la o clasã existã o infinitate de situaøii intermediare, care nu pot fi ignorate. Apare astfel un nou concept de muløime, ca o generalizare naturalã a conceptului clasic.

Cele trei direcøii amintite tind sã se completeze reciproc ši sã se hibridizeze. Convergenøa lor a dat naštere unor noi ši puternice direcøii de cercetare: Calculul Inteligent. În Calculul inteligent cele trei domenii componente coopereazã în diferite moduri fãrã a-ši pierde însã individualitatea. Putem astfel întâlni reøele neuronale nuanøate, algoritmi genetici nuanøaøi, strategii nuanøate de control în care regulile se stabilesc utilizând algoritmi genetici, reøele neuronale instruite folosind algoritmi genetici ši alte combinaøii de interes.

*

* *

Cartea de faøã îši propune sã ofere o introducere în Calculul evolutiv ši sã abordeze principalele direcøii în care domeniul evolueazã. Cititorul va gãsi elementele teoretice de bazã ale domeniului ši un numãr de algorimti fundamentali. Informaøiile oferite sunt suficiente pentru ca cititorul sã aibã o imagine nu doar asupra conceptelor de bazã ci ši asupra cercetãrilor actuale în domeniu ši sã poatã aborda literatura de specialitate. Algoritmii sunt daøi cu detalii suficiente pentru a permite dezvoltarea de programe.

Structura cãrøii

Cartea este structuratã în 11 capitole, fiecare însoøit de bibliografie.

Primul capitol prezintã principiile sistemelor inteligente bazate pe mecanisme de cãutare a soluøiilor în spaøiul stãrii problemei. Sunt reamintite o serie de noøiuni de teoria probabilitãøilor ce vor fi necesare în continuare. Se trec în revistã cele mai cunoscute metode clasice de optimizare, utile în sistemele de rezolvare a problemelor bazate pe cãutare. Se evidenøiazã legãtura dintre aceste metode ši metodele bazate pe Calculul evolutiv ši pe Calculul neuronal.

În capitolul doi se prezintã ideile de bazã ale calculului evolutiv. Se discutã principiile învãøãrii colective într-o populaøie ši mecanismele biologice ce fac posibil acest tip de învãøare. Se dã structura generalã a unui algoritm evolutiv.

În capitolul trei sunt prezentate ideile fundamentale relative la algoritmi genetici. Se descriu sumar operatorii genetici de bazã. Se face o scurtã introducere în teoria schemelor ši blocurilor constructive.

Capitolul patru este consacrat studiului operatorilor genetici utilizaøi de un algoritm genetic ce folosešte codificarea binarã a cromozomilor (soluøiilor potenøiale). Sunt analizaøi operatorii de selecøie, încrucišare, mutaøie ši se discutã relaøiile ce se pot stabili între acešti operatori. O atenøie specialã se acordã operatorului de selecøie. Se prezintã metoda nišei ecologice, ca un mecanism dedicat rezolvãrii problemelor în care este importantã obøinerea mai multor soluøii (optimale sau aproape optimale). În finalul capitolului se prezintã algoritmul genetic fundamental.

Capitolul cinci este dedicat algoritmilor genetici ce lucreazã cu o codificare prin numere reale a soluøiilor. În acest caz fiecare cromozom este un vector cu componente reale. Se descriu operatorii genetici utilizaøi.

În capitolul šase se discutã utilizarea algoritmilor genetici pentru determinarea punctelor de optim ale funcøiilor reale. Se indicã felul în care se poate obøine codificarea soluøiilor de pornire ši cum se realizeazã decodificarea soluøiei în cazul în care este utilizatã reprezentarea binarã. Se prezintã un algoritm pentru rezolvarea problemelor în care mai multe funcøii criteriu trebuie optimizate simultan (optimizare multicriterialã sau vectorialã). Ideea este de a utiliza conceptul de soluøie nedominatã (soluøie optimalã în sens Pareto). Algoritmul de optimizare prezentat este bazat pe conceptul de nišã ecologicã.

În capitolul šapte se prezintã o serie de rezultate matematice care incearcã sã ofere un rãspuns plauzibil întrebãrii “care este mecanismul care asigurã comportarea bunã ši performanøele algoritmilor genetici?”. Problema nu este simplã ši un rezultat pe deplin satisfãcãtor nu a fost obøinut încã. În acest capitol se prezintã în detaliu teorema schemelor, care reprezintã rezultatul teoretic fundamental privind comportarea algoritmilor genetici standard (reprezentarea binarã). Alte probleme discutate sunt ipoteza blocurilor constructive ši funcøiile de ešec (deceptive functions), adicã acele funcøii ce evidenøiazã limitãri ale algoritmilor genetici standard.

Capitolul opt prezintã alte douã direcøii privind algoritmii genetici. Acestea sunt Algoritmii genetici dezordonaøi (messy genetic algorithms) ši Codificarea delta. Algoritmii dezordonaøi folosesc cromozomi de lungime variabilã. În codificarea delta se utilizeazã un nivel de adaptare (nivelul delta) care este separat de mecanismul de cãutare. La nivelul delta se determinã perturbaøia optimã a soluøiei curente. Aceastã perturbare asigurã progresul cãutãrii, prin mutaøie.

Capitolul nouã este consacrat perezentãrii Strategiilor evolutive. În acest caz operatorul principal este cel de mutaøie. Se utilizeazã o codificare realã a indivizilor (soluøiilor potenøiale). Se descriu diferite modele de strategii evolutive. În strategia (1+1) schimbãrile vizeazã adaptarea unui singur individ. Prin mutaøie un pãrinte dã naštere unui singur descendent. În aceastã abordare lipsešte aspectul de învãøare colectivã într-o populaøie.

În strategia (+1) pãrinøi, 2, dau naštere unui descendent. Strategia utilizeazã ši un operator de recombinare (încrucišare). În strategiile (+) ši (,) existã un nivel de adaptare (control) care este încorporat indivizilor.

În capitolul zece sunt prezentate ideile de bazã ale Programãrii Evolutive. Iniøial aceastã abordare a vizat inducerea unui comportament inteligent într-un automat finit (sau într-o mašinã Turing). Ulterior ideile programãrii evolutive au fost extinse pentru rezolvarea unor probleme de optimizare ši cãutare mai generale.

Capitolul unsprezece este consacrat prezentãrii unor aplicaøii ale calculului evolutiv. O parte dintre aplicaøii sunt descrise în detaliu. Sunt trecute în revistã domeniile pentru care calculul evolutiv este un instrument util ši puternic. Se prezintã ideile de bazã ale Programãrii Genetice, algoritmul fundamental asociat ši o serie de aplicaøii. Se face o scurtã prezentare a Automatelor Celulare – o clasã de sisteme dinamice distribuite spaøial, în care multe elemente simple interacøioneazã pentru a produce un model de comportament complex. Se indicã modul în care algoritmii genetici pot fi folosiøi pentru a determina tranziøiile unui automat celular.

*

* *

Cartea nu presupune cunoštinøe preliminare asupra domeniului ši nici cunoštinøe speciale, matematice sau de alt fel. Este scrisã cu grija de a asigura cititorului o introducere în calculul evolutiv care sã fie ušor de urmãrit, clarã ši simplu de folosit.

Cartea se adreseazã informaticienilor, matematicienilor interesaøi de optimizare sau de problematica matematicii aplicate, inginerilor, economištilor, fizicienilor ši chimištilor interesaøi în analiza datelor ši controlul proceselor, biologilor, psihologilor, studenøilor acestor facultãøi ši elevilor liceelor de informaticã. Oricine este interesat sã-ši facã o idee asupra domeniului poate consulta cu folos acest volum.

Cartea poate fi folositã într-un curs de bazã sau într-un curs avansat pentru studenøi în informaticã, inginerie, štiinøe cognitive, štiinøe economice etc.

*

* *

Muløumesc tuturor celor care au fãcut posibilã realizarea acestei cãrøi.

Profesorilor Beatrice Lazzerini (Universitatea din Pisa), Jose Luis Verdegay (Universitatea din Granada) care m-au încurajat în scrierea acestei cãrøi.

Studenøilor ši colegilor mei care mi-au stimulat interesul pentru acest domeniu fascinant.

Domnului Lorin Motišan ši domnišoarelor Alina Pop ši Cristina Rotar, care mi-au dat un ajutor preøios în pregãtirea manuscrisului.

Editorului cãrøii, celor care mi-au procurat cãrøi ši articole, colaboratorilor, celor care, în diferite modalitãøi, m-au ajutat ši stimulat.

Tuturor le exprim gratitudinea mea.

=== Capitolul1 ===

1

CÃUTARE, OPTIMIZARE, ÎNVÃØARE

1. INTRODUCERE

Sarcinile unui sistem înzestrat cu inteligenøã artificialã por fi descrise ca reprezentând rezolvarea diferitelor probleme. Acelaši lucru în ceea ce privešte un sistem de luare a deciziilor, un sistem de control, etc. Nu este important cã aceste sisteme sunt complet, parøial sau deloc automatizate. Formularea unei probleme implicã definirea unui spaøiu al stãrilor problemei sau spaøiu al configuraøiilor. În jocul de šah, de exemplu, spaøiul stãrilor este dat de muløimea tuturor poziøiilor posibile ale pieselor pe tablã.

În numeroase situaøii rezolvarea unei probleme poate fi privitã drept cãutarea unei aumite configuraøii specifice (poziøia de mat, în cazul jocului de šah). În acest caz avem de-a face cu o problemã de cãutare, iar spaøiul problemei se numešte ši spaøiul de cãutare.

În unele situaøii problemei i se asociazã o anumitã funcøie criteriu (sau funcøie obiectiv). Rezolvarea problemei se identificã în acest caz cu optimizarea problemei asociate.

Separarea între problemele de cãutare ši optimizare nu este etanšã. Uneori pentru rezolvarea unor sarcini complexe cele douã tipuri de abordare pot fi aplicate împreunã. Sã notãm cã ši în cazul problemelor de optimizare cãutarea soluøiei se face tot într-un spaøiu de cãutare.

Este interesant sã observãm cã unele metode de optimizare sunt bazate pe cãutare. Vom reveni mai jos asupra acestui aspect.

Pentru ca un sistem (natural sau artificial) sã fie capabil sã acøioneze în condiøii aflate în schimbare, sistemul trebuie sã conøinã mecanisme care sã-i permitã adaptarea la aceste schimbãri. Printre cele mai eficiente mecanisme de adaptare sunt cele bazate pe învãøare. Prin învãøare sistemele sunt capabile sã-ši îmbunãtãøeascã performanøele. Existã o mare varietate de mecanisme de învãøare (vezi, de exemplu, Dumitrescu, 1995a). Unele mecanisme presupun utilizarea unei muløimi de instruire, pe baza cãreia se realizeazã auto-instruirea sistemului. Muløi dintre algoritmii de învãøare se bazeazã pe optimizarea unei funcøii de performanøã.

Acest capitol are un caracter introductiv. În urmãtorul paragraf se reamintesc unele noøiuni fundamentale din teoria probabilitãøilor. Paragrafele 3-11 sunt consacrate prezentãrii celor mai cunoscute metode clasice de optimizare ši cãutare.

2. NOØIUNI DE TEORIA PROBABILITÃØILOR

2.1. Variabile aleatoare

Fie (,S,P) un câmp de probabilitate, unde este muløimea evenimentelor elementare, S este câmpul ( -algebra) evenimentelor, iar P este o mãsurã de probabilitate. O variabilã aleatoare peste este o aplicaøie X : R , astfel încât orice submuløime a lui de forma

aparøine lui S , unde x este un numãr real arbitrar.

Din definiøia precedentã rezultã cã putem defini

.

Fie X o variabilã aleatoare. Asociem variabilei X o funcøie F : R R definitã prin

Funcøia F astfel definitã se numešte funcøia de repartiøie a variabilei aleatoare X .

Fie F funcøia de repartiøie a unei variabile aleatoare X. Numim densitatea de probabilitate (sau funcøia de probabilitate) a variabilei X funcøia F : R R+ care satisface egalitatea

Nu orice variabilã aleatoare admite o densitate de probabilitate. Numim variabilã aleatoare continuã o variabilã aleatoare cãreia i se poate asocia o densitate de probabilitate.

O variabilã aleatoare n-dimensionalã este un vector n-dimensional X = (X1,X2, … ,Xn) ale cãrui componente Xi sunt variabile aleatoare peste acelaši câmp de probabiliate.

Funcøia de repartiøie a variabilei n-dimensionale X se definešte ca fiind funcøia F de n variabile, F : Rn R datã de

.

pentru orice vector (x1, x2, … , xn) Rn .

2.2. Media ši dispersia unei variabile aleatoare

Fie X o variabilã aleatoare unidimensionalã. Dacã X poate lua doar o muløime numãrabilã de valori, atunci X este o variabilã aleatoare discretã.

Fie X o variabilã aleatoare discretã ši x1, x2, … valorile posibile ale acestei variabile.

Notãm cu p1, p2, … probabilitãøile corespunzãtoare:

Valoarea medie a variabilei aleatoare discrete X este numãrul real M(X) ce se definešte prin formula

În cazul în care numãrul valorilor este finit, existenøa lui M(X) este asiguratã. Pentru un numãr infinit de valori trebuie ca suma din membrul drept sã existe pentru a exista M(X) .

Se poate arãta cã dacã X ši Y sunt variabile aleatoare discrete ši M(X) ši M(Y) existã, atunci M(X+Y) existã ši

În general avem

unde ck sunt coeficienøi reali.

Dispersia sau varianøa variabilei aleatoare discrete X se noteazã 2 ši este numãrul real definit prin

Dispersia mãsoarã mãrimea fluctuaøilor variabilei aleatoare X în jurul valorii sale medii.

Se observã imediat cã

Noøiunea de valoare medie se poate defini ši pentru variabile aleatoare continue.

Fie X o variabilã aleatoare oarecare. Valoarea medie M(X) a lui X este datã de

unde integrala consideratã este integrala Lebesgue.

Dacã X este o variabilã aleatoare continuã, cu funcøia de repartiøie F , atunci

Dacã F este absolut continuã ši f este densitatea de probabilitate a lui X atunci avem

Ca ši în cazul discret, cantitatea

definešte dispersia sau varianøa variabilei aleatoare continue X .

Dispersia se mai poate scrie sub forma

2.3. Matricea de covarianøã

Fie X = (X1 ,X2 , … ,Xn) o variabilã aleatoare n-dimensionalã. Notãm cu mi media componentei Xi a variabilei X :

Cantitatea ij definitã prin

se numešte covarianøa variabilelor Xi ši Xj .

Se observã cã

Ašadar, auto-covarianøa ii este dispersia variabilei unidimensionale Xi .

Dacã variabilele Xi ši Xj sunt independente, atunci covarianøa lor ij este nulã.

Matricea

se numešte matricea de covarianøã a variabilei aleatoare X . Matricea de covarianøã este invariantã la translaøii. Determinantul C al matricei de covarianøã este ne-negativ.

2.4. Repartiøia normalã

Fie X o variabilã aleatoare unidimensionalã. Spunem cã variabila X urmeazã legea normalã cu parametrii m ši dacã densitatea sa de probabilitate este de forma

Funcøia de repartiøie corespunzãtoare va fi

Parametrii m ši ce apar în expresia lui f(x) au semnificaøia mediei ši respectiv dispersiei lui X .

Pentru densitatea de probabilitate normalã (sau Gaussianã) cu parametrii m ši se folosešte deseori notaøia N(m,). Vom mai spune ši cã X are repartiøia (sau distribuøia) normalã N(m,).

Sã notãm cã ovariabilã aleatoare X cu repartiøia N(m,) poate fi totdeauna transformatã într-o variabilã aleatoare Y având repartiøia normalã standard N(0,1). Aceastã transformare se realizeazã prin operaøia de normalizare:

Fie acum X o variabilã aleatoare n-dimensionalã. Variabila aleatoare X urmeazã legea normalã dacã densitatea sa de probabilitate este de forma

unde x R iar

ši

Observaøie.

În cele ce urmeazã, toøi vectorii consideraøi sunt vectori coloanã. Cu xT notãm transpusa vectorului x.

2.5. Repartiøia uniformã

Fie X o variabilã aleatoare multidimensionalã. Spunem cã variabila aleatoare X urmeazã repartiøia (distribuøia) uniformã pe intervalul (a,b), a b, dacã densitatea sa de probabilitate este

În punctele x= a ši x= b valoarea funcøiei f este arbitrarã.

Repartiøia uniformã a unei variabile aleatoare n-dimensionale poate fi definitã în mod similar.

Fie X = (X1 ,X2 , … ,Xn) o variabilã aleatoare n-dimensionalã. Fie M o submuløime deschisã, nevidã, de mãsurã Lebesgue finitã, M Rn. Spunem cã variabila aleatoare X urmeazã repartiøia (distribuøia) uniformã peste muløimea M dacã densitatea de probabilitate a lui X este datã de

unde V(M) este mãsura Lebesgue a lui M (“volumul” lui M).

3. METODE TRADIØIONALE DE OPTIMIZARE

Metodele clasice de optimizare pot fi grupate în douã clase mari: metode iterative ši metode neiterative (într-un pas). Metodele neiterative folosesc anumite proprietãøi (derivabilitate, convexitate) ale funcøiei obiectiv ši ale spaøiului de cãutare.

Cele mai multe probleme de optimizare se rezolvã numeric folosind metode iterative. Multe din schemele iterative pot fi considerate ca o discretizare a unui spaøiu de cãutare continuu. Metodele iterative pornesc cu o soluøie iniøialã (de regulã aleasã în mod arbitrar) ši calculeazã la fiecare pas o nouã soluøie.

Metodele iterative pot fi împãrøite în douã clase largi: metode de cãutare directã ši metode de coborâre (de tip gradient). Metodele de cãutare directã utilizeazã numai valorile funcøiei obiectiv. Metodele de coborâre reclamã informaøii privind valorile derivatei funcøiei.

4. CÃUTAREA DIRECTÃ

Dintre metodele de cãutare directã amintim metodele de cãutare exhaustivã, metodele de ameliorare iterativã, metodele de cãutare aleatoare (metodele probabiliste) ši metoda Box.

Metodele exhaustive iau în considerare toate posibilitãøile de explorare a spaøiului problemei. La fiecare pas se pãstreazã starea (soluøia) ce corespunde celei mai bune valori a funcøiei obiectiv. Cãutarea se terminã la epuizarea tuturor elementelor din spaøiul stãrilor. Aceste metode sunt ineficiente din cauza timpului de cãutare ce devine prohibitiv chiar pentru probleme relativ simple.

Procedurile de ameliorare iterativã folosesc un mecanism de generare pentru obøinerea noilor stãri. Mecanismul de generare asigurã o tranziøie dintr-o stare în alta printr-o micã perturbaøie a stãrii curente. Se construiešte o vecinãtate a stãrii curente. În aceastã vecinãtate sunt incluse toate stãrile ce pot fi atinse din starea curentã printr-o tranziøie. Dacã o stare din vecinãtate induce o ameliorare a funcøiei criteriu, ea va deveni noua stare a sistemului. Algoritmul se terminã când se obøine o stare s astfel încât vecinãtatea sa nu conøine o stare mai bunã.

Metodele probabiliste realizeazã schimbãri pseudoaleatoare ale stãrii curente, reøinând doar stãrile care amelioreazã starea curentã (în raport cu valoarea funcøiei criteriu). O astfel de metodã bazatã pe schimbãri aleatoare este recoacerea simulatã (simulated annealing). Algoritmul folosešte un parametru T având semnificaøia temperaturii termodinamice ši se bazeazã pe o analogie cu fenomenele ce au loc într-o bucatã de metal încãlzitã ši apoi rãcitã lent. Rãcirea lentã permite atingerea unui minim global al energiei interne.

Algoritmul de recoacere simulatã folosešte o metodã de tip Monte Carlo pentru a genera o muløime de stãri pornind de la starea curentã. Probabilitatea de acceptare a unei stãri noi depinde de parametrul T. Temperatura este fixatã la o valoare înaltã ši apoi ea descrešte treptat. La fiecare temperaturã sistemului îi este permis sã atingã echilibrul termic generând o muløime de stãri. Algoritmul se terminã cu o valoare micã a temperaturii. Ea se alege astfel încât, practic, nici o ameliorare a funcøiei criteriu nu mai este acceptabilã (pentru detalii se poate consulta monografia Van Laarhohev, Aarts, 1987).

Alte metode de cãutare directã (cum ar fi metodele de tipul “pattern search”) calculeazã la fiecare iteraøie o direcøie de cãutare folosind o combinaøie a cãutãrii locale ši a cãutãrii bazate pe reguli euristice. Metodele de acest tip pot fi afectate de convergenøã prematurã – cãutarea se terminã într-o stare ce reprezintã doar un optim local al problemei.

Metoda Box de cãutare directã, numitã ši metoda de optimizare evoluøionarã, utilizeazã un punct de vedere diferit. La fiecare pas metoda conservã nu o soluøie ci o populaøie de soluøii. La fiecare iteraøie ea creeazã o nouã muløime de soluøii în jurul celei mai bune soluøii a iteraøiei precedente. Ca ši metodele de ameliorare iterativã, cu care se aseamãnã, metoda Box este lentã ši nu foarte eficientã.

Metoda simplex este una din cele mai cunoscute metode de cãutare directã. Metoda folosešte un simplex al soluøiilor pentru a genera un nou simplex folosind anumite reguli ce depind de valorile funcøiei criteriu în punctele simplexului. Folosind simplexul se genereazã o direcøie de cãutare. În general metoda nu permite obøinerea soluøiei optime globale.

Metodele de cãutare directã sunt costisitoare din punctul de vedere al timpului de calcul. Eficienøa lor este în general redusã, ceea ce le face greu aplicabile pentru rezolvarea unor probleme mai complicate.

5. METODE DE COBORÂRE

Metodele de coborâre sunt cele mai populare proceduri de optimizare. La fiecare pas al procedurii se calculeazã o nouã direcøie a cãutãrii. Calculul acestor direcøii presupune cunoašterea valorii gradientului funcøiei în fiecare din punctele respective.

Fie o funcøie f : Rs R al cãrei minim dorim sã îl determinãm. Metodele de coborâre genereazã un šir de puncte de cãutare printr-o procedurã iterativã de forma:

unde:

(i) hk este un vector din Rs care indicã direcøia lui xk+1 faøã de xk .

(ii) ck este o constantã pozitivã care determinã mãrimea pasului de cãutare în direcøia hk . Se mai numešte ši crešterea de corecøie .

(iii) punctul iniøial x1 se alege de obicei în mod arbitrar .

Direcøia hk se alege astfel încât valoarea funcøiei sã scadã în aceastã direcøie.

Vectorul al derivatelor parøiale ale lui f în punctul x se mai numešte ši gradientul lui f în x . Avem deci:

.

Se štie cã derivata indicã direcøia celei mai rapide crešteri a funcøiei. Suntem interesaøi de gãsirea acelei direcøii care sunt opuse gradientului, ele realizând o descreštere a funcøiei. Prin urmare este convenabilã o direcøie hk ce face cu gradientul un unghi mai mare de 90. Øinând cont cã produsul scalar al vectorilor x ši y este

rezultã cã vom avea

Vom considera în Rs produsul scalar standard

,

unde cu xT am notat transpusa vectorului coloanã x .

Considerentele intuitive de mai sus ne conduc la urmãtoarea definiøie: Se numešte direcøie de coborâre (sau direcøie de descreštere) a funcøiei f : Rs R în punctul xk un vector h Rs pentru care produsul scalar este negativ, adicã:

Antigradientul al lui f în xk este o direcøie de coborâre a lui f în xk . În adevãr avem:

Observaøie: În cazul în care metoda iterativã descrie un proces de învãøare (instruire) atunci coeficientul ck are semnificaøia unei rate de învãøare (sau rate de corecøie).

6. METODA GRADIENTULUI

În cazul metodei de gradient direcøia de coborâre hk este datã de anti-gradientul funcøiei în punctul xk :

Deoarece antigradientul în x indicã direcøia celei mai rapide descrešteri în punctul x procedura descrisã se mai numešte ši metoda celei mai rapide descrešteri sau a celei mai rapide coborâri.

Pentru determinarea parametrului ck > 0 se pot folosi diferitele metode. Principalele metode sunt principiul minimizãrii de-a lungul razei ši principiul punctului staøionar.

7. MINIMIZAREA DE-A LUNGUL RAZEI

În acest caz parametrul ck 0 se alege astfel încât

Rezultã cã parametrul ck se alege astfel încât vectorul

sã fie un minim al funcøiei f relativ la raza

8. PRINCIPIUL PUNCTULUI STAØIONAR

În cazul alegerii coeficienøilor dupã principiul punctului staøionar la fiecare pas se definešte o funcøie auxiliarã F de o singurã variabilã realã:

unde

Coeficientul ck se alege ca cel mai mic punct staøionar al funcøiei F .

În acest caz vom avea ašadar

Sunt posibile ši alte alegeri pentru coeficienøii ck ai procedurii iterative. De exemplu putem avea aceeaši valoare pentru toøi pašii metodei. Trebuie sã øinem cont cã valori mici ale parametrului c determinã ca metoda sã conveargã lent spre o soluøie. Dacã valoarea lui c este mare atunci pot apare oscilaøii ši procedura devine instabilã.

Metoda gradientului are marele avantaj de a fi simplã ši foarte ušor de implementat. Ea nu pretinde resurse de memorie deosebite. Dezavantajele metodei sunt legate de convergenøa lentã în anumite cazuri ši de faptul cã nu garanteazã obøinerea unei soluøii globale. Deoarece în vecinãtatea unui minim local valoarea gradientului tinde spre zero, metoda nu realizeazã nici o discriminare între un minim local ši unul global.

O metodã de coborâre mai rapidã, dar care pretinde mai multe resurse la implementare, este metoda lui Newton.

9. METODA LUI NEWTON

Fie f : Rs R funcøia de minimizat. Matricea hessianã asociatã funcøiei f este o matrice (s, s) ale cãrei elemente sunt derivatele parøiale de ordinul doi ale lui f . Notãm cu H(x) hessiana lui f . Elementele H ij ale matricei H(x) vor fi ašadar de forma

Matricea hessianã se mai noteazã ši

sau

Ideea metodei lui Newton este de a aproxima local funcøia f printr-o funcøie pãtraticã ši de a calcula optimul acestei noi funcøii.

Metoda lui Newton presupune cã matricea hessianã în fiecare punct xk este inversabilã. Iteraøia corespunzãtoare metodei este

În general, metoda lui Newton converge rapid. Metoda necesitã însã calcularea derivatelor de ordinul întâi ši doi ale funcøiei criteriu. Este ašadar necesar ca funcøia obiectiv sã admitã derivate de ordinul doi. În plus, la fiecare pas trebuie calculatã inversa matricei hessiene corespunzãtoare iteraøiei respective. Trebuie impuse funcøiei f condiøii speciale de existenøã a matricei hessiene.

Unele dificultãøi ale metodei lui Newton pot fi depãšite considerând o aproximare a matricei hessiene. Metoda Marquardt-Levenberg aproximeazã matricea hessianã pritr-o matrice H1 de forma

unde a este un numãr pozitiv ši I este matricea unitate (s, s).

Pasul de iteraøie al metodei va fi de forma

Sã notãm cã H1 este o matrice simetricã nesingularã chiar dacã matricea hessianã H(x) este singularã (neinversabilã).

10. METODE CVASI-NEWTON

Inversa matricei hessiene se aproximeazã printr-o matrice simetricã ši pozitiv definitã Hk , adicã

În acest caz obøinem metoda cvasi-Newton (sau metoda cu metricã variabilã) în care direcøia de cãutare este datã de

Iteraøia procedurii se scrie

unde ck se determinã folosind principiul minimizãrii de-a lungul razei.

Metoda nu cere calcularea derivatelor de ordinul doi. Algoritmul este totdeauna stabil deoarece hk este totdeauna o direcøie de coborâre. Sã notãm cã metodele cvasi-Newton sunt printre cele mai puternice metode de optimizare. Convergenøa lor este mai rapidã decât a metodei Newton standard.

11. METODA DIRECØIILOR CONJUGATE

Metoda direcøiilor conjugate (conjugate gradient method) reprezintã o modificare relativ simplã a metodei de gradient. În multe cazuri utilizarea metodei direcøiilor conjugate permite o creštere considerabilã a vitezei de convergenøã.

În metoda de gradient direcøia cãutãrii este datã de vectorul de gradient, fãrã nici o legãturã cu direcøia de la pasul precedent. Se pot astfel genera o muløime de paši care nu fac sã avanseze cãutarea. Prin urmare, cãutarea nu urmeazã cea mai directã cale. Acest inconvenient este eliminat în metoda direcøiilor conjugate prin încorporarea unei anumite relaøii între direcøia curentã ši vectorul gradient.

Metoda direcøiilor conjugate utilizeazã informaøia despre precedenta direcøie de cãutare pentru a accelera cãutarea. Metoda pornešte cu un punct arbitrar x1 Rs ši folosešte iteraøia standard

unde ck > 0 este un parametru convenabil ales. Alegerea se poate face conform principiului staøionar sau minimizãrii de-a lungul razei.

Direcøia iniøialã h1 se alege ca fiind antigradientul funcøiei f în punctul x1 :

La fiecare pas direcøia de cãutare este o combinaøie liniarã a antigradientului în punctul respectiv ši a direcøiei precedente. Direcøia hk are expresia

unde bk este un parametru ce variazã în timp (cu indicele k al iteraøiei).

Existã douã metode principale pentru alegerea coeficienøilor bk .

Metoda Flechter-Reeves folosešte formula

unde norma este cea generatã de produsul scalar:

Metoda Polak-Ribiere folosešte formula

Este posibil ca metoda direcøiilor conjugate sã genereze o direcøie de cãutare ce nu este direcøie de coborâre. În acest caz procesul trebuie reiniøializat prin alegerea direcøiei celei mai rapide coborâri.

Metoda converge pentru funcøii pãtratice. Pentru funcøii care nu sunt pãtratice este necesarã reiniøializarea periodicã a procesului de optimizare.

12. ALGORITMII EVOLUTIVI

Algoritmii evolutivi (AE) utilizeazã o populaøie de soluøii potenøiale ce evolueazã dupã regulile stabilite de un operator de selecøie ši de aløi operatori, cum ar fi recombinarea ši mutaøia. Fiecãrui individ al populaøiei îi este asociatã o mãsurã a adecvãrii sale la mediu (calitatea soluøiei reprezentatã de individ). Selecøia favorizeazã indivizii având o adecvare înaltã, exploatând ašadar informaøia disponibilã în privinøa adecvãrii. Recombinarea ši mutaøia perturbã indivizii, furnizând euristici generale pentru explorare. Inspiraøi din ideile evoluøiei ši selecøiei biologice, acešti algoritmi sunt, din punct de vedere biologic, proceduri simpliste. Cu toate acestea, AE sunt proceduri destul de complexe pentru a furniza mecanisme de selecøie adaptive, robuste ši eficace.

Un algoritm evolutiv iniøializeazã în mod aleator o populaøie de soluøii iniøiale. Uneori selecøia se face în doi paši: selecøia pãrinøilor ši supravieøuirea. Selecøia pãrinøilor decide care indivizi vor fi pãrinøii noii generaøii ši câøi descendenøi va avea fiecare pereche de pãrinøi. Descendenøii sunt creaøi prin recombinare (care schimbã între pãrinøi informaøia geneticã) ši mutaøie (care perturbã descendenøii). Descendenøii sunt evaluaøi. Pasul de supravieøuire decide care din indivizi (pãrinøi ši copii) vor forma noua generaøie (vor supravieøui).

Algoritmii evolutivi pot fi folosiøi pentru o mare varietate de scopuri, în special în sistemele inteligente de rezolvare a problemelor. Aplicarea unor clase de algoritmi evolutivi pentru rezolvarea problemelor de optimizare permite obøinerea de rezultate interesante, care nu ar putea fi obøinute prin metodele standard de optimizare (prin metodele de tip gradient, de exemplu). Algoritmii evolutivi au o mare robusteøe în raport cu calitãøile funcøiilor de optimizat. Nu este necesar ca aceste funcøii sã fie derivabile, convexe. Nu este cerutã nici chiar continuitatea funcøiei de optimizat.

13. ÎNVÃØARE ŠI MAŠINI INSTRUIBILE

Am amintit cã sistemele instruibile sunt sistemele capabile de a-ši ameliora performanøele utilizând o muløime de exemple de instruire. De cele mai multe ori instruirea se face prin minimizarea unei funcøii de eroare. Aceastã funcøie se construiešte considerând diferenøa dintre rãspunsul dorit ši rãspunsul real al sistemului. Metodele de instruire se bazeazã pe diferite metode de optimizare sau reprezintã modificãri ad-hoc ale unor metode standard.

Reøelele neuronale reprezintã cea mai cunoscutã clasã de sisteme instruibile. O reøea neuronalã este formatã dintr-o muløime de elemente de prelucrare, numite neuroni artificiali. Neuronii sunt conectaøi prin intermediul unor conexiuni (sinapse) având ponderi ajustabile. Procesul de instruire constã în modificarea acestor ponderi. În acest scop se folosesc de regulã diferite proceduri de optimizare clasicã (metode de gradient, în primul rând) sau metode de optimizare combinatorialã (metoda recoacerii simulate, în primul rând). Combinarea metodelor standard de instruire cu algoritmii evolutivi permite obøinerea unor rezultate extrem de interesante (vezi, de exemplu, Dumitrescu, 1995b).

14. BIBLIOGRAFIE

Box, G. E. P. (1957), Evolutionary operation: a method of increasing industrial productivity, Applied Statistics, 6, 81-101.

Dumitrescu, D. (1995a), Inteligenøa Artificialã, Universitatea “Babes-Bolyai”, Cluj-Napoca.

Dumitrescu, D. (1995b), Modele Conexioniste în Inteligenøa Artificialã, Universitatea “Babes-Bolyai”, Cluj-Napoca.

Fraser, A. S. (1957), Simulation of genetic systems by automatic digital computers, Australian Journal of Biological Science, 10, 484-491.

Van Laarhoven, P. J. M. , Aarts, E. H. L. (1987), Simulated Annealing, Reidl Publishers, Dordrecht.

=== Capitolul10 ===

10

PROGRAMAREA EVOLUTIVÃ

1. INTRODUCERE

Programarea evolutivã (evolutionary programming, Fogel, 1962, Fogel, Owens, Walsh, 1966) a apãrut ca o tentativã de a genera un tip de comportament inteligent într-o mašinã descrisã printr-un automat finit determinist. Comportamentul inteligent constã în acest caz într-o predicøie asupra mediului, descris ca o succesiune de simboluri de intrare ale automatului.

Pentru a gãsi o mašinã capabilã sã ofere o predicøie cât mai bunã se considerã o populaøie, arbitrar aleasã, de mašini. Diferitele elemente ale mašinii (stãri, tranziøii, simboluri de iešire) sunt apoi modificate. Mašinile sunt comparate în raport cu o funcøie de performanøã. Sunt alese cele mai performante mašini. Alegerea este strict deterministã. Deoarece recombinarea a douã automate nu pare a fi o idee interesantã, singurul operator de transformare este cel de mutaøie.

Ideile programãrii evolutive (PE) au transgresat domeniul iniøial ši au fost aplicate pentru rezolvarea problemelor de cãutare ši optimizare (D. B. Fogel, 1992). Algoritmul de optimizare corespunzãtor are multe puncte comune cu strategiile evolutive.

În acest capitol sunt prezentate elementele esenøiale ale programãrii evolutive. Sunt descrise mai întâi cele douã modele de bazã ale PE. Primul model vizeazã realizarea unor predicøii inteligente utilizând un automat finit determinist (o mašinã Turing). Al doilea model privešte optimizarea funcøiilor reale.

Operatorii programãrii evolutive sunt selecøia ši mutaøia. Selecøia este de tipul (+) ši este una deterministã. Mutaøia se realizeazã printr-o perturbaøie aleatoare ce urmeazã legea normalã. Dispersia a acestei legi reprezintã un parametru al metodei. Un mecanism de auto-adaptare controleazã evoluøia acestui parametru.

Se cunosc diferite modalitãøi de control ale parametrilor. Unul din mecanismele de control este cunoscut sub numele de meta-programarea evolutivã.

Pe baza algoritmilor prezentaøi în acest capitol cititorul poate sã dezvolte propriile programe. În monografia lui D. B. Fogel (1995), cititorul interesat poate gãsi unele detalii suplimentare.

Pentru consistenøa expunerii consacrãm un paragraf prezentãrii câtorva noøiuni legate de mašinile Turing.

2. AUTOMATE FINITE

În acest paragraf reamintim câteve noøiuni de bazã legate de automatele finite.

Un automat este o mašinã abstractã ce poate fi într-o muløime finitã de stãri. O bandã de intrare conøine o muløime de simboluri. Simbolurile de intrare sunt citite în mod secvenøial. Un simbol de intrare ši o stare determinã trecerea automatului într-o altã stare.

Pentru a da o definiøie formalã noøiunii de automat introducem urmãtoarele notaøii:

(i) este o muløime de simboluri de intrare. determinã alfabetul de intrare al automatului.

(ii) S este o muløime finitã ši nevidã – muløimea stãrilor automatului.

(iii) S0S este starea iniøialã a automatului.

(iv) Aplicaøia : S S este funcøia de tranziøie a automatului.

Un automat finit determinist este un triplet A = ( , S , S 0 , ) , unde semnificaøia simbolurilor este cea datã mai sus.

Funcøia de tranziøie descrie dinamica automatului. Egalitatea

indicã faptul cã automatul aflat în starea s, citind simbolul de intrare x, va trece în starea s’.

Un simbol de intrare corespunde unei anumite situaøii a mediului în care acøioneazã automatul. Prin citirea unei secvenøe de intrare (care reprezintã acøiunea mediului) automatul trece din starea iniøialã S 0 într-o altã stare.

Putem complica modelul automatului finit atašându-i o bandã de iešire pe care se înregistreazã câte un simbol de iešire. Obøinem astfel o mašinã (un automat) Turing.

O mašinã Turing (sau automat Turing) este un sistem

T = ( , S , S 0 , O , )

unde simbolurile , S ši S 0 au semnificaøia indicatã. O este o muløime de simboluri de iešire iar funcøia de tranziøie este o aplicaøie:

: S S O .

Egalitatea

se interpreteazã astfel: aflatã în starea s mašina Turing primešte (citešte) un simbol de intrare x ši drept urmare va trece într-o altã stare s’ ši va produce (va înscrie pe banda de iešire) simbolul de iešire o.

Prin acest mecanism, mašina Turing transformã o secvenøã de simboluri de intrare într-o secvenøã de simboluri de iešire. O mašinã Turing poate simula un anumit tip de comportament inteligent. În acest caz inteligenøa se poate defini drept capacitatea sistemului de a-ši adapta comportarea astfle încât sã realizeze ieširile dorite corespunzãtoare unei varietãøi de situaøii extreme.

3. PROGRAMAREA EVOLUTIVÃ – MODELUL MAŠINII TURING

Scopul iniøial al programãrii evolutive a fost sã opereze asupra unei mašini Turing ši asupra reprezentãrilor discrete corespunzãtoare. Se urmãrea astfel realizarea unor predicøii asupra mediului. Ašadar, în acest caz comportarea inteligentã este vãzutã ca abilitatea mašinii de a face predicøii rezonabile asupra mediului sãu. Aceste predicøii sunt traduse în rãspunsuri potrivite în raport cu un anumit scop. Mediul este descris ca o secvenøã de simboluri de intrare. Predicøia realizatã se reprezintã printr-un simbol de iešire. Performanøa mašinii se mãsoarã prin intermediul unei funcøii de câštig (sau de eroare).

Modul de lucru al mašinii este urmãtorul. Un simbol de iešire reprezintã predicøia mašinii asupra urmãtoarei stãri ale mediului. Ašadar calitatea predicøiei poate fi evaluatã comparând simbolul de iešire cu urmãtorul simbol de intrare. Distanøa dintre simbolul de iešire ši urmãtorul simbol de intrare reprezintã eroarea previziunii. Valoarea unei predicøii este mãsuratã cu ajutorul unei funcøii de câštig.

Paradigma programãrii evolutive consideratã de Fogel (1962) folosešte o populaøie de >1 pãrinøi. Fiecare pãrinte reprezintã o mašinã Turing. Prin mutaøia celor pãrinøi sunt generaøi descendenøi. Mutaøiile reprezintã schimbãri aleatoare ale elementelor ce compun fiecare mašinã-pãrinte. Existã prin urmare cinci moduri posibile de a realiza mutaøia:

(i) schimbarea unui simbol de iešire

(ii) schimbarea tranziøiei unei stãri

(iii) adãugarea unei noi stãri

(iv) štergerea unei stãri

(v) schimbarea stãrii iniøiale.

Evident, štergerea unei stãri sau schimbarea stãrii iniøiale sunt posibile numai dacã mašina are mai mult decât o singurã stare.

Numãrul de mutaøii pentru un singur descendent este fie fix (stabilit a priori) fie este ales aleator în raport cu o anumitã distribuøie de probabilitate. Mutaøiile sunt aleatore, urmând o distribuøie de probabilitate datã (de regulã distribuøia uniformã).

Cei descendenøi obøinuøi prin mutaøie sunt evaluaøi în raport cu mediul existent. Evaluarea se face utilizând funcøia de câštig. Din cei pãrinøi ši cei descendenøi se aleg indivizi care vor deveni pãrinøii noii generaøii. Selecøia se face în ordinea descresãtoare a calitãøii indivizilor. Selecøia utilizatã este ašadar una de tipul (+), ši este pur deterministã.

Procesul continuã pânã când într-o populaøie apare o mašinã care realizeazã o predicøie corectã asupra urmãtorului simbol (încã neexplorat) al mediului. Mašina ce a realizat predicøia corectã este selectatã pentru a genera aceastã predicøie. Noul simbol este adãugat mediului deja explorat ši procesul este reluat.

În mod esenøial mecanismul propus urmãrešte obøinerea unor mašini care sã-ši modifice comportamentul în sensul crešterii capacitãøii lor de a face previziuni corecte asupra unei muløimi de simboluri ce descriu mediul. Recunoaštem aici caracteristicile unui proces de învãøare. Simbolurile ce descriu mediul pot fi interpretate drept o muløime de instruire. Spre deosebire de alte mecanisme de învãøare (reøelele neuronale, de exemplu) aici sunt implicate mai multe mašini simultan.

Putem rezuma discuøia de mai sus sub forma unui algoritm de programare evolutivã ce opereazã asupra mašinilor Turing.

ALGORITMUL DE PROGRAMARE EVOLUTIVÃ

PENTRU MAŠINI TURING

P1. t := 0 ;

Se iniøializeazã în mod aleator o populaøie P(t) de pãrinøi. Fiecare membru al populaøiei este o mašinã Turing finitã. Fie L muløimea simbolurilor de intrare ce au fost verificate. Se pune L := .

P2. Membrilor populaøiei de pãrinøi P(t) le este prezentat mediul (muløimea de instruire). Muløimea de instruire constã din simbolurile de intrare ce au fost deja observate pânã la momentul curent.

Fiecare simbol de intrare este prezentat fiecãrei mašini a populaøiei P(t). Simbolul de iešire al fiecãrei mašini (predicøia realizatã) este comparat cu urmãtorul simbol de intrare.

P3. Pentru fiecare simbol de intrare ši fiecare mašinã se calculeazã calitatea predicøiei realizate. În acest scop se utilizeazã o funcøie de câštig.

P4. Se evalueazã populaøia P(t).

În acest scop se calculeazã adecvarea fiecãrei mašini în raport cu secvenøa de intrare. Adecvarea (calitatea) unei mašini se poate defini, de exemplu, drept câštigul mediu (în raport cu toate simbolurile de intrare).

P5. Prin mutaøia celor pãrinøi din populaøia P(t) se creeazã mašini ( descendenøi). Fie P’ populaøia acestor noi mašini.

P6. Mašinile populaøiei P’ se evalueazã în raport cu mediul existent în aceeaši manierã ca ši pãrinøii.

P7. Din populaøia P(t) P’ se aleg indivizi. Alegerea se face selectând indivizi în ordinea descrescãtoare a adecvãrii lor.

Indivizii selectaøi devin pãrinøii noii generaøii.

Se pune t := t + 1 .

P8. Se itereazã pašii P5 – P7 pânã când o mašinã realizeazã o predicøie corectã a unui simbol de intrare (încã neverificat).

Mašina respectivã este selectatã pentru a genera aceastã predicøie.

Simbolul asupra cãruia s-a fãcut predicøia corectã este pus în lista L a simbolurilor verificate.

Procesul revine la pasul P2.

4. PROGRAMAREA EVOLUTIVÃ PENTRU OPTIMIZAREA FUNCØIILOR

Fogel (1992) a extins programarea evolutivã pentru optimizarea funcøiilor reale. Reprezentarea indivizilor, operatorul de mutaøie ši auto-adaptarea parametrilor strategiei au multe aspecte comune cu elementele corespunzãtoare din strategiile evolutive. Nici în acest caz programarea evolutivã nu presupune folosirea unui operator de recombinare.

4.1. Reprezentarea indivizilor

În programarea evolutivã un individ se reprezintã prin vectorul variabilelor obiect. Admitem cã F : Rn R este funcøia criteriu ši considerãm problema de optim fãrã restricøii:

În acest caz un individ x este un vector din spaøiul de cãutare Rn .

Ideii de meta-programare evolutivã (Fogel, 1992) îi este asociatã o reprezentare a indivizilor ušor diferitã. Programarea meta-evolutivã include un mecanism de auto-adaptare a parametrilor similar cu cel folosit în strategiile evolutive. Parametrul de control al metodei este dispersia (sau pãtratul dispersiei).

În meta-programarea evolutivã un individ a este o pereche a=(x,2), unde 2 este un vecor ale cãrui n componente sunt dispersiile componentelor:

Funcøia de evaluare (adecvare) se obøine din funcøia obiectiv prin scalare la valori pozitive. Este posibil ca în funcøia de evaluare sã fie incluse ši unele alterãri aleatoare.

Fie S o muløime de parametri adiøionali implicaøi în proces. Admitem cã acešti parametri pot fi supuši unor modificãri aleatoare. Funcøia de scalare va fi atunci de forma

Funcøia de evaluare f se va putem scrie

unde k descrie modificãrile aleatoare ale parametrilor procesului.

4.2. Mutaøia

În programarea evolutivã se considerã, la fel ca în strategiile evolutive, cã mutaøia componentelor vectorului x se realizeazã printr-o perturbaøie aleatoare ce urmeazã o lege normalã. Perturbaøia componentelor este aditivã. Vom avea deci

unde Ni(0,1) indicã un numãr aleator ce respectã legea normalã cu parametri standard (m=0, =1).

Dispersia se considerã a fi proporøionalã cu rãdãcina pãtratã din valoarea corespunzãtoare a funcøiei de evaluare:

unde parametrii i ši i sunt aleši în funcøie de problema concretã. Deseori se considerã

caz în care componentele se schimbã conform regulii

Pentru a se evita dificultãøile legate de ajustarea parametrilor s-a introdus un mecanism de auto-adaptare pentru parametrul dispersie. Acest mecanism este destul de asemãnãtor cu cel din cazul strategiilor evolutive.

Iniøial s-a considerat o variantã aditivã a procesului de auto-adaptare:

unde este un parametru real pozitiv, cu o valoare subunitarã ( 0.2). Aceastã regulã de modificare s-a dovedit neeficientã pentru funcøii criteriu afectate de anumite distorsiuni (zgomot). În aceste cazuri se poate întâmpla ca mecanismul aditiv de auto-adaptare a dispersiei sã inverseze direcøia de cãutare.

Meta-programarea evolutivã este o variantã ušor modificatã a mecanismului de auto-adaptare descris mai sus. Se utilizeazã parametri independenøi auto-adaptabili prin perturbaøii normale. În acest caz mutaøia variabilelor ši parametrilor se face dupã regulile urmãtoare:

unde am notat

Aici desemneazã un parametru exogen (exterior) care asigurã cã Di tinde sã rãmânã pozitiv. Dacã prin jocul mutaøiei varianøa Di devine negativã sau zero, ea este modificatã, primind o valoare pozitivã micã >0.

Regula de auto-adaptare a parametrilor se mai poate scrie

Observãm cã cele douã legi de auto-adaptare (pentru variabile ši parametri) sunt destul de asemãnãtoare.

Este interesant sã comparãm regulile aditive de auto-adaptare cu regula multiplicativã folositã în strategiile evolutive. Dãm mai jos câteva concluzii rezultate din aceastã comparare:

(i) Regula multiplicativã de auto-adaptare din cazul strategiilor evolutive asigurã pozitivitatea parametrilor strategiei;

(ii) Perturbaøiile generate de regula aditivã a meta-programãrii evolutive sunt mai mari decât perturbaøiile legii multiplicative exponenøiale a strategiilor evolutive;

(iii) În absenøa presiunii de selecøie, perturbaøiile parametrilor unei strategii evolutive sunt neutre. Perturbaøiile generate de regula aditivã nu sunt neutre.

(iv) Experimentele numerice au indicat faptul cã metoda multiplicativã de auto-adaptare pare a fi mai robustã decât metoda aditivã. Robusteøea poate fi datoratã ši faptului cã în strategiile evolutive tranziøia dintre valorile mici ši valorile mari ale parametrilor de control este mai ušor de realizat.

Având în vedere avantajele regulii multiplicative de adaptare a parametrilor de control, pare plauzibil sã folosim aceastã regulã ši în cazul programãrii evolutive. Regula multiplicativã de auto-adaptare este într-adevãr deseori utilizatã în implementãri ale programãrii evolutive.

4.3. Selecøia

Se considerã o populaøie iniøialã de indivizi (t = 0). Aceasta va fi populaøia de pãrinøi pentru generaøia urmãtoare. Notãm cu P(t) populaøia pãrinøilor. Prin mutaøia o singurã datã a fiecãrui pãrinte se obøin descendenøi. Fie P’ populaøia descendenøilor. Din cei pãrinøi ši cei descendenøi sunt selectaøi indivizi. Metoda de selecøie este o variantã probabilistã a selecøiei (+).

Fiecare individ ai al populaøiei P(t) P’ este comparat cu q>1 indivizi aleši aleator din P(t) P’. Comparaøia se face cu ajutorul funcøiei de potrivire. Pentru fiecare individ ai P(t) P’ se calculeazã câøi din cei q indivizi sunt mai puøin performanøi decât ai. Acest numãr (al indivizilor mai slabi decât ai) reprezintã scorul wi al lui ai (wi { 0 , 1 , . . . , q }). Dupã calcularea scorului, cei 2 indivizi sunt ordonaøi în ordinea descrescãtoare a scorurilor respective, wi , i = 1, 2, . . . , 2 . Sunt selectaøi indivizi având cele mai mari scoruri. Indivizii selectaøi vor forma noua populaøie P(t+1).

Scorul wi se poate scrie

unde indicii kj { 1, 2, . . . , 2r } sunt valorile unei variabile aleatoare uniforme. kj se calculeazã din nou la fiecare comparare.

Selecøia realizatã este o variantã de selecøie probabilistã de tipul q-turnir (q-tournament selection). q reprezintã numãrul indivizilor ce concureazã ši este un parametru al metodei. În mod tipic se considerã q=100. Pe mãsurã ce valorile lui q cresc mecanismul de selecøie devine tot mai apropiat de schema (r+r) deterministã.

Pentru valori mari ale parametrului q schema de selecøie devine elitistã. În aceastã situaøie crešte probabilitatea ca cel mai bun individ sã înregistreze scorul maxim. Ašadar crešte probabilitatea ca supravieøuirea celui mai bun individ sã fie garantatã.

Sã remarcãm cã în algoritmii evolutivi nu este încã tranšatã problema superioritãøii selecøiei probabiliste faøã de o selecøie deterministã.

4.4. Recombinarea

Programarea evolutivã nu utilizeazã un operator de recombinare. În programarea evolutivã se considerã cã o soluøie codificã o specie mai degrabã decât un individ. Dar, la nivelul biologic, recombinarea nu acøioneazã între specii diferite. Între strategiile evolutive ši programarea evolutivã existã ašadar o diferenøã conceptualã datã de nivelul modelului biologic utilizat.

4.5. Algoritmul Programãrii Evolutive

Algoritmul de meta-programare evolutivã pentru gãsirea optimului unei funcøii reale poate fi descris sub urmãtoarea formã standard:

ALGORITMUL DE PROGRAMARE EVOLUTIVÃ

PENTRU OPTIMIZAREA FUNCØIILOR REALE

P1. t := 0 ;

Se iniøializeazã o populaøie P(0) de soluøii potenøiale.

P2. Se evalueazã populaøia P(t).

P3. Câttimp ( T(P(t)) = fals ) executã {condiøia de oprire nu este îndeplinitã}

P’(t) := mutaøie asupra lui P(t) ;

Evalueazã P’(t) ;

P(t+1) := selecøie asupra P(t) P’(t) .

t := t + 1 .

Observaøie. Condiøia de oprire se mai poate scrie ši T(P(t)) true .

4.6. Convergenøa metodei

Fogel (1992) a analizat convergenøa algoritmului standard al programãrii evolutive pentru cazul când funcøia de evaluare este chiar funcøia criteriu.

S-a considerat cazul particular al unui spaøiu de cãutare discret Cn Rn, unde C este muløimea numerelor ce pot fi reprezentate într-un calculator numeric. În acest caz convergenøa globalã a algoritmului are loc cu probabilitatea unu.

Având în vedere similitudinile între strategia evolutivã (1+1) ši programarea evolutivã este de presupus cã teorema de convergenøã pentru strategia evolutivã (1+1) poate fi extinsã ši în cazul programãrii evolutive. Reamintim cã ši în cazul strategiei evolutive (1+1) convergenøa este tot de naturã probabilistã.

Teorema de convergenøã (1+1) se poate într-adevãr extinde ši pentru programarea evolutivã standard. Convergenøa are loc pentru spaøiul de cãutare Rn ši nu doar pentru spaøiul discret considerat mai sus (Cn).

În cazul modelului sferã simplificat, având funcøia criteriu

teoria ratei de convergenøã a strategiei evolutive (1+1) poate fi extinsã pentru programarea evolutivã (1+1). În acest ultim caz, al unei populaøii de mãrime =1, selecøia asociatã programãrii evolutive devine deterministã.

Considerãm cazul dispersiei de forma

În cazul rata de convergenøã descrešte la zero când n crešte. Dacã însã

rata de convergenøã devine aproape optimalã.

4.7. Concluzii

Prezentarea programãrii evolutive a evidenøiat similaritatea de bazã a acesteia cu strategiile evolutive. Existã totuši unele diferenøe între cele douã abordãri. Douã dintre acestea par a fi esenøiale:

(i) Strategiile evolutive codificã structuri analoage indivizilor. Din acest motiv se poate utiliza recombinarea pentru obøinerea de noi indivizi.

În mod obišnuit programarea evolutivã codificã structuri analoage unor specii diferite (deci între care nu poate exista încrucišare). Un mecanism de obøinere a noi soluøii prin recombinare nu este ašadar propriu programãrii evolutive.

(ii) Strategiile evolutive folosesc o selecøie strict deterministã (cei mai buni indivizi dintre pãrinøi ši descendenøii lor formeazã noua generaøie)

Programarea evolutivã se bazeazã pe o selecøie probabilistã. Fiecare soluøie este comparatã nu cu toate celelalte soluøii din generaøia respectivã ci cu un numãr fixat de soluøii alese aleator din generaøia curentã.

Programarea evolutivã a beneficiat de unele idei ši concepte care au apãrut în cadrul strategiilor evolutive.

Programarea evolutivã sugereazã la rândul ei o posibilã ameliorare a strategiilor evolutive. Mecanismul probabilist al selecøiei bazate pe ordonare ar putea fi utilizat în strategiile evolutive (r,) ši (r+). Evident ši alte mecanisme de selecøie s-ar putea dovedi utile. Nu existã nici o raøiune care sã interzicã folosirea ši a altor mecanisme de selecøie atât în programarea evolutivã cât ši în strategiile evolutive.

Aplicaøiile programãrii evolutive sunt numeroase. O bunã parte a acestor aplicaøii vizeazã Inteligenøa Artificialã: instruirea ši proiectarea reøelelor neuronale, recunoašterea formelor, roboticã, procese de învãøare automatã ši de cãutare în spaøiul stãrilor, identificarea ši controlul sistemelor.

Direcøiile curente de cercetare vizeazã aspectele matematice de bazã, combinarea programãrii evolutive cu alte tehnici de cãutare ši proiectarea algoritmilor în vederea implementãrii pe mašini paralele.

O idee atractivã este combinarea sistemelor evolutive ši a sistemelor nuanøate (fuzzy).

5. BIBLIOGRAFIE

Bäck, T. , Schwefel, H. P. (1993), An overview of evolutionary algorithms for parameter optimization, Evolutionary Computation, 1, 1-24 .

Bäck, T. , Rudolph, G. , Schwefel, H. P. (1993), Evolutionary programming and evolution strategies: similarities and differences, in Proceedings of the Second Annual Conference on Evolutionary Programming, D.B. Fogel, W. Atmar (editori), Evolutionary Programming Society, La Jolla, 11-22 .

Fogel, D. B. (1992), Evolving Artificial Intelligence, Ph. D. Thesis, University of California, San Diego .

Fogel, D. B. , Atmar, J. W. (editori) (1992), Proceedings of the First Annual Conference on Evolutionary Programming, Evolutionary Programming Society, La Jolla.

Fogel, D. B. (1994), An introduction to simulated evolutionary optimization, IEEE Transaction Neural Networks, 5.

Fogel, D. B. (1995), Evolutionary Computation: Toward a New Philosophy of Machine Intelligence, IEEE Press, Piscataway, NJ .

Fogel, L. J. (1962), Toward inductive inference automata, Proceedings of the International Federation for Information Processing Congress, Munich, 395-399 .

Fogel, L. J. (1964), On the Organization of Intellect, Ph. D. Thesis, UCLA .

Fogel, L. J. , Owens, A. J. , Walsh, M. J. (1966), Artificial Intelligence through Simulated Evolution, Wiley, New York .

=== Capitolul11 ===

11

APLICAØIILE CALCULULUI EVOLUTIV

1. INTRODUCERE

Acest capitol este consacrat prezentãrii câtorva aplicaøii ale Calcului evolutiv, selectate dintre numeroasele existente. Este evident din capitolele precedente cã aplicaøiile algoritmilor genetici ši strategiilor evolutive sunt limitate doar de abilitatea de a codifica în mod adecvat o problemã ši de a stabili funcøia criteriu corespunzãtoare.

În Davis, 1991, cititorul poate gãsi mai multe aplicaøii specifice, comentate în detaliu. În continuare indicãm câteva domenii specifice de aplicare a Algoritmilor Evolutivi.

Optimizare

(optimizare numericã ši combinatorialã, proiectarea circuitelor, a sistemelor de conducte ši a liniilor de comunicaøie, proiectarea avioanelor , planificarea proceselor de producøie)

Programare automata

(obøinerea de algoritmi de sortare, obøinerea programelor LISP pentru o problemã datã, etc.)

Instruirea mašinilor (machine learning)

(controlul deplasãrii unui robot, deplasarea într-un labirint, proiectarea reøelelor neuronale, deducerea regulilor pentru rezolvarea diferitelor probleme, abordarea unor jocuri dificile, obøinerea de modele economice, politice, sociale etc., proiectarea controlorilor inteligenøi – deducerea regulilor de control)

Analizadatelor complexe ši predicøia seriilor de timp

(predicøia sistemelor haotice, predicøia vremii, predicøii financiare, predicøii asupra evoluøiei pieøei, predicøia structurii proteinelor)

Modele ale unor procese complexe

(economie, politicã, neurologie, ecologie, genetica populaøiilor)

Algoritmii genetici au fost utilizaøi cu precãdere în primele cercetãri pentru rezolvarea problemelor de optimizare (Fitzpatrick, Grefenstette, 1988), Grefenstette 1986). În capitolele precedente am discutat ši posibilitatea utilizãrii în acest scop a Strategiilor evolutive ši Programãrii evolutive. Calculul evolutiv a devenit tot mai mult un instrument important pentru gãsirea unor soluøii bune, uneori chiar optime, ale problemelor de optimizare de dimensiuni mari.

Algoritmii genetici s-au dovedit superiori metodelor convenøionale de optimizare în special în cazul funcøiilor multimodale (având mai multe puncte de optim).

Optimizarea combinatorialã presupune rezolvarea problemelor care implicã diferite ordonãri ale unor obiecte discrete.

Variabilele funcøiilor implicate în optimizarea combinatorialã sunt prin urmare discrete. Optimizarea presupune în acest caz mecanisme de codificare, recombinare ši comparare a soluøiilor. Algoritmii genetici au fost aplicaøi cu succes în abordarea unor probleme clasice de optimizare combinatorialã cum ar fi problema comis-voiajorului (sã se determine cel mai scurt drum pentru a vizita un grup specificat de localitãøi) sau problema împachetãrii (dispunerea optimã a unui numãr de obiecte într-un spaøiu dat). Ultima problemã are numeroase aplicaøii practice, putând fi pusã în legãturã ši cu problemele de croire. O aplicaøie interesantã a acestei probleme privešte proiectarea circuitelor integrate VLSI (Fourman, 1985).

Tehnicile evolutive, în ansamblul lor, reprezintã metode eficiente de cãutare în spaøiul stãrilor problemelor, devenind astfel extrem de interesante pentru sistemele standard ši nestandard înzestrate cu inteligenøa artificialã. În cazul standard mišcarea în spaøiul stãrilor problemei este descrisã de o muløime de reguli. În sistemele de producere regulile sunt reprezentate prin perechi de forma (condiøie, acøiune). În acest tip de cãutare cromozomii descriu stãri ale (spaøiului) problemei. Funcøia de adecvare furnizeazã o evaluare pentru fiecare stare.

În paragraful urmãtor vom descrie felul în care calculul evolutiv poate fi folosit într-o problemã de cãutare specificã. Problema consideratã privešte optimizarea strategiilor de decizie secvenøialã.

2. ALEGEREA UNEI STRATEGII DECIZIONALE

Algoritmii genetici pot fi aplicaøi cu succes pentru optimizarea strategiilor în cazul problemelor de decizie secvenøialã. O strategie se reprezintã ca o muløime de reguli de forma (condiøie, acøiune). Fiecare strategie propusã poate fi evaluatã pe un model de simulare a deciziilor. Un algoritm genetic poate fi folosit pentru cãutarea celor mai bune strategii. Pentru sisteme cu un numãr mare de stãri accentul cade pe reguli iar nu pe stãri.

Grefenstette (1991) descrie aplicarea algoritmilor genetici la rezolvarea problemelor de control ce apar în sistemele tactice multi-agent. Interacøiunea agenøilor face ca aceste sisteme sã fie extrem de complexe ši deci imposibil de descris complet din punct de vedere matematic. Chiar dacã descrierea completã ar fi posibilã, metodele tradiøionale nu ar putea furniza o soluøie în timp real, admiøând cã o astfel de soluøie ar putea fi gãsitã.

Sistemul SAMUEL – Strategy Acquisition Method Using Empirical Learning – (vezi Grefenstette, 1991) folosešte un algoritm genetic pentru optimizarea strategiilor de decizie. O muløime de senzori furnizeazã informaøia despre starea cunoscutã. Decizia unui agent stabilešte valorile unor variabile de control. În acest sistem o strategie este o muløime de reguli (condiøie, acøiune) de forma

dacã (c1 c2 … cn)

atunci (a1 a2 … am),

unde ci este o condiøie asupra unui senzor ši fiecare acøiune aj specificã valoarea unei variabile de control.

În Grefenstette (1991) se indicã felul în care sistemul SAMUEL poate învãøa tehnicile de manevrare prin care un avion (simulat) poate evita o rachetã (ši ea simulatã). Algoritmul genetic folosit include cromozomi de lungime variabilã. Un cromozom reprezintã o strategie. Fiecare cromozom (strategie) este evaluat în raport cu o muløime de sarcini, în modelul problemei. Rezultatele corespunzãtoare sunt folosite pentru a manevra avionul în interacøiuni simulate dintre avion ši rachetã. În acest fel se obøine valoarea de adecvare a fiecãrui cromozom. Operatorii genetici folosiøi (în principal cei de încrucišare ši mutaøie) produc noi strategii plauzibile din pãrinøi cu performanøe bune.

3. APLICAØII IN INSTRUIREA SI PROIECTAREA REØELELOR NEURONALE

Calculul evolutiv ši Calculul neuronal interacøioneazã în mod semnificativ. Algoritmii genetici pot fi folosiøi atât în instruirea (stabilirea ponderilor conexiunilor sinaptice) cât ši în proiectarea reøelelor neuronale.

3.1. Instruirea reøelelor utilizând calculul evolutiv

Considerãm o reøea neuronalã a cãrei topologie (arhitecturã) este datã. Admitem cã reøeaua este unidirecøionalã ši posedã straturi ascunse. În acest caz reøeaua poate fi instruitã aplicând algoritmul de retro-propagare a erorii (vezi de exemplu Dumitrašcu, 1997 sau Dumitrescu ši Costin, 1996). Dar algoritmul de retro-propagare poate sã opreascã procesul de instruire într-un minim local al funcøiei criteriu. În acest caz eroarea poate fi inacceptabilã. Combinarea algoritmului de retro-propagare cu un algoritm genetic poate evita blocarea instruirii într-un punct de minim local. În cea mai simplã manierã algoritmii genetici pot fi utilizaøi pentru:

– stabilirea ponderilor într-o reøea datã;

– stabilirea arhitecturii reøelei;

– stabilirea parametrilor reøelei (rata de instruire, muløimea de instruire etc.);

– stabilirea regulii de instruire;

– depãširea punctelor de minim local;

– stabilirea ponderilor iniøiale;

– progresul cãutãrilor în primele stadii ale instruirii;

– reluarea instruirii, cu parametri modificaøi, dacã eroarea obøinutã la sfâršitul instruirii este prea mare;

– combinarea cu un algoritm clasic (de exemplu unul bazat pe informaøia de gradient sau pe alt tip de informaøie localã) pentru a obøine un algoritm de instruire hibrid, care sã îmbine avantajele celor douã abordãri.

Calculul evolutiv poate fi utilizat ši ca un instrument per se în stabilirea ponderilor reøelelor. Evident se considerã cunoscutã topologia reøelei. Avantajul faøã de metodele clasice este cã putem considera funcøii obiectiv oricât de complicate, fãrã nici o peocupare privind derivabilitatea sau convexitatea acestor funcøii. În acest caz pentru instruire nu mai folosim nici o informaøie localã de tip gradient sau bazatã pe derivatele de ordinul doi. În unele situaøii (funcøii obiectiv complicate) aceastã informaøie este greu de obøinut (este scumpã).

O altã idee interesantã este utilizarea calculului evolutiv pentru a compara diferite funcøii criteriu. În acest fel strategia de instruire poate fi înzestratã cu un mecanism adaptiv, care permite selectarea strategiei.

Structura reøelei fiind datã, un cromozom se reprezintã printr-un vector ale cãrui componente sunt ponderile conexiunilor, considerate într-o ordine stabilitã. Cea mai comodã cale este de a considera o reprezentare realã. Putem alege ši o reprezentare multidimensionalã a cromozomilor. Un cromozom poate fi descris prin matricea ponderilor. În acest caz este nevoie însã de noi operatori genetici (Dumitrescu ši Stan, 1996).

3.2. Stabilirea arhitecturii reøelelor neuronale folosind Calculul evolutiv

Stabilirea celei mai potrivite arhitecturi a unei reøele neuronale în raport cu o problemã datã este o sarcinã dificilã ši nu existã o metodã universalã de a o rezolva (vezi Dumitrašcu, 1997). Metodele uzuale optimizeazã un aspect sau altul.

Folosirea calculului evolutiv permite considerarea simultanã a mai multor aspecte ale arhitecturii. Se poate varia atât numãrul straturilor ascunse cât ši numãrul nodurilor în fiecare strat de neuroni.

Arhitectura reøelei se poate reprezenta printr-un vector-cromozom, alcãtuit din mai muløi subcromozomi. Fiecare subcromozom poate corespunde, de exemplu, unui strat al reøelei. Cãutarea are loc în spaøiul arhitecturilor de reøea posibile. Fiecare soluøie (arhitecturã) poate fi evaluatã în raport cu problema pe care reøeaua trebuie sã o rezolve.

Se pare cã programarea evolutivã ši strategiile evolutive reprezintã metode de cãutare în spaøiul topologiilor de reøea mai potrivite decât algoritmii genetici. Acest lucru pare firesc daca ne gândim cã este dificil de atašat o semnificaøie intuitivã recombinãrii a douã reøele neuronale (exact ca în cazul automatelor finite ši mašinilor Turing). Mutaøia pare a fi operatorul capabil sã creeze în mod natural noi topologii de reøea plauzibile ši acceptabile. Evaluarea diferitelor arhitecturi se face utilizând o funcøie de câštig adecvatã. Funcøia de câštig poate fi particularã sau independentã de problema concretã pe care reøeaua o va rezolva.

4. RECUNOAŠTEREA FORMELOR

Algoritmii genetici reprezintã un instrument extrem de potrivit în analiza datelor, în special în recunoašterea formelor. Termenul de recunoašterea formelor se folosešte pentru a desemna corpusul de teorii ši metode folosite pentru rezolvarea problemelor de clasificare.

O formã se reprezintã, de regulã, printr-un vector în spaøiul caracteristicilor.

4.1. Un algoritm genetic pentru clasificarea nuanøatã (fuzzy)

Fie X={x1, x2, … , xp} muløimea datelor. Fiecare obiect din X reprezintã o formã dintr-un spaøiu cu un numãr finit de dimensiuni. Cazul cel mai frecvent este când xj Rs, unde s 1 este dimensiunea spaøiului euclidian, xjk este valoarea caracteristicii k în obiectul xj. O clasã de obiecte (un nor sau cluster) se descrie printr-o submuløime a lui X. Problema centralã în analiza datelor este de a detecta grupãrile naturale de obiecte din muløimea datelor. Se dorešte ca obiectele apropiate (similare) sã fie în aceeaši clasã, iar obiectele îndepãrtate (nesimilare) sã fie în clase diferite.

Deoarece clasele de obiecte nu au, în general, margini nete, precise, este de regulã util sã descriem clasele prin muløimi nuanøate.

O muløime nuanøatã A peste universul X este o funcøie A:X[0,1]. A(x) este gradul de apartenenøã al obiectului x la muløimea nuanøatã A.

Structura de clusteri a lui X poate fi descrisã ca o partiøie nuanøatã P = {A1, A2, … , An} a lui X. Acest lucru este echivalent cu condiøia

referitoare la gradele de apartenenøã ale fiecãrui obiect la toate clasele.

Admitem cã fiecare clasã Ai este reprezentatã printr-un prototip Li, Li Rs. Vom nota cu

L = { L1, L2, … , Ln }

reprezentarea partiøiei P.

Problema de clasificare poate acum fi formulatã ca o problemã de optim în raport cu variabilele P ši L.

Inadecvarea reprezentãrii partiøiei P prin L (notatã J(P,L)) poate fi scrisã (vezi Dumitrescu, 1998) sub forma

,

unde d este o distanøã.

Rezolvare problemei de clasificare se reduce la minimizarea funcøiei criteriu J.

Dacã reprezentarea L este fixatã atunci problema de optim

J(, L) min

are soluøia

(1)

Pentru determinarea prototipurilor optime putem utiliza un algoritm genetic (Bezdek, Hathaway, 1993).

Un cromozom c este un šir ce conøine coordonatele celor n prototipuri:

Deoarece algoritmii genetici sunt proiectaøi pentru maximizarea funcøiilor vom considera o funcøie de evaluare de forma:

f(c) = Max – J(P, L),

unde Max este o constantã care asigurã pozitivitatea funcøiei f:

f(c) 0, c.

Bezdek ši Hathaway (1994) au considerat o reprezentare liniarã binarã a cromozomilor ši o populaøie constantã de 50 de cromozomi în fiecare generaøie. Mecanismul de selecøie propus transferã automat în noua generaøie cei mai buni 25 de cromozomi din populaøia curentã.

Se utilizeazã încrucišarea ši mutaøia.

Probabilitatea de mutaøie consideratã este

pm = 0.002 .

Numãrul de clase se considerã cunoscut. Cromozomii evolueazã spre prototipurile claselor. Dupã un numãr rezonabil de generaøii cromozomii se vor suprapune rãmânând doar n cromozomi distincøi – unul pentru fiecare prototip.

Odatã stabilite prototipurile se calculeazã clasele nuanøate ce le corespund folosind formula (1). Poate fi utilizatã ši o regulã euristicã care sã genereze o partiøie clasicã a lui X.

O altã posibilitate este de a utiliza o reprezentare multidimesionalã (Dumitrescu, Stan, Dumitrescu, 1997). În acest caz încrucišarea se face schimbând blocuri din matricea ce descrie cromozomul.

4.2. Alte abordãri

Blekas ši Stafylopatis (1996) ši Dumitrescu, Dodu ši Dodu (1997) au propus o reprezentare realã a cromozomilor. Aceastã reprezentare pare mai naturalã pentru rezolvarea problemelor de clasificare. Rezultatele experimentale au evidenøiat în acest caz o convergenøã mai rapidã.

Este posibil un mecanism de cãutare în care utilizãm o populaøie de cromozomi (de tip L) pentru determinarea prototipurilor ši o altã populaøie, independentã (de tip P), pentru determinarea claselor (Dumitrescu, Stan, 1996). Convergenøa procedurii este mai lentã în acest caz, dacã funcøia criteriu este cea consideratã mai sus. Metoda este însã mai generalã, putând fi aplicatã pentru orice formã a funcøiei criteriu. Funcøia aleasã poate fi nederivabilã în raport cu gradele de apartenenøã sau derivata poate avea o formã oricât de complicatã (care ar putea sã nu permitã un calcul simplu). De asemenea optimizarea se poate face în raport cu mai multe funcøii criteriu.

4.3. Cromodinamica geneticã

O abordare diferitã, care urmãrešte ši determinarea numãrului optim de clase este propusã în Dumitrescu ši Levente, 1997 ši în Dumitrescu, Lazzerini ši Levente, 1998. În continuare vom descrie principiul acestei metode, vom arãta felul în care poate fi folositã pentru clasificare.

4.3.1. Funcøia criteriu

În aceastã abordare se utilizeazã o funcøie de adecvare în care intervin doar prototipurile claselor nu ši apartenenøele corespunzãtoare claselor. Adecvarea f(c) a cromozomului c se scrie sub forma unei sume de funcøii radiale, centrate în punctele de clasificat.

Fie xj, j = 1, … , p aceste puncte. Funcøia criteriu este atunci:

,

unde m 1 ši K > 0 sunt constante reale.

Rolul constantei K este de a împiedica funcøia f sã ia valori infinite sau prea mari. Constanta m controleazã granularitatea clusterilor (mãrimea doritã a claselor ce ar fi detectate).

4.3.2. Operatorii genetici

Se utilizeazã o reprezentare realã a cromozomilor ši o încrucišare convexã. Din pãrinøii a ši b se obøine un singur descendent c, ale cãrui gene sunt

ci = i ai+ (1-i) bi, i = 1, 2, … , s,

unde coeficientul i [0,1] urmeazã o distribuøie uniformã.

La fiecare generaøie fiecare cromozom este selectat pentru încrucišare sau mutaøie. Pentru un cromozom c partenerii posibili pentru încrucišare sunt cãutaøi doar într-o vecinãtate sfericã de razã d* a lui c, notatã V(c,d*).

Probabilitatea ca un cromozom ai din aceastã vecinãtate sã devinã partenerul lui c este

.

Se genereazã aleator un numãr r [0,1]. Dacã este îndeplinitã condiøia

atunci cromozomul ai este selectat ca partener al lui c. Un singur descendent (fiu) este generat prin încrucišare. Unicul fiu rezultat se considerã a fi descendentul doar al cromozomului c. La rândul sãu cromozomul partener ai va fi considerat ca prim pãrinte ši se va bucura de acelaši tratament (va produce un descendent). Ašadar primul pãrinte este dominant iar al doilea este recesiv.

Operatorul de mutaøie se aplicã pentru cromozomul curent c doar dacã în vecinãtatea sa V(c,d*) nu existã nici un cromozom (cu care c ar putea fi încrucišat). În modelul propus încrucišarea ši mutaøia sunt operatori exclusivi, ceea ce reprezintã o caracteristicã particularã a metodei.

Fiecare variabilã a cromozomului ce va fi mutat va suferi o perturbaøie normalã. Legea de mutaøie este aditivã:

c’i = ci + Ni (0,1) , j = 1, 2, … ,s .

Metoda propusã permite conturarea rapidã a unor subpopulaøii în muløimea cromozomilor.

Fiecare subpopulaøie va evolua spre un prototip. Pentru a evita migrarea cromozomilor între subpopulaøii ši a stabiliza rapid subpopulaøiile se considerã cã un pãrinte poate fi înlocuit în noua generaøie doar de fiul sãu. Se considerã cã fiecare subpopulaøie are o anumitã culoare. Iniøial toøi indivizii au culori diferite, apoi numãrul culorilor scade. Acest lucru explicã numele metodei.

4.3.3. Supravieøuirea

Admitem cã un descendent îl înlocuiešte în mod automat în noua generaøie pe pãrintele sãu, dacã descendentul e mai performant decât pãrintele.

Pentru a evita convergenøa prematurã a procedurii se folosešte un mecanism suplimentar de tipul recoacerii simulate. Un descendent mai puøin performant decât pãrintele sãu îl poate înlocui în noua generaøie, cu o anumitã probabilitate p.

Probabilitatea p de acceptare a unui descendent d inferior pãrintelui sãu c este de forma

,

unde T este un parametru (având semnificaøia temperaturii), k este o constantã pozitivã, iar C este diferenøa de cost dintre cromozomul nou generat ši pãrintele sãu.

Costul menøinerii în populaøie a cromozomului c se considerã ca fiind cu atât mai mare cu cât calitatea lui este mai proastã. Putem alege costul C(c) al lui c de forma

C(c) = max – f(c),

unde max este o constantã realã alesã astfel încât sã asigure costuri pozitive sau nule pentru toøi cromozomii populaøiei.

Considerãm cazul în care descendentul d este mai puøin performant decât pãrintele sãu p, adicã

f(d) < f(p) .

Variaøia costului va fi în acest caz pozitivã:

C = C(d) -C(p)

= f(p) – f(d) .

Probabilitatea de menøinere în noua generaøie a descendentului d surclasat de pãrintele sãu p este

.

Admitem cã parametrul temperaturã scade cu numãrul generaøiei. La generaøia g temperatura va fi

unde T0 este temperatura iniøialã (la generaøia g = 0).

Apare o diferenøã esenøialã faøã de algoritmul recoacerii simulate. Echilibrul nu se stabilešte pentru fiecare generaøie. Dacã am urmãri stabilirea echilibrului procesul ar fi prea lent. Echilibrul se stabilešte numai spre sfâršitul procesului, când descrešterea temperaturii devine foarte lentã.

Experimentul s-a constatat cã dupã câteva generaøii subpopulaøiile se separã ši evolueazã în paralel ši independent, fãrã migraøie între ele. Acest lucru este important deoarece asigurã evoluøia fiecãrei subpopulaøii spre un prototip al unei clase “reale” din muløimea datelor.

Pentru a asigura convergenøa spre prototipurile optime vom admite o descreštere a numãrului de cromozomi în populaøie. Aceastã descreštere se realizeazã suprapunând doi cromozomi care sunt suficient de apropiaøi (distanøa euclidianã dintre vectorii respectivi este mai micã decât o valoare suficient de micã). În acest fel în populaøia finalã vor rãmâne n cromozomi care nu vor mai putea fi modificaøi prin operatorii genetici consideraøi. Procesul s-a stabilizat ši n reprezintã numãrul optim de clase din muløimea datelor.

4.3.4. Stabilirea claselor

Ne putem pune acum ši problema identificãrii claselor. Pentru stabilirea claselor de obiecte corespunzãtoare prototipurilor optime gãsite putem din nou utiliza formula (1) sau orice altã metodã potrivitã. Putem, de exemplu, asocia punctul xj clasei i dacã este îndeplinitã condiøia:

d(xj, Li) = .

Cromodinamica geneticã reprezintã în realitate un nou tip de metodã evolutivã. Metoda poate fi utilizatã ši în alte scopuri, nu doar pentru clasificare. Ea ar putea fi folositã, de exemplu, pentru rezolvarea problemelor de optim multimodele, în care este importantã obøinerea mai multor puncte de optim.

5. AUTOMATE CELULARE

5.1. Noøiuni de bazã

Automatele Celulare sunt o clasã de modele de sisteme dinamice spaøial distibuite în care multe componente simple interacøioneazã pentru a produce forme complexe de comportament.

Automatele Celulare reprezintã un model computaøional puternic ši versatil. /o întrebare tipicã la care automatele celulare încearcã sã rãspundã este

“Cum pot fi proiectate sisteme caracterizate prin paralelism înalt, descentralizare ši extindere spaøialã, capabile sã realizeze variate sarcini computaøionale?”

Astfel de sisteme ar fi foarte eficiente pentru diferite scopuri computaøionale ši de instruire.

Cea mai simplã clasã de astfel de sisteme masiv paralele ši având extindere spaøiatã îl constituie Automatele Celulare uni-dimensionale. Un exemplu de Automat Celular uni-dimensional este reprezentat în Figura 1.

Figura 1. Un Automat Celular binar uni-dimensional.

În general, un Automat Celular (Toffoli, Magolus, 1987) este un sistem spaøial compus din celule, a cãror comportare avanseazã în timp în paši discreøi. Celulele sunt conectate în structuri regulate (grile). Celulele legate direct cu o anumitã celulã sunt vecinii acesteia. La fiecare moment fiecare celul este caracterizatã de o stare. Fiecare stare comunicã vecinilor starea ei ši calculeazã noua sa stare øinând cont de propria stare ši de stãrile vecinilor.

Noua stare se face pe baza unei reguli de tranziøie ce caracterizeazã fiecare celulã a sistemului. În cazul când stãrile sunt doar 0 sau 1 avem un Automat Celular binar. În acest caz regula de tranziøie se exprimã ca o funcøie boolenanã, ale cãrei valori se pot da sub forma unei tabele.

Automatul din Figura 1. are urmãtoarele caracteristici:

– numãrul stãrilor: 2

– raza vecinãtãøii: 1

Tabela tranziøiilor:

000 0

001 0

010 1

011 1

100 0

101 1

110 1

111 1

Un Automat Celular este ašadar un sistem specificat prin urmãtoarele elemente:

Structura grilei interconexiunilor.

Cele mai frecvente sunt grilele uni-dimensionale ši grilele bi- ši tri- dimensionale (de formã pãtraticã, respectiv cubicã). Alte forme utilizate sunt cele triunghiulare, hipercuburile ši arborii.

Vecinãtatea fiecãrei celule.

Datã fiind o grilã, vecinãtatea unei celule se definešte de regulã ca fiind o bilã cu centrul în celula respectivã ši de razã fixatã. Distanøa dintre douã celule este de obicei exprimatã prin numãrul de celule ce trebuie sãrite pentru a lega celulele considerate.

Condiøiile de frontierã.

Se considerã de obicei grile finite. În acest caz este necesar sã se specifice modul de construire a vecinãtãøii celulelor aflate la frontiera grilei (In caz contrar evoluøia celulelor aflate la frontierã nu poate fi indicatã). Existã douã abordãri uzuale:

(i) Condiøiile la limitã nule, care presupune grila înconjuratã de celule a cãror stare este invariabil zero;

(ii) Condiøii la limitã ciclice, care considerã cã celulele aflate pe pãrøi opuse ale frontierei sunt adiacente. Aceasta este echivalent cu a admite cã pãrøile opuse se ating sau grila devine circularã printr-o închidere la infinit.

Reguli de evoluøie (tranziøie).

Un Automat Celular se zice uniform dacã toate celulele sale urmeazã aceeaši regulã a evoluøiei. De regulã celulele urmeazã reguli diferite.

Condiøiile iniøiale.

De regulã se presupune cã evoluøia Automatului Celular pornešte dintr-o anumitã configuraøie predefinitã.

Automatele Celulare au fost folosite cu precãdere pentru a modela fenomene colective, caracterizate prin gradul înalt de complexitate. Câteva aplicaøii sunt indicate mai jos:

– dinamica fluidelor;

– prelucrarea imaginilor paralele;

– crešterea cristalelor;

– sisteme cu spin magnetic;

– formarea galaxiilor;

– oscilaøiile chimice;

– geneza unor forme biologice (de exemplu cochiliile moluštelor);

– dinamica celulelor;

– recunoašterea limbajelor formale paralele;

– testarea circuitelor logice;

– proiectarea ši instruirea reøelelor neuronale.

5.2. Folosirea AG pentru determinarea funcøiilor de tranziøie

Algoritmii genetici pot fi folosiøi pentru stabilirea regulilor unui Automat Celular. Problema este dificilã, dat fiind dimensiunea mare a spaøiului de cãutare. Sã considerãm pentru exemplificare un Automat Celular binar. Sã admitem cã raza vecinãtãøii este unu. Fiecare celulã are deci doi vecini. Prin urmare starea urmãtoare a fiecãrei celule este determinatã ca o funcøie booleanã de trei valori: starea prezentã ši stãrile vecinilor. Funcøia are trei variabile binare. Existã 23 combinaøii posibile ale celor trei valori. Funcøia de tranziøie este deci o funcøie booleanã

f: D {0,1},

unde D este muløimea combinaøiilor posibile de trei biøi. Este ušor de arãtat (prin inducøie) cã existã

m = 2|card D|

=

= 256

astfel de funcøii booleene diferite. Prin urmare funcøia de tranziøie a fiecãrei celule trebuie selectatã din 256 de funcøii diferite. Dimensiunea spaøiului de cãutare este în acest caz relativ redusã, însã suficient de mare.

Dacã avem însã o cvecinãtate de razã 2 atunci funcøia booleanã de tranziøie are 5 variabile ši dimensiunea spaøiului de cãutare este

m =

= 232.

În cazul vecinãtãøilor de razã trei existã însã

m =

= 2128

funcøii de tranziøie. Ceea ce înseamnã cã funcøia de tranziøie a fiecãrei celule trebuie cãutatã într-un spaøiu de cãutare cu 2128 elemente.

Aplicarea algoritmilor genetici pentru deducerea regulilor unui Automat Celular se poate face în diferite moduri, în funcøie de problema consideratã. Existã douã posibilitãøi privind alegerea cromozomilor:

(i) Fiecare cromozom corespunde unui Automat Celular. În acest caz valoarea genei i identificã regula pentru celula i a Automatului Celular. În cazul Automatelo Celulare binare aceastã regulã e datã de o funcøie booleanã.

(ii) Un cromozom corespunde unei reguli.

În ambele cazuri valoarea de adecvare se calculeazã rulând Automatul Celular corespunzãtor pentru T paši de timp. Numãrul de cazuri în care comportarea este satisfãcãtoare va servi pentru calculul adecvãrii.

Se considerã cazul în care cromozomii descriu reguli de tranziøie. Un algoritm genetic pentru determinarea regulilor AC este dat mai jos:

AG PENTRU STABILIREA REGULILOR UNUI AC

P1. Configuraøia iniøialã:

Se pune t = 0

Se iniøializeazã populaøia P(0) cu R reguli de tranziøie generate aleator.

P2. Se calculeazã adecvarea fiecãrei reguli.

P3. Se selecteazã cele mai bune E reguli (“elita”) ši se copiazã neschimbate în noua generaøie P(t+1)

P4. Se aplicã operatorii de încrucišare ši mutaøie regulilor din elitã, selectate print-un mecanism adecvat (selecøie proporøionalã, de exemplu).

Se genereazã R-E noi reguli.

Noile reguli intrã în populaøia P(t+1).

P5. Se pune t:=t+1.

P6. Se merge la pasul P2.

În cazul în care fiecare cromozom corespunde unui AC fiecare genã va avea un numãr de valori posibile egal cu numãrul regulilor posibile. În crucišarea se face selectând doi pãrinøi printr-o metodã adecvatã (mecanismul ruletei, de exemplu). Prin încrucišare se obøine un singur descendent. Valoarea fiecãrei gene provine dintr-un pãrinte sau din celãlalt, în mod aleator. Mutaøia se realizeazã selectând aleator o genã ši schimbând în mod aleator valoarea sa.

Valoarea funcøiei de adecvare asociatã fiecãrui cromozom se calculeazã rulând Automatul Celular corespunzãtor pentru T momente de timp succesive (T paši de funcøionare). Fiecare rulare va furniza un rezultat. Adecvarea se poate defini, de exemplu, ca raportul dintre numãrul rezultatelor favorabile (acceptabile) ši numãrul rezultatelor nefavorabile (inacceptabile pentru problema în discuøie).

6. ALTE APLICAØII

Metodele de cãutare ši optimizare bazate pe calculul evolutiv au un spectru larg de aplicaøii practice importante în domenii deiferite. Dãm mai jos o listã a câtorva dintre aceste aplicaøii.

Aplicaøii în sistemele de calcul distribuite ši paralele: estimarea/optimizarea timpului de comunicare între procesoare sau procese într-un mediu de calcul distribuit, configurarea procesoarelor, generarea automatã a testelor pentru circuite numerice. O aplicaøie extrem de interesantã vizeazã paralelizarea automatã a programelor secvenøiale utilizând algoritmi genetici.

Aplicaøiile în chimie vizeazã optimizarea proceselor ši strategiilor de producøie, proiectarea tehnologiilor ši instalaøiilor, analiza datelor ši interpretarea lor. Controlul proceselor chimice în condiøii de laborator ši industriale, controlul stãrii mediului (poluare etc.).

Domeniul aplicaøiilor tehnice este extrem de larg, incluzând proiectarea, simularea, testarea, analiza ši compararea tehnologiilor, controlul în timp real al proceselor, telecomunicaøiile (optimizarea reøelelor, controlul traficului, proiectarea dispozitivelor), prelucrarea imaginilor (recunoašterea scrisului, amprentelor, vocii) ši recunoašterea scenelor complexe.

Aplicaøii economice: modelarea sistemelor economice complexe, predicøia sistemelor (financiare: modelarea cu serii de timp financiare, predicøia pieøei).

Aplicaøii medicale: în principal în imagistica medicalã ši analiza datelor, diagnosticul automat (detectarea semnalelor ce indicã epilepsia, de exemplu).

Alte aplicaøii: alocarea resurselor, stabilirea programelor, optimizarea transporturilor, amplasarea optimalã a obiectivelor.

Dupã cum s-a amintit deja hibridizarea calculului evolutiv cu reøele neuronale ši logica fuzzy a dat naštere unei noi direcøii extrem de promiøãtoare – Calculul inteligent, care tinde sã se constituie într-o paradigmã puternicã a Inteligenøei Artificiale, generatoare de numeroase alte aplicaøii extrem de interesante.

7. BIBLIOGRAFIE

Bezdek, J.C., Hathaway, R.J. (1994), Optimization of fuzzy clusterige criteria using genetic algorithms, Proc. First, IEEE, Conference on Evolutionary Computing, Orlando, FL., 589-594.

Blekas, K., Stafylopatis, A. (1996), Real – coded genetic optimization of fuzzy clustering, Proc. EUFIT ‘96, Aachen, 461-465.

Davis, L. (editor) (1991), Handbook of Genetic Algorithms, Van Nostrand Rainhold New York.

Dumitrašcu, A. (1997), Proiectarea Reøelelor Neuronale, Odeon, Bucurešti.

Dumitrescu, D. (1998), Principiile Matematice ale Teoriei Clasificãrii, Editura Academiei, Bucurešti.

Dumitrescu, D., Bodrogi, L. (1997), A New Evolutionary Method and Its Application in Clustering, Babeš-Bolyai University, Seminar on Computer Science,

2, 127-134.

Dumitrescu, D., Costin, H., Reøele Neuronale, Teora, Bucurešti, 1996.

Dumitrescu, D., Dodu, C., Dodu, V. (1997), Comparative study of genetic algorithms, Babeš-Bolyai University, Seminar on Computer Science, 2, 115-126.

Dumitrescu, D., Lazzerini, B., Bodrogi, L. (1998), Flexible evolutionary search for search and optimization, Electronics Letters (submitted).

Dumitrescu, D., Stan, I (1996), Genetic Algorithms in Neural Networks and Clustering in A.M. Ramsay (ed.) Artificial Intelligence Methodology, Systems, Applications, IOS Press, Amsterdam, Oxford, Tokyo, Washington, 134-140.

Dumitrescu, D., Stan, I., Dumitrescu, A. (1997), Genetic Algorithms for Fuzzy Clustering, Multidimensional Encoding, EUFIT ‘97, Aachen, Vol. 1, 705-708.

Fitzpatrick, M.J., Grefensette, J.J. (1998), Genetic Algorithms in Noisy Environments, Machine Learning, 3, 101-120.

Fourman, M.P. (1985), Compaction of symbolic layout using genetic algorithms, in J.J. Grefenstette (editor), Proceeding of the First International Conference on Genetic Algorithms, Lawrena Erlbourn Associates, p. 141-153.

Grefensette, J.J. (1986), Optimization of Control parametera for Genetic Algorithms, IEEE Transactions on Systems, Man and Cybernetics, 16, 122-128.

Grefensette, J.J. (1991), Strategy acquisition with genetic algorithms, in L. Davis (ed.) Handbok of Genetic Algorithms, Van Nostrand Rainhold, New York, 186-201.

Koza, J.R. (1992), Genetic Programming, MIT Press, Cambridge, MA.

Mitchell, M. (1996), An Introduction to Genetic Algorithms, MIT Press, Cambridge, MA.

Toffoli, T., Magolus, N., (1987), Cellular Automata Machines: A New Environment for Modelling, MIT Press, Cambridge (USA).

=== Capitolul2 ===

2

ALGORITMI GENETICI ŠI EVOLUTIVI.

PRINCIPII GENERALE

În acest capitol se prezintã ideile de bazã ale algoritmilor evolutivi. Se evidenøiazã ideile evoluøiei ši selecøiei naturale care au condus la clase importante de algoritmi de cãutare ši optimizare. Se prezintã structura generalã a unui algoritm evolutiv.

1. METAFORA EVOLUTIVÃ

Punctul de vedere acceptat în Inteligenøa Artificialã este cã îndeplinirea oricãrei sarcini poate fi privitã ca rezolvarea unei probleme. La rândul sãu, rezolvarea unei probleme poate fi gânditã ca o cãutare în spaøiul soluøiilor posibile (spaøiul stãrilor problemei). Aceastã cãutare poate fi ghidatã de o funcøie de performanøã. Procesul de cãutare este în acest caz însoøit de un proces de optimizare: dintre soluøiile posibile suntem interesaøi de cea mai bunã. Uneori ne putem muløumi cu o soluøie suficient de bunã (aproximativ optimã).

Pentru probleme de mare complexitate, gãsirea soluøiei optime, sau chiar a uneia acceptabile, este dificil de realizat. Tehnicile clasice fie nu sunt aplicabile, fie necesitã un timp de lucru prohibitiv. Algoritmii genetici (AG) sunt adecvaøi tocmai pentru soluøionarea unor astfel de probleme dificile.

Algoritmii genetici (Holland, 1975) reprezintã tehnici de cãutare ši optimizare având ca punct de pornire o metaforã bilogicã. Aceastã metaforã biologicã este cea a moštenirii genetice ši evoluøiei naturale.

În cursul evoluøiei, toate fiinøele sunt confruntate cu problema adaptãrii la un mediu complicat, în continuã schimbare, sau ostil. În acest proces fiecare specie “învaøã”, iar cunoašterea pe care a câštigat-o este codificatã în cromozomii speciei. Evoluøia este ašadar un proces care are loc la nivelul cromozomilor. Caracteristicile unei fiinøe vii sunt stabilite printr-un proces de decodificare a cromozomilor sãi. Codificarea ši decodificarea informaøiei genetice la nivelul cromozomilor nu este încã pe deplin elucidatã.

Din perspectiva care ne intereseazã aici reøinem doar câteva caracteristici esenøiale ale procesului de evoluøie geneticã:

(i) Cromozomii sunt purtãtorii informaøiei genetice.

(ii) Fiecare individ al unei specii posedã un numãr determinat de cromozomi. Totalitatea cromozomilor unui individ reprezintã genotipul sãu.

(iii) Cromozomii sunt structuri liniare alcãtuite din gene. Genele poartã caracteristicile ereditare. O genã controleazã una sau mai multe caracteristici. Genele unei anumite caracteristici ocupã locuri determinate, numite loci, în cromozom.

O genã poate fi în mai multe stãri, numite alele (valori ale caracteristicilor).

(iv) Evoluøia este un proces ce operezã la nivelul cromozomilor.

(v) Selecøia naturalã reprezintã legãtura dintre cromozomi ši performanøele indivizilor (structurilor decodificate respective). Procesul selecøiei naturale favorizeazã reproducerea acelor cromozomi ce codificã structuri de succes.

(vi) Evoluøia se realizeazã în procesul reproducerii. În evoluøie acøioneazã procese de selecøie ši mutaøie. Foarte importante sunt procesele de recombinare a materialului genetic ce caracterizeazã pãrinøii.

În 1965, John Holland de la Universitatea Michigan a avut ideea de a aplica modelul genetic al evoluøiei în rezolvarea unor probleme de cãutare ši optimizare. Sistemele construite în acest fel utilizeazã o populaøie de cromozomi ce reprezintã o muløime de soluøii potenøiale. Prin procese de selecøie, mutaøie ši recombinare sistemul evolueazã spre stãri mai apropiate de optim. Selecøia cromozomilor pentru modificare se face folosind o funcøie de evaluare (adecvare). Putem admite cã aceastã funcøie descrie acøiunea mediului.

Originea algoritmilor evolutivi poate fi pusã în legãturã cu unele lucrãri din anii ‘50, cum ar fi cele ale lui Box (1957) ši Fraser (1957).

Algoritmii genetici reprezintã o clasã de algoritmi evolutivi. Algoritmii evolutivi implementeazã proceduri care imitã procesele de adaptare / cãutare apãrute în evoluøia naturalã. Toøi algoritmii evolutivi folosesc populaøii în care fiecare individ reprezintã un punct din spaøiul de cãutare. Algoritmii evolutivi se bazeazã pe principiul învãøãrii colective într-o populaøie.

Programarea evolutivã (Fogel, Owens, Walsh, 1966), strategiile evolutive (Rechenberg, 1973 ; Schwefel, 1981) ši algoritmii genetici sunt cele mai cunoscute tipuri de algoritmi evolutivi.

2. STRUCTURA UNUI ALGORITM EVOLUTIV

Algoritmii evolutivi reprezintã mai multe clase de metode aleatoare de cãutare. Fiecare individ al populaøiilor implicate în procesul de cãutare se descrie printr-un singur cromozom. Considerãm ašadar cã genotipul fiecãrui individ conøine un singur cromozom.

Orice algoritm evolutiv (sau program evolutiv) folosešte o populatie de indivizi (cromozomi) care este modificatã prin intermediul unor operatori genetici cum ar fi cei de selecøie, mutaøie, recombinare, etc. Timpul variazã discret. Notãm cu P(t) populaøia de cromozomi de la momentul t , unde t = 0, 1, 2, . . . .

Fie X spaøiul de cãutare (spaøiul stãrilor problemei). Fiecare individ (cromozom) reprezintã un element din X, adicã o soluøie posibilã a problemei. Un cromozom este un šir finit peste elementele unui vocabular. Evaluarea calitãøii indivizilor din spaøiul de cãutare se face cu ajutorul unei funcøii de performanøã. Alte denumiri utilizate sunt: funcøie de potrivire, funcøie de adecvare sau funcøie de evaluare. Fie f : X R , funcøia de performanøã (sau funcøia de adecvare). Fiecare individ (soluøie) este evaluat prin intermediul acestei funcøii.

Fie P(t) = { xt1 , xt2 , . . . , xtn } populaøia la momentul t . P(t) reprezintã o generaøie. Noua generaøie P(t + 1) se formeazã selectând cei mai performanøi indivizi din P(t) ši aplicând asupra lor operatorii genetici de recombinare, mutaøie, etc.

Operatorul de recombinare este folosit pentru a crea noi indivizi folosind segmente (subširuri) a doi sau mai muløi cromozomi. Operatorul de recombinare se poate defini ca o aplicaøie R : Xp Xq . În acest caz spunem cã operatorul R realizeazã o transformare de tipul (p,q) în care p pãrinøi dau naštere la q descendenøi.

Operatorul de mutaøie reprezintã o transformare unarã m : X X . Operatorul de mutaøie m creeazã noi indivizi prin schimbãri (mici) ale unui singur individ. De exemplu m permite schimbarea unei singure gene a individului (cromozomului) respectiv. Mutaøia realizeazã mici perturbãri ale cromozomilor obøinuøi prin recombinare.

Operatorul de supravieøuire decide care cromozomi (pãrinøi ši descendenøii lor obøinuøi prin recombinare ši mutaøie) vor forma efectiv noua generaøie. Fiecare tip de algoritm evolutiv are un mecanism propriu ce realizeazã supravieøuirea.

Populaøia iniøialã se genereazã de regulã prin selectarea aleatoare a unor puncte din spaøiul de cãutare. În unele cazuri cunoštinøele specifice despre domeniul problemei pot servi pentru a ghida cãutarea.

Criteriul de oprire pentru un algoritm evolutiv este de regulã legat de numãrul de generaøii. Cel mai performant individ al ultimei generaøii (sau cel mai performant individ din întreaga istorie a procesului) reprezintã soluøia obøinutã pentru problema în discuøie.

Consideraøiile de mai sus conduc la urmãtoarea structurã a unui algoritm evolutiv:

STRUCTURA GENERALÃ A UNEI PROCEDURI EVOLUTIVE

P1. Se pune t := 0 .

P2. Se iniøializeazã populaøia P(t) .

P3. Se evalueazã P(t) utilizând o funcøie de performanøã f .

P4. Pânã când (condiøie) se executã {

t := t + 1 ;

Selecøia P(t) ;

Recombinarea asupra lui P(t) ;

Mutaøia asupra lui P(t) ;

Evaluarea lui P(t ) ;

Supravieøuirea în P(t) .

}

Observaøie: La pasul P4 apare o condiøie de oprire a algoritmului. De regulã, aceastã condiøie se referã la atingerea numãrului de generaøii prescris.

Orice procedurã evolutivã trebuie sã furnizeze urmãtoarele elemente:

(i) O reprezentare geneticã a spaøiului de cãutare (spaøiul stãrilor problemei sau spaøiul soluøiilor potenøiale ale problemei).

(ii) O populaøie iniøialã de soluøii potenøiale. De regulã, populaøia iniøialã se alege în mod arbitrar.

(iii) O funcøie de evaluare ce mãsoarã performanøa fiecãrui individ în raport cu scopul urmãrit.

(iv) O metodã de selectare a cromozomilor pentru modificare ši recombinare (reproducere).

(v) Operatorii genetici pentru crearea de noi cromozomi prin recombinare.

(vi) Valorile parametrilor ce apar în algoritmul evolutiv (dimensiunea populaøiei, probabilitãøile de aplicare a diferiøilor operatori genetici, numãrul total de generaøii, etc.).

Rezultã cã un algoritm evolutiv are mai multe componente. Ele pot fi grupate în trei module: un Modul Populaøie, un Modul Evaluare ši un Modul Recombinare ši Mutaøie.

Modulul Populaøie conøine o metodã pentru iniøializarea unei populaøii de cromozomi. Modulul conøine tehnica de reprezentare a cromozomilor ši tehnici pentru crearea ši manipularea noilor generaøii ale populaøiei. În acest modul se specificã felul în care se trece de la o populaøie la alta. Aceastã trecere se poate face prin înlocuirea totalã sau parøialã a cromozomilor generaøiei vechi cu noua generaøie de cromozomi. Modulul indicã metoda de selecøie a cromozomilor, dimensiunea populaøiei ši numãrul total de generaøii.

Modulul Evaluare conøine funcøia de performanøã folositã pentru compararea cromozomilor.

Modulul Recombinare ši Mutaøie conøine metodele folosite pentru a crea noi cromozomi. Sunt specificaøi parametrii operatorilor genetici utilizaøi, cum ar fi probabilitatea de mutaøie, probabilitatea de încrucišare, etc.

3. BIBLIOGRAFIE

Box, G. E. P. (1957), Evolutionary operation: a method of increasing industrial productivity, Applied Statistics, 6, 81-101 .

Davis, L. (1991), Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York.

Fogel, L. J. , Owens, A. J. , Walsh, M. J. (1966), Artificial Intelligence Through Simulated Evolution, Wiley, New York .

Fraser, A. S. (1957), Simulation of genetic systems by automatic digital computers, Australian Journal of Biological Science, 10, 484-491.

Holland, J. (1975), Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor .

Rechenberg, I. (1973), Evoltionstrategie: Optimierung Technischen Systeme nacht Prinzipen der Biologischen Evolution, Fromman – Holzboog, Stuttgart .

Schwefel, H. P. (1981), Numerical Optimization for Computer Models, Wiley, Chicester, U.K. .

=== Capitolul3 ===

3

STRUCTURA UNUI ALGORITM GENETIC

INTRODUCERE

În acest capitol sunt prezentate noøiunile fundamentale referitoare la algoritmii genetici, componentele ši structura acestora. Se indicã modul în care un algoritm genetic realizeazã cãutarea în spaøiul problemei ši se analizeazã compromisul realizat între explorarea ši exploatarea spaøiului de cãutare. Se definešte noøiunea de schemã. Este evidenøiat modul în care, prin prelucrarea simultanã a unui numãr mare de scheme, este realizat un paralelism intrinsec, specific algoritmilor genetici.

Într-un algoritm genetic, fiecare element al spaøiului de cãutare se poate reprezenta ca un individ (sau un cromozom) al unei populaøii. Dupã cum s-a precizat anterior, fiecare cromozom este constituit dintr-o muløime de elemente numite caracteristici sau gene. Fiecare genã se poate afla în mai multe stãri, numite alele. Acestea din urmã indicã valori (nu neapãrat numerice) ale caracteristicilor (genelor). Numãrul de gene dintr-un cromozom este constant pentru o populaøie datã. Numãrul genelor definešte lungimea cromozomului. Vom nota cu r lungimea cromozomilor unei populaøii.

Fie V alfabetul ce corespunde valorilor alelelor. Un cromozom se reprezintã printr-o secvenøã de lungime r formatã cu elemente ale lui V. Rezultã cã orice cromozom este un element din Vr. Alfabetul V depinde de clasa de probleme la care se aplicã algoritmul genetic. Lungimea cromozomilor este stabilitã în funcøie de natura problemei. Cea mai rãspânditã este codificarea binarã a valorilor genelor. În acest caz, alfabetul este V = {0,1}, iar un cromozom este o secvenøã binarã de lungime r 1.

ECHILIBRUL EXPLORARE – EXPLOATARE

Fiecare cromozom reprezintã o soluøie potenøialã a problemei. Un algoritm genetic realizeazã cãutarea în spaøiul soluøiilor problemei prin modificarea unei populaøii de cromozomi. Cãutarea soluøiei într-un spaøiu complex implicã realizarea unui compromis între douã obiective aparent contradictorii: exploatarea celor mai bune soluøii disponibile la un moment dat ši explorarea robustã a spaøiului soluøiilor posibile. Cele douã aspecte corespund cãutãrii locale ši respectiv cãutãrii globale în spaøiul soluøiilor problemei.

Obøinerea unui echilibru între exploatarea informaøiei obøinute pânã la momentul curent ši explorarea spaøiului stãrilor pentru a obøine soluøii noi, mai bune, este specificã tuturor metodelor puternice de optimizare. Dacã soluøiile obøinute sunt exploatate prea mult atunci se atinge o convergenøã prematurã. Procedura se oprešte cu o soluøie care poate sã nu fie acceptabilã. Pe de altã parte, dacã accentul cade prea puternic pe explorare, este posibil ca informaøia deja obøinutã sã nu fie utilizatã în mod corespunzãtor. Acest lucru face ca timpul de cãutare sã creascã foarte mult, ceea ce apropie procedurile respective de metodele aleatoare de cãutare. Vom indica în continuare felul în care unele clase de metode rezolvã problema echilibrului dintre exploatare ši explorare.

Metodele de coborâre (de tip gradient) reprezintã o situaøie extremã în compromisul explorare-exploatare. Ele sunt strategii care exploateazã cea mai bunã soluøie pentru îmbunãtãøiri ulterioare ale acestei soluøii. Se neglijeazã explorarea spaøiului de cãutare ši, în consecinøã, metoda suferã din cauza caracterului local al optimului gãsit.

În mod similar, metoda Box (Box, 1957), deši este bazatã pe utilizarea unei populaøii de soluøii potenøiale, nu are nici un mecanism de explorare. Din acest motiv metoda nu este foarte eficientã.

Metodele de cãutare aleatoare reprezintã cealaltã situaøie extremã. Cãutarea pur aleatoare este un exemplu tipic de strategie care exploreazã spaøiul de cãutare, ignorând exploatarea regiunilor promiøãtoare ale spaøiului. Metodele de acest tip sunt lente ši aceastã lentoare le face inaplicabile pentru probleme practice dificile.

Metoda recoacerii simulate (simulated annealing) reprezintã o procedurã de cãutare aleatoare în care este prezentã ši exploatarea. Acest lucru se realizeazã printr-un mecanism ce asigurã stabilirea unui echilibru la fiecare valoare a unui parametru având semnificaøia temperaturii termodinamice. (Pentru detalii se poate consulta monografia Dumitrescu ši Costin, 1996).

Algoritmii genetici reprezintã o clasã de strategii de cãutare generale (independente de domeniu) care realizeazã un compromis rezonabil între explorarea ši exploatarea spaøiului soluøiilor. Studii teoretice (Holland, 1975) au arãtat cã algoritmii genetici realizeazã acest compromis de o manierã aproape optimalã. Exploatarea ši explorarea sunt aspecte ce pot fi controlate aproape independent, ceea ce permite o mare flexibilitate în proiectarea algoritmilor genetici.

REZOLVAREA PROBLEMELOR UTILIZÂND ALGORITMI GENETICI

Pentru rezolvarea unei probleme folosind un algoritm genetic este necesarã definirea de cãtre utilizator a unei funcøii care mãsoarã performanøa (adecvarea) fiecãrui cromozom. Funcøia de performanøã (adecvare) depinde de abilitatea utilizatorului de a codifica în mod adecvat problema sa. Dacã se rezolvã o problemã clasicã de optimizare sau una de optimizare combinatorialã, funcøia de adecvare poate coincide cu funcøia criteriu (funcøia obiectiv) asociatã problemei sau se obøine prin transformãri simple (de exemplu prin scalare) aplicate funcøiei criteriu. În alte situaøii funcøia de evaluare reprezintã o funcøie de cost, o funcøie de câštig, etc., sau este dedusã dintr-o astfel de funcøie.

Un algoritm genetic este o procedurã iterativã de cãutare globalã având drept scop optimizarea funcøiei de evaluare. Algoritmul lucreazã în paralel asupra unei populaøii de soluøii potenøiale (cromozomi) distribuite peste întreg spaøiul de cãutare. În mod obišnuit, valoarea performanøei unui cromozom este independentã de performanøele celorlaløi indivizi ai populaøiei. O altã posibilitate este de a considera o funcøie de adecvare implicitã ale cãrei valori depind ši de restul populaøiei prin intermediul anumitor interacøiuni între indivizi. În acest caz putem vorbi de o adaptare intrinsecã (Packard, 1988) ce asigurã co-evoluøia indivizilor (Kaufman ši Johnsen, 1991).

Dinamica procesului de cãutare generat de un algoritm genetic se realizeazã prin combinarea ši modificarea cromozomilor. Scopul este gãsirea combinaøiei optime, adicã a acelei combinaøii ce corespunde adecvãrii maxime. La fiecare iteraøie a algoritmului se creeazã o nouã populaøie, numitã generaøie. Toate generaøiile au acelaši numãr de indivizi. Se admite cã, în general, noua generaøie constã din indivizi mai performanøi, adicã mai bine adaptaøi la mediul reprezentat de funcøia de adecvare. Cu succesiunea generaøiilor se va înregistra o tendinøã de evoluøie a indivizilor spre optimul global al funcøiei de adecvare.

Obøinerea unei noi generaøii plecând de la precedenta are loc în trei etape:

1. Evaluarea. Algoritmul genetic calculeazã valoarea funcøiei de adecvare pentru fiecare individ al vechii populaøii.

2. Selecøia. Algoritmul genetic selecøioneazã indivizii unei populaøii P(t) în funcøie de performanøele lor. Indivizii selecøionaøi vor reprezenta o populaøie intermediarã P1. Cromozomii populaøiei P1 devin pãrinøii noii generaøii P(t+1).

3. Recombinarea ši modificarea. Algoritmul genetic recombinã ši modificã indivizii selecøionaøi. În acest scop se utilizeazã operatorii genetici de încrucišare (recombinare), mutaøie, inversiune, etc. Din punct de vedere algoritmic, operatorii genetici reprezintã metode de a schimba local soluøiile reprezentate de pãrinøi (mutaøia ši inversiunea) sau de a combina aceste soluøii (încrucišarea). Încrucišarea constã într-un transfer de gene între doi cromozomi.

Fiecãrui operator genetic îi corespunde o probabilitate de aplicare. Aceste probabilitãøi sunt parametri ai algoritmului. Operatorii genetici se aplicã, cu probabilitãøile respective, asupra populaøiei intermediare. Aplicând operatorul de încrucišare asupra populaøiei P1 se obøine o populaøie P2 . Asupra indivizilor din P2 se aplicã opratorii de mutaøie, inversiune, etc. Indivizii din P2 împreunã cu acei indivizi din P1 care nu au suferit recombinarea vor constitui noua generaøie P(t+1).

STRUCTURA ALGORITMILOR GENETICI

Algoritmul genetic fundamental

Structura unui algoritm genetic este identicã, în esenøã, cu cea a unei proceduri evolutive. Cromozomii utilizaøi au lungime constantã. Populaøia (generaøia) P(t+1) la momentul (t+1) se obøine reøinând toøi decendenøii populaøiei P(t) ši štergând apoi complet cromozomii generaøiei precedente (P(t)). Numãrul cromozomilor în fiecare generaøie este constant. Principalii operatori genetici utilizaøi sunt cei de mutaøie, încrucišare ši inversiune. Structura acestui algoritm genetic se poate reprezenta ca mai jos:

ALGORITMUL GENETIC FUNDAMENTAL

P1. Se pune t := 0 .

P2. Se iniøializeazã aleator populaøia P(t) .

P3. Se evalueazã cromozomii populaøiei P(t) .

În acest scop se utilizeazã o funcøie de performanøã ce depinde de problema datã .

P4. Cât timp ( non C ) executã:

P4.1. Selecteazã cromozomii din P(t) care vor contribui la formarea noii generaøii. Fie P1 muløimea cromozomilor selectaøi. (P1 reprezintã o populaøie intermediarã) .

P4.2. Se aplicã cromozomilor din P1 operatorii genetici. Cei mai utilizaøi sunt operatorii de mutaøie ši încrucišare. În funcøie de problemã se pot alege ši aløi operatori (inversiune, reordonare, operatori speciali) .

Fie P2 populaøia astfel obøinutã (descendenøii populaøiei P(t)) .

Se šterg din P1 pãrinøii noilor indivizi obøinuøi .

Cromozomii rãmaši în P1 sunt atribuiøi populaøiei P2 .

Se construiešte noua generaøie, punând:

P(t + 1) := P2 .

Se šterg toøi cromozomii din P(t) .

Se pune t := t + 1 .

Se evalueazã P(t) .

Sfâršit Cât timp .

Observaøii:

Condiøia de oprire C se referã, de regulã, la atingerea numãrului de generaøii specificate. Dacã numãrul maxim admis de generaøii este N, atunci condiøia de oprire C este t >N.

De obicei se admite cã rezultatul algoritmului este codificat de cel mai performant individ din ultima generaøie. În realitate, nimic nu ne garanteazã cã un individ mai performant nu a fost obøinut într-o generaøie anterioarã. Este deci natural ca la fiecare pas (la fiecare moment t) sã reøinem cel mai bun individ care a fost generat pânã atunci. Pentru a implementa aceastã strategie sunt necesare câteva mici modificãri în algoritmul de mai sus.

Modificarea propusã în observaøia precedentã poate fi extrem de utilã. În acest fel suntem siguri cã cea mai bunã soluøie gãsitã nu s-a pierdut pe parcurs. Natura acestei modificãri este similarã cu cea propusã de Gallant în raport cu algoritmul de instruire al perceptronului (vezi, de exemplu, Dumitrescu ši Costin, 1996).

Sunt posibile ši numeroase alte variante de supravieøuire. Putem de exemplu sã considerãm cã cei mai buni q indivizi din generaøia P(t) vor fi incluši în mod automat în generaøia urmãtoare. Totodatã ei vor putea sã sufere ši operaøiile de recombinare, mutaøie, etc.

Modulele unui algoritm genetic

Implementarea unui algoritm genetic se poate face utilizând modulele POPULAØIE, EVALUARE ši RECOMBINARE ŠI MODIFICARE specifice algoritmilor evolutivi.

Dãm mai jos ši structura acestor trei module corespunzãtoare Algoritmului Genetic Fundamental (AGF).

MODULELE AGF

MODULUL POPULAØIE

Metoda de reprezentare: codificare binarã sau codificare realã .

Lungimea crmozomului: r .

Metoda de iniøializare: iniøializare aleatoare .

Metoda de štergere: šterge vechea populaøie în întrgime (sau altã metodã) .

Metoda de înlocuire: înlocuire cu noua generaøie .

Metoda de selecøie pentru modificare ši reproducere: metodã probabilistã (de exemplu selecøia uniformã cu metoda Monte Carlo) .

Metoda de potrivire: evaluarea .

Dimensiunea populaøiei: n1 .

Numãrul maxim de generaøii: n2 .

MODULUL EVALUARE

Funcøia de evaluare:

MODULUL RECOMBINARE ŠI MODIFICARE

Operatorii genetici utilizaøi: Mutaøia

Încrucišarea

Inversiunea

Parametrii algoritmului: Probabilitatea de mutaøie: pm .

Probabilitatea de încrucišare: pc .

Probabilitatea de inversiune: pi .

SCHEME ŠI BLOCURI CONSTRUCTIVE

Algoritmii genetici utilizeazã operatori conøinând copierea cromozomilor, schimbarea unor subširuri ši modificarea unor poziøii. Este surprinzãtor cum cu astfel de operatori ši cu mecanismele simple descrise mai sus se poate realiza o cãutare eficientã. În cele ce urmeazã vom încerca sã oferim un model intuitiv privind comportarea algoritmilor genetici. Acest model se bazeazã pe observarea anumitor similaritãøi între cromozomii reprezentând douã populaøii succesive obøinute prin aplicarea unui AG. În general este de ašteptat ca performanøa medie a populaøiei sã creascã de la o generaøie la alta. Similaritãøile amintite ar putea fi corelate cu aceastã creštere a performanøei. În literatura de specialitate similaritãøile dintre cromozomi se numesc scheme. Mai precis, o schemã reprezintã o muløime de cromozomi având anumite poziøii identice.

În codificarea binarã, o schemã este un šir format cu simbolurile 0, 1 ši . Simbolul într-o poziøie a širului înseamnã cã aceastã poziøie poate fi ocupatã de orice simbol al alfabetului binar {0,1}.

Exemplul 1.

Fie schema

S = (1 0) .

Aceastã schemã reprezintã patru cromozomi, având 1 pe prima poziøie ši 0 pe ultima poziøie. Acešti cromozomi vor fi

x1 = 1 0 0 0 ,

x2 = 1 0 1 0 ,

x3 = 1 1 0 0 ,

x4 = 1 1 1 0 .

Exemplul 2.

Reciproc, cromozomul

x = 1 0

este reprezentat de 22 scheme. Aceste scheme sunt urmãtoarele:

S1 = ,

S2 = 0 ,

S3 = 1 0 ,

S4 = 1 .

Cromoxomul x considerat este o instanøã sau un reprezentant al fiecãreia dintre schemele S1 – S4 .

Definiøiile formale pentru noøiunile introduse sunt date în continuare:

O schemã de lungime r este un element al muløimii {0,1,}r .

Fie S o schemã de lungime r. Spunem cã un cromozom x{0,1}r este o instanøã a schemei S dacã oricãrei poziøii diferite de din S îi corespunde o poziøie din x având aceeaši valoare.

Se numešte poziøie specificã a schemei S orice poziøie din S diferitã de . Simbolul are semnificaøia indiferent, adicã poziøia respectivã poate fi, cu egalã îndreptãøire, 0 sau 1.

O schemã S reprezintã toøi acei cromozomi x pentru care toate poziøiile specifice ale lui S coincid cu poziøiile corespunzãtoare din x. Cromozomul x este un reprezentant al (o instanøã a) schemei S.

Exemple.

Schema S1 = ( ) reprezintã toøi cromozomii de lungime 3.

Schema S2 = (1 0 1 ) reprezintã un singur cromozom ši anume x = ( 1 0 1 ).

Deoarece o schemã reprezintã anumiøi cromozomi similari rezultã cã o schemã poate fi identificatã cu o anumitã regiune a spaøiului X al cromozomilor de lungime r. Ašadar, schemele reprezintã submuløimi ale spaøiului de cãutare. Din punct de vedere geometric, schemele reprezintã drepte, varietãøi liniare, sau hiperplane în spaøiul de cãutare.

Propoziøie.

Fiecare schemã S reprezintã 2m cromozomi (S are 2m instanøe), unde m este numãrul simbolurilor (numãrul poziøiilor nespecifice) din schema S .

Demonstraøia, prin inducøie, este imediatã.

Exemplu.

Schema:

S = 1 0

are patru instanøe:

x1 = 1 0 0 0

x2 = 1 0 0 1

x3 = 1 1 0 0

x4 = 1 1 0 1

Ašadar, schema S descrie muløimea { x1, x2, x3, x4 } din spaøiul de cãutare.

Ordinul unei scheme este dat de numãrul de poziøii specifice, iar lungimea utilã este diferenøa dintre ultima ši prima poziøie specificã a schemei.

Suntem acum în mãsurã sã enunøãm un rezultat matematic fundamental privind comportarea algoritmilor genetici. Acest rezultat este cunoscut drept teorema schemelor ši indicã faptul cã evoluøia generaøiilor are loc în sensul crešterii performanøei. Rezultatul stabilit de teorema schemelor are un caracter probabilist.

Definim adecvarea (performanøa, calitatea) unei scheme într-o populaøie ca fiind adecvarea medie a reprezentanøilor (instanøelor) ei în acea populaøie.

Teorema schemelor.

O schemã având o adecvare (performanøã) peste medie, valori mici ale ordinului ši lungimii utile, tinde sã aparã mai frecvent în cromozomii generaøiei urmãtoare. Dimpotrivã, o schemã având o adecvare sub medie tinde sã aparã mai puøin frecvent (sã aibã mai puøini reprezentanøi) în generaøiile urmãtoare.

Un capitol ulterior va fi consacrat discutãrii diferitelor aspecte legate de teoria schemelor. Teorema prezentatã mai sus va primi ši ea o formulare mai riguroasã.

Un algoritm genetic manipuleazã simultan un mare numãr de scheme. Aceastã caracteristicã reprezintã paralelismul intrinsec al algoritmilor genetici. Teorema schemelor ne asigurã cã paralelismul intrinsec este asociat cu crešterea adecvãrii în generaøiile succesive.

O categorie specialã de scheme o reprezintã blocurile constructive. O schemã ce are o calitate peste medie, ordin ši lungime utilã mici se numešte bloc constructiv.

Conform teoremei schemelor, prin acøiunea operatorilor genetici blocurile constructive se combinã dând naštere la blocuri constructive tot mai performante, care vor converge spre soluøia optimã.

CARACTERISTICILE ALGORITMILOR GENETICI

Algoritmii genetici reprezintã o clasã importantã de metode de cãutare ši optimizare. Aceste metode se bazeazã pe principiile geneticii naturale ši selecøiei naturale.

Suntem acum în mãsurã sã desprindem principalele caracteristici ale algoritmilor genetici, aša cum rezultã din consideraøiile expuse în paragrafele precedente. Aceste caracteristici se referã mai ales la particularitãøile algoritmilor genetici în raport cu alte metode de cãutare ši optimizare. Dãm mai jos o listã a caracteristicilor de bazã ale algoritmilor genetici:

Algoritmii genetici sunt o clasã de algoritmi probabilišti care combinã elemente de cãutare dirijatã ši cãutare aleatoare. Ei realizeazã un echilibru aproape optimal între explorarea spaøiului stãrilor ši exploatarea celor mai bune soluøii gãsite.

Algoritmii genetici sunt mai robušti decât metodele existente de cãutare dirijatã ši decât algoritmii clasici de optimizare.

Metodele de cãutare bazate pe algoritmii genetici sunt caracterizate de faptul cã ele menøin o populaøie de soluøii potenøiale. Metodele clasice de cãutare acøioneazã la un moment asupra unui singur punct din spaøiul de cãutare.

De regulã, algoritmii genetici lucreazã cu o codificare a elementelor din spaøiul stãrilor problemei ši nu acøioneazã direct asupra elementelor acestui spaøiu.

Algoritmii genetici folosesc funcøii de performanøã obøinute prin transformãri simple ale funcøiei obiectiv. Nu este necesar ca funcøia obiectiv sã fie derivabilã. Nu sunt necesare nici proprietãøi speciale de covexitate ale funcøiei obiectiv.

Algoritmii genetici sunt simplu de folosit.

Algoritmii genetici pot gãsi soluøiile optime (sau aproape optime) cu o mare probabilitate.

BIBLIOGRAFIE

Balazs, M. E. (1993), Algoritmi Genetici ši Aplicaøiile lor, Tezã de doctorat, Universitatea “Babeš-Bolyai”, Cluj-Napoca .

Box, G. E. P. (1957), Evolutionary operation: a method for increasing industrial productivity, Journal Royal Statistical Society, C, 6, 81-101.

Dumitrescu D. , Costin H. (1996), Reøele Neuronale, Teora, Bucurešti .

Goldberg, D. E. (1989), Genetic Algorithms in Search, Optimization and Machine Learning, Addison Wesley, Reading, MA .

Holland, J. (1975), Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor .

Kaufman, S. A. , Johnsen, S. (1991), Co-evolution at the edge of chaos: coupled fitness landscapes, poised states and co-evolutionary avalanches, in Artificial Life, II , C.G. Langton, C. Taylor, J.D. Farmer, S. Rasmussen (editori), Addison Wesley, Redwood City, 325-369 .

Koza, J. R. (1991), Genetic Programming, MIT Press, Cambridge, MA .

Packard, N. H. (1988), Intrinsic adaption in a simple model for evolution, in Artificial Life, I , C.G. Langton (editor), Addison Wesley, Redwood City, 141-155.

Stan, I. (1996), Algoritmi Evolutivi în Reøele Neuronale ši Clasificare, Tezã, Universitatea “Babeš-Bolyai”, Cluj-Napoca .

=== Capitolul4 ===

4

OPERATORI GENETICI UZUALI

CODIFICAREA BINARÃ

1. INTRODUCERE

Acest capitol este consacrat prezentãrii detaliate a celor mai folosiøi operatori de selecøie, recombinare ši modificare.

Pentru a realiza trecerea de la populaøia curentã P(t) la populaøia P(t+1) este necesar ca un numãr de cromozomi (indivizi) sã fie selectaøi din populaøia curentã. Indivizii selectaøi vor fi pãrinøii cromozomilor din generaøia urmãtoare. Asupra lor se aplicã operatori de recombinare (încrucišare), mutaøie, inversiune, etc. Sã admitem cã noua populaøie se obøine doar ca urmare a încrucišãrii ši mutaøiei. Atunci vom avea douã selecøii independente – o selecøie pentru încrucišare ši o selecøie pentru mutaøie. În realitate, cele douã selecøii nu acøioneazã strict asupra aceleiaši populaøii. Mai întâi se aplicã asupra populaøiei P(t) operatorii de selecøie ši de recombinare (încrucišare). Rezultatul este o populaøie intermediarã, asupra cãreia se aplicã operatorul de mutaøie.

Vom admite cã prin algoritmul genetic se dorešte maximizarea unei funcøii obiectiv J : U V . Acest lucru influenøeazã modul de selecøie. Uneori dorim însã aplicarea algoritmului genetic pentru o problemã de minim. În acest caz problema trebuie reformulatã ca o problemã de maxim.

2. SELECØIA

Scopul selecøiei este de a asigura mai multe šanse de reproducere celor mai performanøi indivizi dintr-o populaøie datã. Acøiunea operatorului de selecøie stabilešte indivizii din populaøia curentã ce vor contribui la constituirea generaøiei urmãtoare.

Pentru a realiza selecøia este necesarã introducerea unei mãsuri a calitãøii (performanøei, adecvãrii) indivizilor. Prin selecøie se urmãrešte maximizarea performanøei indivizilor. Cãutarea se concentreazã ašadar în regiunile spaøiului soluøiilor ce corespund adecvãrii maxime. Aceastã concentrare realizeazã exploatarea celor mai bune soluøii gãsite, ceea ce constituie sarcina selecøiei.

În continuare vom prezenta diferite mecanisme de selecøie, subliniind aveantajele ši limitele fiecãruia.

2.1. Selecøia proporøionalã

Existã mai muløi algoritmi de selecøie. Cel mai uzual tip de selecøie este selecøia proporøionalã. În acest caz, selecøia unui individ depinde de valoarea performanøei acestui individ.

Fie X muløimea tuturor cromozomilor posibili (pentru o problemã ši o codificare date), ši fie f : X R funcøia de evaluare (adecvare, performanøã).

Funcøia de adecvare f trebuie sã îndeplineascã cerinøele:

(i) f trebuie sã fie pozitivã:

.

(ii) f trebuie sã reflecte calitatea cromozomilor, în sensul optimizãrii funcøiei obiectiv.

Dacã f are ši valori negative, atunci efectuãm o scalare prin care valorile lui f se deplaseazã în domeniul pozitiv.

Selecøia se face asupra cromozomilor din populaøia curentã P(t). Admitem cã aceastã populaøie conøine n cromozomi:

Fie F performanøa totalã a populaøiei definitã ca suma performanøelor individuale:

În cazul selecøiei proporøionale, probabilitatea de selecøie a cromozomului xi este numãrul pi dat de:

Deoarece operatorul de selecøie se aplicã de n ori, valoarea medie a numãrului descendenøilor individului i este:

Rezultã cã avem:

Prin urmare mecanismul de selecøie asigurã în medie

copii ale cromozomului xi unde este performanøa medie a populaøiei.

Pentru a realiza selectarea lui xi cu probabilitatea pi (adicã o distribuøie de probabilitate uniformã) se poate utiliza o metodã de tip Monte Carlo. Se construiešte o ruletã împãrøitã în n sectoare. Fiecare sector corespunde unui cromozom. Dimensiunea sectorului i este proporøionalã cu probabilitatea pi de selecøie a cromozomului xi . Ruleta este rotitã de n ori. La fiecare rotire este selectat un cromozom. Cromozomul selectat este copiat în populaøia intermediarã.

Selecøia bazatã pe principiul ruletei funcøioneazã conform urmãtorului algoritm:

ALGORITMUL MONTE CARLO DE SELECØIE

(ALGORITMUL RULETEI)

Pentru fiecare cromozom xi , i = 1, 2, … , n , se calculeazã numãrul:

Pentru i = 1, 2, … , n executã:

Se genereazã aleator un numãr g în intervalul [0,1].

2.2 Regula de selecøie:

a) dacã 0 g q1 atunci este selectat primul cromozom (x1) .

dacã qi-1< g qi atunci este selectat cromozomul xi .

Observaøie.

Schema de selecøie prezentatã permite ca un cromozom sã fie selectat de mai multe ori. Ašadar, cei mai performanøi cromozomi vor avea mai multe copii în populaøia intermediarã deci mai muløi descendenøi.

Deši existã versiuni mai stabile ale algoritmului ruletei (Goldberg, 1989) în mod uzual se folosešte pentru selecøie varianta standard datã mai sus a acestui algoritm. În paragrafele urmãtoare vom indica diferite modalitãøi de ameliorare a selecøiei.

2.2. Scalarea

Mecanismul de selecøie proporøionalã este natural ši are avantaje care devin mai evidente în teoria schemelor. Selecøia proporøionalã are însã ši unele dezavantaje. Dacã populaøia este foarte neomogenã ši existã un individ a cãrui performanøã este mult superioarã mediei, acest individ va fi selectat de mai multe ori ši astfel el va constitui aproape exclusiv populaøia urmãtoare. În felul acesta, diversitatea populaøiei se pierde ši procesul de cãutare nu mai exploreazã ši alte regiuni ale spaøiului, ceea ce antreneazã anumite riscuri legate de convergenøa prematurã a procedurii de cãutare.

Dacã existã diferenøe mici între performanøele indivizilor unei populaøii, atunci probabilitãøile de selecøie devin aproximativ egale. Rezultã cã nu va mai avea loc o selecøie veritabilã (selecøia stagneazã). Selecøia obøinutã se va comporta mai degrabã ca o alegere pur aleatoare. Uniformizarea performanøelor antreneazã deci dispariøia selecøiei.

Cele douã situaøii extreme: dominanøa unui individ sau a unui numãr mic de indivizi performanøi ši selecøia cvasi-aleatoare în care performanøa indivizilor joacã un rol neglijabil, trebuie deopotrivã evitate.

Vom considera douã soluøii pentru ameliorarea selecøiei: una din ele constã în adoptarea unei transformãri (schimbare de scalã) a funcøiei de performanøã, astfel încât valoarea minimã ši cea maximã a funcøiei transformate sã atingã valorile dorite. Se poate alege o transformare liniarã sau una exponenøialã. Schimbarea de scalã poate fi una staticã (aceeaši pentru toate generaøiile) sau una dinamicã. În ultimul caz, scalarea funcøiei criteriu este repusã în discuøie cu fiecare nouã generaøie (Baker, 1985). Prin schimbarea de scalã, diferenøa între valorile funcøiei de performanøã se poate modifica în sensul dorit.

2.3. Selecøia bazatã pe ordonare

O altã idee de selecøie constã în a calcula (pentru fiecare generaøie) valorile funcøiei de adecvare ši de a aranja indivizii în ordinea descrescãtoare a acestor valori. Se va atribui fiecãrui individ i o probabilitate de selecøie pi ce depinde de rangul sãu în širul stabilit. În acest scop se utilizeazã presiunea de selecøie. Presiunea de selecøie se definešte ca fiind numãrul mediu de descendenøi ai celui mai performant individ. Presiunea de selecøie este o constantã a metodei. De regulã presiunea de selecøie se exprimã printr-un numãr q din intervalul [0, 1].

Fie n numãrul de indivizi ai populaøiei ši ri rangul individului i. Probabilitatea de selecøie pentru individul i se definešte ca fiind:

unde q este presiunea de selecøie.

Aceastã strategie de selecøie se numešte selecøia prin ordonare. Sã observãm cã probabilitãøile de selecøie depind acum doar de poziøia relativã a cromozomilor ši nu de valorile funcøiei de adecvare. În acest fel se evitã inconvenientele selecøie proporøionale. Probabilitatea de selecøie a primului cromozom, obøinutã punând r1=1 , este:

Pentru individul ultim clasat, rn= n , avem probabilitatea de selecøie:

Numãrul mediu de selectãri ale individului i este npi .

Având în vedere cã

rezultã cã cel mai performant individ va fi selectat, în medie, de q ori.

Pentru ultimul cromozom avem

Rezultã cã cel mai puøin performant individ va avea în medie (2-q) selectãri, deci un numãr mediu de (2-q) descendenøi.

Exemplu.

Sã considerãm o populaøie formatã doar din doi indivizi. Dacã alegem q=2 atunci selecøia prin ordonare ne dã p1=1 ši p2= 0 . Rezultã cã pentru populaøia urmãtoare va fi selectat doar primul cromozom. Dacã q=1 atunci obøinem p1= p2=1/2 , adicã ambii cromozomi vor fi selectaøi în urmãtoarea populaøie.

Exemplul precedent ne permite sã stabilim o legãturã între doi factori extrem de importanøi în cãutarea geneticã: diversitatea populaøiei ši presiunea de selecøie. Crešterea presiunii de selecøie orienteazã cãutarea asupra celor mai performanøi indivizi, determinând micšorarea diversitãøii populaøiei. Prin urmare, o presiune de selecøie ridicatã poate fi asociatã cu o convergenøã prematurã a cãutãrii. O presiune de selecøie scãzutã poate duce la uniformizarea selecøiei, cãutarea devenind puøin eficientã. Trebuie menøinut un echilibru între diversitatea populaøiei ši presiunea de selecøie. Putem interpreta aceastã cerinøã ca exprimând o altã faøetã a ideii de echilibru explorare-exploatare.

Crešterea presiunii de selecøie focalizeazã cãutarea asupra celor mai performanøi indivizi. Aceastã exploatare a celor mai bune soluøii gãsite este însoøitã de o pierdere a diversitãøii genetice, ceea ce antreneazã reducerea capacitãøii de exploatare a spaøiului stãrilor. Reducerea presiunii de selecøie crešte capacitãøile de exploatare, deoarece în procesul de cãutare vor fi incluši mai muløi cromozomi.

Mai sus am considerat un caz particular în care presiunea de selecøie se exprimã printr-un coeficient ce apare explict în probabilitatea de selecøie. Acest concept este însã mai larg ši include diferite mecanisme de selecøie.

Orice funcøie descrescãtoare f : N R , poate fi utilizatã pentru o selecøie bazatã pe ordonare. De exemplu, alegând un parametru h în intervalul (0,1) putem defini o probabilitate de selecøie indusã de funcøia neliniarã:

În acest caz vom avea:

2.4. Alte mecanisme de selecøie

Ar putea fi interesant ca la fiecare generaøie cel mai bun individ al unei populaøii sã fie pãstrat. O astfel de strategie se numešte elitistã. Pare natural ca cel mai bun individ al unei generaøii sã fie selectat ca un candidat pentru urmãtoarea fazã (cea de recombinare).

O altã idee este ca la fiecare generaøie sã fie înlocuitã doar o parte restrânsã a populaøiei. Fie r un numãr ce definešte rata de înlocuire. În acest caz se aleg rn indivizi ai populaøiei. Cei rn descendenøi ai indivizilor selectaøi îi vor înlocui pe pãrinøii lor în noua populaøie. O altã posibilitate este ca descendenøii sã înlocuiascã aløi indivizi din populaøie ši anume pe cei care sunt cei mai apropiaøi de ei. Dacã cromozomii sunt codificaøi binar, apropierea cromozomilor poate fi calculatã utilizând distanøa Hamming.

Unele strategii de selecøie sunt generaøionale, în sensul cã muløimea pãrinøilor este fixatã pânã când noua generaøie este completã. Alte strategii permit ca descendenøii sã-ši înlocuiascã pãrinøii imediat ce noii cromozomi au fost generaøi.

Din alt punct de vedere strategiile de selecøie pot fi anihilatoare sau conservatoare. O selecøie conservatoare, spre deosebire de una anihilatoare, presupune cã fiecare individ are o probabilitate de selecøie diferitã de zero. În anumite strategii anihilatoare, pentru a preveni convergenøa prematurã, se renunøã la selecøionarea celor mai buni indivizi ai populaøiei.

Metodele de selecøie pot fi dinamice sau statice. O selecøie staticã cere ca probabilitãøile de selecøie sã rãmânã constante de la o generaøie la alta (selecøia prin ordonare, de exemplu). O selecøie dinamicã nu are o astfel de cerinøã.

2.4.1. O selecøie nestandard

Michalewicz (1992) a propus un mecanism de selecøie ce alege în mod independent r cromozomi (nu neapãrat distincøi) pentru reproducere ši r cromozomi distincøi pentru štergere. Aceste selecøii se realizeazã în funcøie de performanøele cromozomilor. Un individ cu o performanøã peste medie are o probabiliatate mai mare de a fi selectat pentru recombinare. Cromozomii cu o performanøã mai micã decât media au o probabilitate mai mare de a fi selectaøi pentru štergere.

Noua populatie P(t+1) este formatã din (n-r) cromozomi din vechea populaøie (toøi din P(t) cu excepøia celor selectaøi pentru štergere) ši r descendenøi ai celor r pãrinøi selectaøi. Sã notãm cã fiecare cromozom selectat pentru modificare este utilizabil doar pentru o singurã operaøie geneticã (mutaøie, încrucišare, inversiune, etc.). Strategia prezentatã este o metodã dinamicã, generaøionalã, conservatoare ši elitistã.

În urma selecøiei apar trei populaøii intermediare:

P1 : conøine cei r pãrinøi

P2 : conøine r cromozomi ce vor fi šterši

P3 : conøine (n-r) cromozomi care vor fi copiaøi în P(t+1)

Populaøiile P1 ši P3 nu sunt neapãrat disjuncte. Este posibil ca în populaøia P(t+1) sã se gãseascã atât un cromozom cât ši descendenøii lui. Un cromozom având o performanøã peste medie poate fi selectat atât în P1 cât ši în P3. În felul acesta, unul sau mai muløi descendenøi ai cromozomului respectiv vor intra în P(t+1). Dacã se utilizeazã trei operatori (mutaøie, încrucišare, inversiune), atunci asupra unei submuløimi din P1 se va aplica încrucišarea, asupra unei alte submuløimi se va aplica mutaøia ši asupra celorlaløi cromozomi din P1 se va aplica operatorul de inversiune.

Observaøii:

(i) Strategia de mai sus este deosebitã de cea utilizatã de algoritmul genetic standard.

(ii) În cazul strategiei nestandard considerate, operatorul de mutaøie se aplicã unui cromozom întreg ši nu doar unei singure gene, ca în cazul mutaøiei clasice.

2.4.2. Probleme multimodale. Niša ecologicã

Problema optimelor multiple

Multe probleme reale admit soluøii multiple, care pot fi optimale sau aproape optimale. În anumite situaøii suntem interesaøi nu doar de gãsirea optimului global al unei probleme, ci ši de muløimea soluøiilor acceptabile. Cunoašterea soluøiilor optime multiple ale unei probleme ne conferã o anumitã flexibilitate în alegerea dintre soluøii alternative egal de bune, atunci când acest lucru este necesar.

Întrebarea este cum putem face ca într-o populaøie sã coexiste o muløime de soluøii optimale. Acest lucru ne se realizeazã în mod automat deoarece populaøia are tendinøa de a converge spre un singur punct de optim (chiar dacã optimul global nu este unic).

Dacã existã un optim global ši mai multe optime locale populaøia va evolua spre zona optimului global. Nu vor exista subpopulaøii care, la convergenøã, sã migreze spre zonele corespunzãtoare optimelor locale.

Urmeazã cã pentru detectarea mai multor puncte de optim trebuie sã înzestrãm algoritmul genetic cu un mecanism suplimentar care sã favorizeze apariøia unor subpopulaøii corespunzãtoare diferitelor puncte de optim. O subpopulaøie (ce corespunde unei specii) tinde sã ocupe o anumitã zonã a spaøiului de cãutare. Se contureazã astfel o analogie cu conceptul biologic de nišã ecologicã.

Discuøia de mai sus sugereazã cã pentru a obøine soluøii optime simultane, indivizii unei populaøii trebuie grupaøi în niše ecologice. Indivizii unei niše vor împãrøi resursele acesteia. Astfel se exploateazã analogia cu nišele multiple existente în naturã (oameni ši animale, de exemplu) unde resursele nišei (hranã ši pãmânt, de exemplu) sunt împãrøite între populaøiile ce ocupã niša. Dacã niša e ocupatã de o singurã populaøie resursele sunt împãrøite între indivizii acestei populaøii.

Funcøia de partajare

Într-un algoritm genetic faptul cã indivizii unei niše trebuie sã împartã resursele acesteia se traduce printr-o modificare a funcøiei de adecvare (potrivire). În acest scop se introduce o funcøie de partajare (Goldberg, Richardson (1987)) ce calculeazã gradul în care trebuie sã se facã împãrøirea resurselor între doi indivizi ai populaøiei. Ideea este cã indivizii apropiaøi vor trebui sã împartã în mare mãsurã resursele deoarece ei aparøin aceleiaši vecinãtãøi (niše). Rezultã cã indivizii apropiaøi vor avea un grad de partajare mare. Reciproc, indivizii îndepãrtaøi vor avea un grad de partajare mic.

Valorile funcøiei de partajare vor depinde de distanøa între indivizi. Cu cât distanøa între indivizi este mai mare, cu atât valoarea corespunzãtoare a funcøiei de partajare trebuie sã fie mai micã. Rezultã cã funcøia de partajare trebuie sã fie descrescãtoare în raport cu distanøa între cromozomi.

Pentru a defini o funcøie de partajare considerãm o distanøã d peste muløimea cromozomilor. Pentru o codificare binarã a cromozomilor, d poate fi distanøa Hamming (numãrul poziøiilor în care cei doi cromozomi diferã). În cazul în care genele se reprezintã prin simboluri ale unui alfabet finit poate fi utilizatã distanøa Levenstein. Definim distanøa Levenstein dintre doi vectori (širuri, cromozomi) ca fiind numãrul de štergeri, inserãri (adãugiri) sau modificãri efectuate asupra elementelor unui vector pentru a-l face identic cu celãlalt. Distanøa dintre cromozomi poate fi ši norma diferenøei între punctele din spaøiul stãrilor corespunzãtoare celor doi cromozomi.

Putem defini funcøia de partajare ca fiind o aplicaøie s : R [0,1]. Dacã doi cromozomi sunt identici, atunci gradul de partajare corespunzãtor este maxim. Gradul de partajare tinde la zero cu crešterea la infinit a distanøei. Rezultã ašadar cã funcøia de partajare trebuie sã satisfacã urmãtoarele axiome:

(i) s este descrescãtoare ,

(ii)

(iii)

Observaøie.

s(d(xi , xj )) reprezintã gradul de partajare dintre xi ši xj. Avem s(d(xi , xi ))=1 ši indivizii apropiaøi de xi vor avea un grad mare de partajare cu xi. Indivizii îndepãrtaøi vor avea un grad de partajare mic.

Exemple.

1. O funcøie s care satisface axiomele unei funcøii de partajare este

unde k > 0 este o constantã realã.

În acest caz gradul de partajare între indivizii xi ši xj este

2. O funcøie de partajare simplã ši intuitivã este

3. O abordare mai realistã se poate obøine admiøând cã maximul distanøei pentru care valoarea funcøiei de partajare este zero este un parametru al algoritmului. Fie a acest parametru. În acest caz funcøia criteriu poate avea forma

Funcøia de evaluare partajatã

Pentru fiecare individ xi din populaøie se calculeazã mãrimea mi având expresia:

Interpretãm mi drept valoarea nišei corespunzãtoare lui xi. O altã posibilitate este ca suma ce intervine în expresia lui mi sã nu se ia în raport cu întreaga populaøie, ci doar în raport cu o subpopulaøie. Semnificaøia lui mi este ši de partajare totalã a lui xi.

Funcøia de evaluare f se va modifica folosind cantitatea mi. Rezultã o funcøie de evaluare (adecvare) partajatã f a cãrei expresie este

În mecanismul de selecøie adecvarea individului xi va fi f(xi). Utilizarea funcøiei de evaluare modificate f permite coexistenøa soluøiilor optimale (locale ši globale) multiple. Acest lucru se explicã în felul urmãtor. Sã admitem cã existã muløi indivizi în vecinãtatea lui lui xi. Pentru toøi indivizii din vecinãtatea (niša) respectivã utilizarea funcøiei f va determina o descreštere a valorii de adecvare. Aceastã descreštere reciprocã a gradului de adecvare reprezintã un mecanism ce limiteazã dezvoltarea necontrolatã a populaøiei ce ocupã niša respectivã.

Putem identifica o specie cu o zonã de concentrare a indivizilor. Mecanismul propus limiteazã dezvoltarea speciilor existente, permiøând ši apariøia altor regiuni de concentrare. Existã astfel šansa ca populaøia sã evolueze spre regiuni corespunzând tuturor punctelor de optim.

Sã încercãm acum sã vedem cum mecanismul propus favorizeazã menøinerea punctelor de optim ce au puøini reprezentanøi în populaøie. Sã considerãm cã într-o generaøie existã foarte puøini indivizi corespunzând unei anumite soluøii optimale. Fie S muløimea acestor indivizi. Pentru o valoare potrivitã a parametrului a distanøele între cromozomii muløimii S vor fi mai mici decât a. Rezultã cã, de regulã, este satisfãcutã inegalitatea:

Distanøele la indivizii care nu sunt în S vor fi, în general, mai mari decât valoarea parametrului a. Ašadar, de regulã, vom avea

ši deci

În valoarea mi a nišei pentru cromozomul xi din S contribuøiile nenule vor fi date, în general, de indivizii muløimii S. Dar acešti indivizi sunt puøini. Rezultã cã valorile mi pentru indivizii din S vor fi mici în comparaøie cu valorile corespunzãtoare altor puncte de optim. Valorile funcøiei de adecvare partajatã f vor fi mai mari pentru indivizii din S. Vor exista deci mai muløi indivizi corespunzând acestui optim în noua generaøie. Ašadar optimul pe cale de dispariøie (cu foarte puøini reprezentanøi într-o populaøie) va fi întâlnit în generaøia urmãtoare prin utilizarea funcøiei de evaluare partajate. Acest mecanism simplu explicã modul în care partajarea favorizeazã menøinerea în populaøie a reprezentanøilor diferitelor puncte de optim.

2.4.3. Selecøia prin concurs

Selecøia prin concurs sau selecøia turnir (tournament selection) se bazeazã pe compararea directã a câte doi cromozomi ši selectarea celui mai performant. Operaøiile implicate în acest tip de selecøie sunt urmãtoarele:

(i) se aleg în mod aleator doi cromozomi .

(ii) se calculeazã adecvãrile cromozomilor selectaøi .

(iii) cromozomul mai performant este selectat (copiat în populaøia inter-mediarã asupra cãreia vor acøiona operatorii de recombinare ši modificare) .

Pentru a genera o populaøie intermediarã formatã din n cromozomi (copii nu neapãrat distincte ale cromozomilor de la momentul t) este necesar ca mecanismul descris sã fie aplicat de n ori.

3. ÎNCRUCIŠAREA

Selecøia este folositã pentru a concentra cãutarea asupra celor mai promiøãtoare regiuni ale spaøiului stãrilor. Selecøia singurã nu poate însã introduce în populaøie indivizi care nu apar în populaøia intermediarã. În acest scop se folosesc aløi operatori, care perturbând indivizii existenøi asigurã explorarea zonelor învecinate. Dintre aceštia, cei mai folosiøi sunt operatorii de recombinare, mutaøie ši inversiune.

Operatorul de încrucišare (crossover operator) realizeazã recombinarea indivizilor selectaøi. Operatorul permite combinarea segmentelor (subširurilor) de cromozomi corespunzând pãrinøilor. Operatorul imitã încrucišarea intercromozomialã naturalã. De regulã se utilizeazã operatori de încrucišare de tipul (2,2), adicã din doi pãrinøi se obøin doi descendenøi.

Încrucišarea (recombinarea) realizeazã un schimb de informaøie între cromozomii-pãrinøi. Descendenøii obøinuøi prin recombinare vor avea caracteristici ale ambilor pãrinøi. Recombinarea are rolul de a face sã progreseze cãutarea, asigurând explorarea spaøiului stãrilor.

Datã fiind importanøa majorã a recombinãrii, au fost propuse numeroase variante de încrucišare. Vom indica în continuare cele mai utilizate variabile.

3.1. Încrucišarea cu un punct de tãieturã

Recombinarea materialului genetic a doi cromozomi se poate face în diferite moduri. John Holland (1975) a considerat un operator numit încrucišare cu un singur punct de tãieturã.

Fie r lungimea cromozomilor unei populaøii. Un punct de tãieturã este un numãr întreg k{1,2, …,r -1}. Numãrul k indicã poziøia din interiorul cromozomilor unde secvenøa cromozomialã se rupe pentru ca segmentele obøinute sã se recombine.

Considerãm doi cromozomi:

x = x1 x2 … xk xk+1 … xr

ši

y = y1 y2 … yk yk+1 … yr .

În urma recombinãrii se schimbã între cei doi cromozomi secvenøele aflate la dreapta punctului de tãieturã k. Cromozomii copii vor fi:

x’ = x1 x2 … xk yk+1 … yr

ši

y’ = y1 y2 … yk xk+1 … xr .

Exemplu.

Fie cromozomii:

x : x = 1 1 0 0 1

y : y = 1 0 1 1 0

În urma încrucišãrii cu punctul de tãieturã k = 2 rezultã succesorii:

x’: x’= 1 1 1 1 0

y’: y’= 1 0 0 0 1

Pentru o pereche datã de cromozomi alegerea punctului de tãieturã se face în mod aleator.

Fie X muløimea tuturor cromozomilor de lungime fixatã r. Notãm cu C operatorul de încrucišare, C : X X X X . Putem descrie acøiunea operatorului C considerând din nou doi cromozomi:

x = x1 x2 … xr

ši

y = y1 y2 … yr .

În acest caz avem:

C(x,y) = ( x’, y’ ) ,

unde:

x’ = x1 … xs ys+1 … yr

ši

y’ = y1 … ys xs+1 … xr .

iar s este un numãr aleator din muløimea {1, 2, … , r-1}. Numãrul s este ašadar o valoare a unei variabile aleatoare cu valori întregi uniform distribuite.

3.2. Încrucišarea cu mai multe puncte de tãieturã

Încrucišarea se poate face (la fel ca în naturã) utilizând unul sau mai multe puncte de tãieturã. În cazul utilizãrii mai multor puncte de tãieturã, segmentele obøinute se combinã dupã o regulã datã.

Considerãm încrucišarea cu douã puncte de tãieturã. Acest tip de încrucišare se face conform schemei de mai jos:

Din cromozomii:

x :

y :

vor rezulta doi descendenøi de tipul:

x’:

y’:

În cazul a trei puncte de tãieturã descendenøii vor fi de forma:

x’:

y’:

Pentru patru puncte de tãieturã se vor obøine descendenøi de forma:

x’:

y’:

Generalizarea pentru un numãr m, m< r, de puncte de tãieturã este evidentã.

Încrucišarea cu mai multe puncte de tãieturã este justificatã de faptul cã utilizând un singur punct de tãieturã, anumite combinaøii de gene nu pot fi realizate. Pentru a evidenøia acest aspect, considerãm o populaøie în care existã douã scheme performante:

S1 = ( 0 1 1 1 )

ši

S2 = ( 1 0 1 ) .

Încrucišând doi cromozomi care reprezintã aceste scheme nu vom putea obøine un cromozom care sã reprezinte schema:

S3 = ( 0 1 1 0 1 1 1 )

deoarece schema S1 ar fi distrusã. Schema S3 poate fi obøinutã prin încrucišare cu douã puncte de tãieturã. Pe de altã parte existã scheme care nu pot fi produse utilizând douã puncte de tãieturã. Rezultã necesitatea încrucišãrii cu trei ši mai multe puncte de tãieturã.

Un alt argument în favoarea considerãrii mai multor puncte de tãieturã este existenøa unei asimetrii între încrucišare ši mutaøie. Numãrul mediu de cromozomi care vor suferi o mutaøie crešte cu lungimea cromozomilor. Încrucišarea cu un punct de tãieturã nu este în nici un fel sensibilã la crešterea lungimii cromomului.

3.3. Alte variante ale operatorului de încrucišare

3.3.1. Încrucišarea adaptivã

Încrucišarea adaptivã a fost propusã de cãtre Shaffer ši Morishima (1987). Ideea este de a gãsi un mecanism prin care se øine seama de calitatea descendenøilor obøinuøi prin încrucišarea cu diferite puncte de tãieturã. Distribuøia punctelor de încrucišare se adapteazã în funcøie de rezultatele deja obøinute. Acest lucru se realizeazã înregistrând poziøiile punctelor de tãieturã din cromozom. Dacã un anumit punct de tãieturã a generat un descendent foarte slab, atunci acest punct de tãieturã nu va mai fi considerat (punctul moare). Dacã adecvarea descendentului este bunã, punctul de tãieturã respectiv este menøinut activ. În felul acesta punctele de tãieturã vor suferi un proces de evoluøie prin care ele se adapteazã la procese care deja au avut loc.

3.3.2. Încrucišarea segmentatã

Încrucišarea segmentatã (Eshelman, Caruna ši Shaffer, 1989) este o variantã a încrucišãrii cu mai multe puncte. Numãrul punctelor de tãieturã poate sã varieze. Se considerã o probabilitate s ca un segment sã aibã extremitatea dreaptã în oricare din poziøiile ce urmeazã începutului sãu. Numãrul mediu de segmente va fi sr. Pornind de la prima poziøie i=1 a cromozomului se genereazã un numãr aleator q[0,1] ši un numãr natural i < j r . Putem considera q ca fiind probabilitatea de acceptare a punctului de tãieturã j. În funcøie de relaøia existentã între s ši q punctul j este sau nu acceptat. În acest fel, numãrul de puncte de tãieturã poate sã varieze.

3.3.3. Încrucišarea cu amestec

Încrucišarea cu amestec (shuffle crossover) urmãrešte sã introducã o diversitate mai mare a descendenøilor. Încrucišarea cu amestec se aplicã împreunã cu oricare alt operator de încrucišare, fiind un mecanism suplimentar.

Procesul decurge dupã reøeta urmãtoare:

Se amestecã aleator genele celor doi cromozomi x ši y reøinând însã poziøia iniøialã a fiecãrei gene. Rezultã cromozomii x1 ši y1 .

Se încrucišeazã cei doi cromozomi x1 , y1 folosind un operator de încrucišare (cu mai multe puncte de tãieturã, de exemplu). Fie x2 ši y2 cei doi descendenøi obøinuøi.

Se realizeazã dezamestecarea (reordonarea) poziøiilor cromozomilor x2 ši y2. Rezultã descendenøii x3 ši y3.

3.3.4. Încrucišarea uniformã

Încrucišarea uniformã (Syswerda, 1989) nu folosešte puncte de tãieturã. Pentru fiecare genã a unui descendent un parametru global va indica probabilitatea ca aceastã genã sã provinã din primul (sau al doilea) pãrinte. Ašadar se presupune cã fiecare poziøie a unui descendent se calculeazã separat. Pentru fiecare poziøie a primului descendent se alege (cu o probabilitate datã p) pãrintele care va da valoarea poziøiei respective. Pentru al doilea descendent se ia valoarea poziøiei corespunzãtoare din celãlalt pãrinte. Putem considera ši un mecanism în care genele fiecãrui descendent se calculeazã în mod independent. Un pãrinte poate da astfel valoarea unei gene în ambii descendenøi.

Încrucišarea uniformã cu probabilitatea p genereazã un numãr mediu de pr puncte de tãieturã. Încrucišarea uniformã este o generalizare a încrucišãrii cu mai multe puncte de tãieturã. Avantajul încrucišãrii uniforme este cã poate sã combine caracteristici indiferent de poziøia lor relativã. Pentru anumite probleme, aceastã abilitate compenseazã neajunsul de a distruge blocurile constructive. S-a constatat cã în anumite cazuri încrucišarea uniformã are performanøe mai slabe decât încrucišarea cu douã puncte de tãieturã.

Eshelman, Caruna ši Shaffer (1989) au realizat un studiu experimental comparativ al diferiøilor operatori de încrucišare. Rezultatele nu au reušit sã stabileascã o ierarhie a operatorilor de încrucišare. S-a putut observa cã fiecare operator este mai potrivit pentru anumite clase de probleme, având rezultate slabe pentru altele. Rezultatele obøinute au mai arãtat cã operatorul de încrucišare cel mai slab este cel cu un singur punct de tãieturã.

Studii teoretice privind operatorii de recombinare au fost realizate de cãtre Spears ši De Jong (1991), Vose ši Liepins (1991).

3.4. Acøiunea operatorului de încrucišare

Operatorul de încrucišare se aplicã asupra indivizilor determinaøi prin operatorul de selecøie. Notãm cu pc probabilitatea de aplicare a încrucišãrii. Probabilitatea de încrucišare pc este unul dintre parametrii importanøi ai unui algoritm genetic.

Considerãm o populaøie intermediarã determinatã prin acøiunea operatorului de selecøie. Fie n dimensiunea acestei populaøii. Asupra indivizilor acestei populaøii se aplicã cu probabilitatea pc operatorul de încrucišare. Ašadar probabilitatea ca fiecare individ sã fie selectat pentru încrucišare (sã aibã descendenøi) este constantã ši egalã cu pc .

Considerãm o variabilã aleatoare n-dimensionalã care indicã pentru fiecare individ numãrul apariøiilor (copiilor) sale în muløimea cromozomilor selectaøi pentru încrucišare. Fie V aceastã variabilã aleatoare. Cum probabilitatea ca fiecare individ sã fie selectat (o singurã datã) pentru încrucišare este pc rezultã cã distribuøia variabilei aleatoare V este:

Valoarea medie a variabilei V este:

Rezultã cã numãrul mediu al cromozomilor care vor realiza încrucišarea este npc .

Pentru a realiza o selecøie uniformã cu probabilitatea pc pentru fiecare cromozom din populaøia intermediarã se genereazã aleator un numãr real q[0,1]. Dacã q< pc, atunci cromozomul respectiv va fi reøinut pentru încrucišare.

Considerãm populaøia P(t) având n cromozomi. Operatorul de selecøie va genera o populaøie intermediarã P1 conøinând tot n cromozomi. Reamintim cã selecøia nu introduce noi cromozomi (noi soluøii potenøiale) ci doar copiazã unii cromozomi în populaøia intermediarã. În general nu toøi cromozomii generaøiei P(t) vor fi copiaøi în P1. Este posibil ca unii cromozomi sã aparã de mai multe ori în populaøia intermediarã.

Prin operatorul de încrucišare se introduc în populaøie noi cromozomi. Acest lucru se realizeazã dupã urmãtoarea schemã:

ALGORITMUL DE ÎNCRUCIŠARE

P1. Pentru fiecare cromozom din populaøia intermediarã P1 se executã pašii P1.1. ši P1.2.

P1.1. Se genereazã un numãr aleator q în intervalul [0,1]. Generarea urmeazã o distribuøie uniformã în intervalul considerat.

P1.2. Dacã q< pc , unde pc este probabilitatea de încrucišare, cromozomul respectiv este reøinut pentru încrucišare. În caz contrar acest cromozom nu participã la încrucišare.

P2. Fie m numãrul cromozomilor reøinuøi la pasul P1. Dacã numãrul m este par, atunci cu cromozomii selectaøi se formeazã m2 perechi. Perechile se formeazã în mod aleator.

Dacã m este impar, atunci fie se šterge un cromozom selectat, fie se adaugã unul nou dintre cei existenøi în populaøia intermediarã.

Se opteazã pentru adãugare sau štergere în mod aleator, prin generarea unui numãr aleator suplimentar.

P3. Asupra perechilor formate la pasul P2. se aplicã încrucišarea. În acest scop se executã pašii urmãtori:

P3.1. Pentru fiecare pereche se genereazã aleator un numãr întreg k, 1 k< r, unde r este lungimea cromozomilor.

Numãrul k indicã punctul de tãieturã. Dacã se dorešte încrucišarea cu t 2 puncte de tãieturã, se genereazã aleator numerele k1, k2 ,…, kt. Aceste numere vor indica punctele de tãieturã.

Se executã încrucišarea perechii curente folosind punctul de tãieturã gãsit (sau punctele gãsite).

P3.2. Descendenøii obøinuøi la pasul P3.1. devin membri ai populaøiei P(t+1).

P3.3. Se šterg din P1 pãrinøii cromozomilor nou obøinuøi la pasul P3.1.

P3.4. Se adaugã la populaøia P(t+1) cromozomii încã rãmaši în P1.

3.5. Supravieøuirea

Orice algoritm genetic trebuie sã precizeze în ce mãsurã indivizii generaøiei P(t) se regãsesc în generaøia P(t+1) (adicã supravieøuiesc nemodificaøi). Trebuie ašadar sã indicãm în ce mãsurã indivizii supravieøuiesc de la o generaøie la alta.

În mod standard se considerã cã generaøia P(t+1) va fi formatã din cromozomii nou obøinuøi plus acei cromozomi ai populaøiei intermediare care nu au fost încrucišaøi. Numãrul de indivizi la fiecare generaøie rãmâne astfel constant ši egal cu n.

Altã posibilitate este de a copia nemodificaøi în P(t+1) un numãr fixat de indivizi din P(t). Indivizii copiaøi vor fi cei mai buni din generaøia P(t). Indivizii astfel copiaøi vor putea participa ši la selecøia pentru recombinare ši mutaøie.

3.6. Probabilitatea de încrucišare

Probabilitatea de încrucišare are, de regulã, valori de ordinul 10-1 . Stabilirea valorii parametrului pc depinde de problema curentã. Este rezonabil sã admitem cã, de regulã, valorile probabilitãøii de încrucišare se situeazã în domeniul [0.2 , 0.95]. Dacã avem, de exemplu, pc= 0.3 înseamnã cã 30% din indivizii populaøiei vor suferii încrucišarea.

3.7. Consideraøii generale

Nu existã o teorie ši nici euristici convingãtoare pentru a justifica utilizarea unui operator de încrucišare având un singur punct de tãieturã sau mai multe. Alegerea numãrului de puncte de tãieturã se face pentru fiecare problemã în parte ši se bazeazã pe rezultatele obøinute în legãturã cu acea problemã.

Operatorii de încrucišare, indiferent de forma lor, au câteva caracteristici care îi fac extrem de utili în procesul de cãutare. Discuøia de mai jos evidenøiazã rolul încrucišãrii în cãutarea ši optimizarea geneticã.

(i) Prin încrucišare se pot obøine descendenøi total diferiøi de pãrinøii lor. Rezultã cã operatorii de încrucišare sunt, într-un grad înalt, responsabili pentru mãrirea diversitãøii într-o populaøie datã.

(ii) Operatorul de încrucišare este o componentã extrem de importantã a unui algoritm genetic. Dacã eliminãm dintr-un algoritm genetic operatorul de încrucišare, atunci procedura rezultatã pierde, în bunã mãsurã, caracterul de algoritm genetic. Este, de regulã, admis cã folosirea unui operator de încrucišare distinge operatorii genetici de ceilaløi algoritmi de cãutare ši optimizare.

(iii) Într-un algoritm genetic, renunøarea la încrucišare induce, de regulã, o descreštere a performanøei.

(iv) Încrucišarea este consideratã o caracteristicã esenøialã a algoritmilor genetici, responsabilã pentru accelerarea în mod semnificativ a procesului de cãutare.

(v) Mutaøia, celãlalt operator de recombinare important, este mai degrabã o metodã pentru a reintroduce diversitatea într-o populaøie în care, din întâmplare, o poziøie are aceeaši valoare în toøi indivizii.

(vi) Componenta de cãutare de mare performanøã este încrucišarea. Ea acøioneazã prin combinarea rapidã a ceea ce este bun în populaøia iniøialã ši prin proliferarea celor mai promiøãtoare blocuri constructive, în conformitate cu teorema schemelor.

(vii) Unele rezultate experimentale evidenøiazã faptul cã importanøa probabilitãøii de încrucišare este mai micã decât ne-am putea aštepta.

4. MUTAØIA

Mutaøia este cel de-al doilea operator genetic, în ordinea importanøei ši folosirii sale. Efectul acestui operator este schimbarea valorii unei singure poziøii (gene) dintr-un cromozom. Prin mutaøie se introduc în populaøie indivizi care nu ar putea fi generaøi prin alte mecanisme.

Considerãm o reprezentare binarã a cromozomilor. În acest caz, efectul operatorului de mutaøie este complementarea unei singure poziøii (bit) din cromozomul asupra cãruia se aplicã. Mutaøia este un operator de tip probabilist. Probabilitatea de aplicare a operatorului se numešte probabilitate de mutaøie ši se noteazã cu pm . Probabilitatea de mutaøie reprezintã un parametru al algoritmului genetic. Valoarea sa este micã (de ordinul 10-3).

Operatorul de mutaøie acøioneazã asupra biøilor, indiferent de poziøia lor în cromozom. Fiecare bit al populaøiei poate suferi o mutaøie. Într-un cromozom pot exista ašadar mai multe poziøii ce suferã o mutaøie.

Considerãm o populaøie de n indivizi (cromozomi), fiecare având lungimea r. Fiecare poziøie (bit) are aceeaši probabilitate pm de a suferi mutaøia. Cum numãrul total de biøi în populaøie este nr , rezultã cã numãrul mediu de biøi ce vor suferi o mutaøie este:

Existã diferite variante ale operatorului de mutaøie. Vom considera mai jos unele dintre aceste variante. În forma tare a operatorului poziøia selectatã pentru mutaøie se schimbã în mod automat. În forma slabã se considerã o anumitã probabilitate de schimbare a poziøiei selectate.

Operatorul de mutaøie acøioneazã dupã urmãtorul algoritm:

ALGORITMUL DE MUTAØIE

Varianta 1 (Forma tare a operatorului de mutaøie)

P1. Pentru fiecare cromozom al populaøiei curente ši pentru fiecare poziøie a cromozomului se executã:

P1.1. Se genereazã un numãr aleator q în intervalul [0,1].

P1.2. Dacã q< pm atunci se executã mutaøia poziøiei respective, schimbând 0 în 1 ši 1 în 0.

În caz contrar (q pm), poziøia respectivã nu se schimbã.

Varianta 2 (Forma slabã a operatorului de mutaøie)

Existã implementãri în care condiøia q< pm nu atrage automat schimbarea valorii poziøiei considerate. Putem considera un mecanism în care noua valoare a poziøiei ce îndeplinešte condiøia de mutaøie se genereazã în mod aleator. Valoarea obøinutã poate sã coincidã cu vechea valoare ši în acest caz nu are loc nici o schimbare efectivã. În acest caz pasul P1.2. din varianta 1 se înlocuiešte cu pasul P’1.2. :

P’1.2. Dacã q< pm atunci se alege aleator una din valorile 0 sau 1. Se atribuie poziøiei curente valoarea astfel selectatã.

Dacã q pm atunci poziøia curentã nu se schimbã.

Varianta 3

În aceastã variantã, fiecare aplicare a operatorului afecteazã o genã (sau eventual mai multe) dintr-un singur cromozom (care a fost selectat pentru mutaøie).

Varianta 4 (mutaøia neuniformã)

Se poate considera o probabilitate de mutaøie care depinde de generaøie. La primele generaøii, probabilitatea de mutaøie poate fi mare, ea descrescând cu indicele t al generaøiei. În felul acesta se asigurã schimbãri mari în primele etape ale cãutãrii. Aceastã stategie asigurã progresul cãutãrii în faza iniøialã. Descrešterea probabilitãøii de mutaøie în fazele avansate ale cãutãrii genereazã schimbãri mai mici, ceea ce asigurã o cãutare localã mai eficientã. Cu alte cuvinte, în vecinãtatea punctului de optim cãutarea devine mai finã. Acesta este un exemplu de felul în care prin acøiunea unui singur operator explorarea din fazele iniøiale este înlocuitã cu exploatarea localã a soluøiilor gãsite, spre fazele finale ale cãutãrii.

Putem realiza mecanismul propus admiøând cã la pasul t probabilitatea de mutaøie are forma

unde pm este probabilitatea de mutaøie la prima generaøie, iar 1 este un parametru real. Cu cât valoarea lui este mai mare, cu atât mai repede descrešte probabilitatea de mutaøie.

Operatorul descris poate fi considerat un operator de mutaøie neuniform, din cauza dependenøei sale de vârsta populaøiei.

Varianta 5 (mutaøia neuniformã adaptivã)

Modalitatea de codificare binarã induce o asimetrie în acøiunea operatorului de mutaøie. Dacã o genã este poziøionatã la începutul unui cromozom, atunci schimbarea ei provoacã o modificare semnificativã a cromozomului. Elementele din spaøiul stãrilor ce corespund celor doi cromozomi (cel iniøial ši cel ce conøine gena schimbatã) vor fi foarte diferite. Mutaøia genelor aflate spre sfâršitul cromozomului va induce o schimbare mult mai micã.

Fãcând ca probabilitatea de mutaøie sã depindã de poziøia în cromozom ši de generaøie, am putea realiza o cãutare globalã în primele etape ši o cãutare localã în ultima parte a procesului iterativ. Pentru aceasta este suficient sã facem ca pe mãsurã ce indicele generaøiei crešte probabilitatea de mutaøie a primelor gene din fiecare cromozom sã descreascã, iar cea a ultimelor gene sã creascã. Sã remarcãm cã acest operator conøine douã tipuri de neuniformitate, generate de dependenøa de vârsta populaøiei ši de rangul (poziøia) genei în cromozom.

5. ÎNCRUCIŠARE VERSUS MUTAØIE

Într-un algoritm genetic, operatorului de încrucišare îi revine rolul cãutãrii globale în spaøiul problemei. Mišcarea în spaøiul de cãutare se realizeazã prin combinarea blocurilor constructive existente în populaøie.

Operatorul de mutaøie are rolul de a evita o pierdere ireparabilã a diversitãøii. Sã presupunem cã toøi indivizii unei populaøii au pentru prima genã aceeaši valoare. Aceastã valoare nu s-ar putea schimba pentru nici un individ dacã nu ar exista operatorul de mutaøie.

Operatorul de mutaøie previne ašadar o convergenøã prematurã, generând o diversitate suplimentarã a indivizilor unei populaøii. Aceastã diversitate permite explorarea unor zone mai largi din spaøiul de cãutare.

Unele rezultate experimentale au subliniat importanøa operatorului de mutaøie. Astfel, rezultatele obøinute de Shaffer, Caruana, Eshelman ši Das (1989), par sã indice o perspectivã ušor modificatã asupra raportului dintre operatorii de încrucišare ši mutaøie. Aceste rezultate sugereazã cã:

() Rolul mutaøiei este mai imporatnt decât era admis de cãtre speciališti;

() Strategiile de cãutare bazate doar pe selecøie ši mutaøie ar putea fi proceduri de cãutare puternice, chiar fãrã considerarea încrucišãrii. Acest lucru este evident în cazul strategiilor evoluøioniste ši programãrii evolutive.

6. OPERATORUL DE INVERSIUNE

Operatorii genetici consideraøi iniøial (Holland, 1975) au fost încrucišarea, mutaøia ši inversiunea. Implementãrile curente ale algoritmilor genetici folosesc cu precãdere primii doi operatori ši foarte rar pe cel de-al treilea.

Operatorul de inversiune acøioneazã asupra unui singur cromozom. El inverseazã valorile a douã poziøii ale cromozomului. Cele douã poziøii se aleg aleator. Operatorul de inversiune a fost inspirat de procese biologice.

S-a constatat cã operatorul de inversiune este de puøin folos în practica algoritmilor genetici. Se admite cã acest operator ar fi util dacã am avea cromozomi cu cel puøin un ordin de mãrime mai lungi decât se folosesc în implementãrile curente.

7. SELECØIE VERSUS RECOMBINARE, MUTAØIE ŠI INVERSIUNE

Echilibrul explorare – exploatare se realizeazã, în cazul algoritmilor genetici, prin intermediul operatorilor utilizaøi. Selecøia realizeazã exploatarea populaøiei (soluøiilor) curente fãcând multe copii ale indivizilor performanøi. Încrucišarea, mutaøia ši inversiunea sunt responsabile pentru explorarea spaøiului problemei în cãutarea unor soluøii tot mai bune. Succesul unui algoritm genetic depinde ašadar de realizarea unui echilibru între selecøie ši ceilaløi operatori genetici. Dacã indivizii performanøi au prea multe copii în populaøia intermediarã (prea multe selecøii) atunci diversitatea populaøiei intermediare se reduce. Acest lucru antreneazã o reducere a zonelor în care se poate extinde cãutarea folosind operatorii de încrucišare, mutaøie ši inversiune. Rezultã cã operatorii genetici trebuie sã fie astfel proiectaøi încât sã fie asigurat echilibrul explorare – exploatare. Pentru anumite clase de probleme s-au stabilit relaøii (Goldberg, Deb, Theirens, 1991, Golberg, Theirens, 1993) între probabilitatea de încrucišare pc ši presiunea de selecøie, relaøii care garanteazã pãstrarea echilibrului.

8. ALGORITMUL GENETIC FUNDAMENTAL

Suntem acum în mãsurã sã indicãm mai exact felul în care acøioneazã un algoritm genetic. Operatorii genetici consideraøi sunt încrucišarea ši mutaøia.

Notãm P(0) o populaøie iniøialã formatã din n indivizi (cromozomi) de lungime r . Varianta de bazã a unui algoritm genetic cu încrucišare ši mutaøie este datã mai jos:

ALGORITMUL GENETIC FUNDAMENTAL

(CU ÎNCRUCIŠARE ŠI MUTAØIE)

P1. Se alege un mecanism de selecøie ši, eventual, un mecanism de scalare .

Se iniøializeazã populaøia P(0) .

P2. Se pune t := 0 .

P3. Se evalueazã cromozomii populaøiei P(t)

Se reøine cel mai performant individ din P(t) .

P4. Se aplicã operatorul de selecøie de n ori. Cromozomii selectaøi formeazã o populaøie intermediarã P1 (având tot n membri). În P1, unii cromozomi din P(t) vor avea mai multe copii (vor apare de mai multe ori), iar aløii niciodatã .

P5. Asupra cromozomilor din populaøia intermediarã P1 se aplicã operatorul de încrucišare .

Cromozomii nou obøinuøi formeazã o populaøie P2 .

Se šterg din populaøia intermediarã P1 pãrinøii cromozomilor obøinuøi prin încrucišare .

Cromozomii rãmaši în P1 devin ši ei membri ai populaøiei P2 .

P6. Asupra populaøiei P2 se aplicã operatorul de mutaøie. Rezultatul este noua generaøie P(t+1) .

P7. Se pune t := t + 1 .

Dacã t N , unde N este numãrul maxim de generaøii, atunci se merge la pasul P3 .

În caz contrar STOP .

Acest algoritm poate fi ušor modificat pentru a include ši operatorul de inversiune sau operatori de alt tip.

9. BIBLIOGRAFIE

Baker, J. E. (1985), Adaptive selection methods for genetic algorithm, Proceedings First International Conference on Genetic Algorithms, 101 – 111 .

Dumitrescu, D. , Hariton, C. (1996), Reøele Neuronale, Teora, Bucurešti .

Eshelman, L. J. , Caruana, R. A. , Schaffer, J. D. (1989), Biases in the crossover landscape, in Proceedings of the Third International Conference on Genetic Algorithms, Schaffer, J., editor, Morgan Kaufmann Publishers, Los Altos, CA, 10 – 19 .

Goldberg, D. E. , Richardson, J. (1987), Genetic algorithms with sharing for multimodal function optimization, in Proceedings of the Second International Conference on Genetic Algorithms, J. J. Grefenstette, editor, Lawrence Erlbaum Associates, Hillsdale, New York, 41 – 49 .

Goldberg, D. E. (1989), Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, New York .

Goldberg, D. E. , Deb, K. , Theirens, D. (1991), Toward a better understanding of missing in genetic algorithms, Journal of SICE, 32 (1) .

Goldberg, D. E. , Theirens, D. (1993), Mixing in genetic algorithms, S. Forest, editor, Processing of 5-th International Conference on Genetic Algorithms .

Holland, J. (1975), Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor .

Janikow. C. Z. , Michalewicz, Z. (1991), An experimental comparison of binary and floating point representation in Genetic Algorithms, in Proceedings of the Fourth International Conference on Genetic Algorithms, San Diego, 31 – 36 .

Michalewicz, Z. (1992), Genetic Algorithms + Data Structures = Evolution Programs, Springer Verlag .

Schaffer, J. , Caruana, R. , Eshelman, L. , Das, R. (1989), A study of control parameters affecting online performance of genetic algorithms for function optimization, in Proceedings of the Third International Conference on Genetic Algorithms, Schaffer, J., editor, Morgan Kaufmann Publishers, Los Altos, CA, 51-60 .

Schaffer, J. D. , Morishima, A. (1987), An adaptive crossover distribution mechanism for genetic algorithms, in Proceedings of the Second International Conference on Genetic Algorithms, J. J. Grefenstette, editor, Lawrence Erlbaum Associates, Hillsdale, NY, 36 – 40 .

Spears, W. M. , De Jong, K. A. (1991), On the virtues of uniform crossover, in Proceedings of the Fourth International Conference on Genetic Algorithms, Morgan Kaufmann Publishers, 230 – 236 .

Syswerda, G. (1989), Uniform crossover in genetic algorithms, in Proceedings of the Third International Conference on Genetic Algorithms, Schaffer, J., editor, Morgan Kaufmann Publishers, Los Altos, CA, 2 – 9 .

Vose, M. D. , Liepins, G. E. (1991), Schema disruption, in Proceedings of the Fourth International Conference on Genetic Algorithms, Morgan Kaufmann Publishers, 237 – 242 .

=== Capitolul5 ===

5

CODIFICAREA REALÃ

1. CODIFICAREA SPECIFICÃ. HIBRIDIZARE

Codificarea binarã este cea mai obišnuitã dintre tehnicile de codificare. Ea este simplu de creat ši de manipulat. În plus, aceastã modalitate de reprezentare permite stabilirea unor rezultate teoretice interesante, cum ar fi teorema schemelor.

Codificarea binarã conferã robusteøe algoritmilor genetici, asigurând obøinerea unor performanøe bune pentru diferite clase de probleme. Reprezentarea binarã poate codifica aproape orice situaøie, iar operatorii nu includ cunoštinøe despre domeniul problemei. Este motivul pentru care un algoritm genetic se poate aplica unor probleme foarte diferite.

În anumite situaøii este necesar sã utilizãm codificarea “naturalã” a problemei, în locul reprezentãrii binare. Suntem astfel conduši la versiuni modificate ale algoritmilor genetici. Astfel de versiuni nu se mai bazeazã pe o codificare binarã a parametrilor de optimizat, ci lucreazã direct asupra parametrilor respectivi.

Necesitatea înlocuirii codificãrii binare apare, de exemplu, ši atunci când dorim sã combinãm un algoritm genetic cu un alt algoritm. Sã presupunem cã se cunoašte un algoritm (nu neapãrat optimal) pentru rezolvarea problemei în discuøie. Putem numi acest algoritm neoptimal algoritmul curent.

Combinarea dintre tehnicile algoritmilor genetici ši algoritmul curent se poate face urmãrind urmãtoarele aspecte:

(i) Folosirea codificãrii curente (sau specifice). Aceasta presupune sã se foloseascã în algoritmul hibrid metoda de codificare a algoritmului curent.

(ii) Realizarea hibridizãrii acolo unde este posibil. Se combinã cele douã tehnici ši se încorporeazã caracteristicile promiøãtoare ale algoritmului curent în procedura hibridã.

(iii) Adaptarea operatorilor genetici. Se creeazã noi operatori genetici adaptaøi noii codificãri. Anumite euristici ale domeniului pot fi încorporate ca operatori distincøi.

Folosirea codificãrii specifice oferã mai multe avantaje. Aceastã codificare garanteazã pãstrarea expertizei incluse în codificarea problemei (codificarea folositã de algoritmul curent). Algoritmul hibrid este perceput de utilizator ca fiind “mai natural”, datoritã codificãrii folosite ši cunoašterii modului în care algoritmul curent funcøioneazã.

Codificarea specificã este mai potrivitã rezolvãrii problemelor de optimizare numericã de tip continuu. Pe de altã parte, codificarea specificã deschide calea cercetãrilor privind încorporarea metodelor clasice în diferite proceduri genetice. Versiunile hibride sunt mai aproape de nevoile ši obišnuinøele practicienilor. Din acest motiv, metodele hibride sunt mai folosite decât algoritmii genetici standard pentru rezolvarea problemelor concrete ce apar în mediile industriale.

Codificarea specificã poate fi folositã ši în absenøa oricãrei hibridizãri. În acest caz obøinem un algoritm genetic ce acøioneazã direct asupra spaøiului de cãutare asociat problemei. Folosirea codificãrii specifice duce de multe ori la rezultate mai bune decât cele obøinute prin codificarea binarã.

2. CODIFICAREA REALÃ

Diferitele probleme particulare ce folosesc codificãri specifice necesitã dezvoltarea unor algoritmi genetici speciali, în funcøie de aplicaøia consideratã. Una dintre cele mai obišnuite codificãri este cea care utilizeazã numere reale pentru reprezentarea valorilor genelor. În acest caz spunem cã avem o codificare realã a elementelor din spaøiul de cãutare. Aceastã reprezentare este potrivitã în special pentru rezolvarea unor probleme de optimizare în care variabilele iau valori într-un domeniu continuu. În continuare vom prezenta codificarea realã ši principalii operatori asociaøi.

În codificarea realã fiecare cromozom este reprezentat (codificat) sub forma unui vector cu componente reale. Dimensiunea cromozomilor este constantã ši este egalã cu dimensiunea vectorului soluøie (din spaøiul stãrilor problemei). Scopul principal al acestei abordãri este de a apropia codificarea de spaøiul stãrilor problemei.

Fie x = {x1 , x2 , . . . , xn} codificarea unui cromozom. Poziøia i din aceastã codificare reprezintã valoarea genei i în cromozomul x. În codificarea realã xiR ši deci x este din Rn. Fiecare genã corespunde unui parametru de optimizat (unei variabile). Valorile genei i în diverši cromozomi reprezintã valori ale parametrului corespunzãtor genei. Fiecare parametru (variabilã) ia valori într-un domeniu precizat ši operatorii genetici trebuie sã menøinã valorile în domeniul respectiv. Uneori, pentru simplitate, vom identifica o genã cu valoarea ei.

Pentru a crea noi soluøii folosind operatorii de încrucišare ši mutaøie este necesar sã considerãm noi strategii de cãutare. Codificarea realã presupune definirea unor operatori genetici specifici. În continuare vom trece în revistã principalii operatori ce acøioneazã asupra unei codificãri cu numere reale.

3. OPERATORUL DE ÎNCRUCIŠARE PENTRU CODIFICAREA REALÃ

Operatorul de încrucišare cu unul sau mai multe puncte este ušor aplicabil. Din pãcate, în cazul codificãrii reale acest operator nu este adecvat. El nu poate realiza cãutarea în raport cu fiecare variabilã. Aceastã cãutare ar rãmâne complet în sarcina oparatorului de mutaøie. Din acest motiv este necesar sã reconsiderãm operatorul de încrucišare.

În codificarea realã existã multe posibilitãøi de a redefini operatorul de încrucišare (recombinare). Dãm mai jos cele mai cunoscute variante ale acestui operator.

3.1. Încrucišarea discretã

Încrucišarea discretã este analoagã cu încrucišarea uniformã. Pentru fiecare poziøie i a primului descendent se alege (cu o probabilitate fixatã p) pãrintele a cãrui genã (din poziøia i) va fi transmisã acestui descendent. Poziøia respectivã din al doilea descendent va fi completatã cu valoarea genei corespunzãtoare din celãlalt pãrinte. Dacã p=0.5 rolul celor doi pãrinøi este simetric.

Exemplu.

Fie cromozomii:

x = ( x1 , x2 , x3 , x4 , x5 )

ši

y = ( y1 , y2 , y3 , y4 , y5 ) .

Încrucišarea discretã cu p=0.5 poate conduce, de exemplu, la descendenøii:

x1 = ( x1 , x2 , y3 , x4 , y5 )

ši

y1 = ( y1 , y2 , x3 , y4 , x5 ) .

3.2. Încrucišarea continuã (medie)

Operatorul de încrucišare continuã (numit ši operator de încrucišare medie) se aplicã cu o probabilitate pc . Se aleg aleator (cu o probabilitate fixatã p) anumite poziøii. Genele corespunzãtoare în descendenøi vor fi media aritmeticã a genelor corespunzãtoare ale pãrinøilor.

Exemplu.

Considerãm cei doi cromozomi din exemplul precedent. Admitem cã au fost selectate genele 3 ši 5. În aceste condiøii, descendenøii obøinuøi prin încrucišare continuã sunt:

x1 = ( x1 , x2 , (x3+ y3)/2 , x4 , (x5+ y5)/2 )

ši

y1 = ( y1 , y2 , (x3+ y3)/2 , y4 , (x5+ y5)/2 ) .

Este simplu sã imaginãm ši alte tipuri de încrucišare. Câteva posibilitãøi vor fi prezentate mai jos.

3.3. Încrucišarea continuã (medie) completã

Acest tip de încrucišare produce un singur descendent ale cãrui gene reprezintã media aritmeticã a valorilor genelor corespunzãtoare din cei doi pãrinøi.

Fiecare genã i a descendentului va avea forma:

3.4. Încrucišarea convexã (sau intermediarã)

Este posibilã ši o situaøie mai generalã în care cei doi pãrinøi nu au aceeaši pondere în obøinerea descendentului. În acest caz genele descendentului pot fi date de o combinaøie convexã a genelor pãrinøilor. Gena de pe poziøia i a unicului descendent va avea valoarea:

unde , [0,1] ši cei doi parametri satisfac condiøia de convexitate

+ = 1 .

Dacã ši reflectã calitatea (adecvarea) pãrinøilor, atunci acest tip de încrucišare favorizeazã pe cel mai bun pãrinte.

Putem stabili un mecanism de încrucišare convexã care sã conducã la obøinerea a doi descendenøi. În acest caz cromozomii x ši y vor genera descendenøii u ši v ale cãror gene sunt de forma

În acest caz parametrul nu mai poate fi pus în legãturã cu performanøa unuia dintre cromozomi. Dacã parametrul este constant pentru toate generaøiile avem o încrucišare convexã uniformã. Putem stabili un mecanism care sã permitã ca sã depindã de generaøie (de vârsta populaøiei). În acest caz avem un operator de încrucišare convexã neuniformã.

Este posibil sã introducem ši un element aleator în încrucišarea convexã. În cazul unui singur descendent genele acestuia se vor putea scrie

unde este un numãr aleator în intervalul [0,1].

Dacã avem doi descendenøi, valoarea genelor lor vor fi calculate cu formulele:

ši respectiv

Numãrul poate fi acelaši pentru toate generaøiile sau poate fi stabilit pentru fiecare generaøie.

Dacã permitem parametrului sã-ši schimbe valoarea pentru fiecare genã, atunci obøinem un tip special de încrucišare. Putem numi încrucišare localã acest nou tip de operator. Este ušor de observat cã încrucišarea localã este de fapt o combinaøie de încrucišare ši mutaøie (vezi paragraful urmãtor pentru operatorul de mutaøie). În cazul încrucišarii locale genele vor fi

pentru cazul unui descendent, ši

pentru cazul a doi descendenøi, unde i [0,1].

3.5. Operatorul SBX

Deb (1996) a definit un operator care simuleazã acøiunea operatorului cu un singur punct de tãieturã din cazul codificãrii binare. Operatorul SBX (Simulated Binary Crossover) respectã însã continuitatea spaøiului de cãutare. Obøinerea descendenøilor se bazeazã pe utilizarea unei distribuøii de probabilitate continue P(,). Parametrul este un numãr real nenegativ ce impune forma distribuøiei de probabilitate. Aceasta are expresia

Cu aceste precizãri putem da mecanismul generativ corespunzãtor operatorului SBX. Fie cromozomii pãrinøi x1 ši x2 . Prin acøiunea operatorului se obøin descendenøii y1 ši y2 folosind urmãtorul algoritm:

CREAREA DESCENDENØILOR PRIN OPERATORUL SBX

P1. Se genereazã un numãr aleator u[0,1].

P2. Se determinã un parametru astfel încât

P3. Valoarea calculatã se folosešte pentru obøinerea descendenøilor y1 ši y2 . Aceštia se calculeazã cu formulele:

Avantajul utilizãrii unei distribuøii de probabilitate parametrizate este obøinerea unor descendenøi apropiaøi de pãrinøi. Dacã pãrinøii sunt foarte diferiøi atunci pot fi create soluøii noi depãrtate de soluøiile-pãrinøi. Pe de altã parte, dacã pãrinøii sunt apropiaøi, soluøiile-descendenøi nu pot fi în general depãrtate de soluøiile-pãrinøi.

Sunt posibile ši alte scenarii de recombinare. Putem, de exemplu, sã combinãm nu doi, ci mai muløi pãrinøi ši sã construim descendenøi øinând cont de calitatea pãrinøilor. În capitolul consacrat strategiilor evolutive sunt prezentate ši alte variante ale operatorului de recombinare. Folosirea valorilor de adecvare pentru a orienta recombinarea permite accelerarea cãutãrii. Se pot utiliza pentru încrucišare mecanisme axate pe exploatarea localã a spaøiului de cãutare. Astfel de mecanisme se deosebesc de regulile clasice, care sunt bazate în principal pe întâmplare. Apare din nou necesitatea stabilirii unui compromis explorare/exploatare. Putem aprecia cã soluøia idealã a acestui compromis este dependentã de problemã, o tratare generalã fiind dificilã.

4. OPERATORUL DE MUTAØIE PENTRU CODIFICAREA REALÃ

Considerãm un cromozom ce codificã n parametri (cromozomul conøine n gene). Valorile parametrilor sunt exprimate prin numere reale ši pentru fiecare parametru este specificat domeniul valorilor posibile.

Putem considera diferite forme ale operatorului de mutaøie. În general putem vorbi de operatori de mutaøie uniformi ši de operatori neuniformi. Acøiunea unui operator neuniform depinde de generaøie (de vârsta populaøiei).

4.1. Mutaøia uniformã

Aceastã variantã a operatorului de mutaøie înlocuiešte o singurã genã a cromozomului cu un numãr real generat aleator, situat în domeniul parametrului respectiv. Schimbarea valorii fiecãrei gene se face cu o probabilitate fixatã. De regulã, se considerã cã toate genele au aceeaši probabilitate de mutaøie.

Fie

x = (x1 , x2 , . . . , xn )

un cromozom. Acøiunea operatorului de mutaøie este un cromozom de forma

x’= (x1 , x2 , . . . , xi’, . . . , xn ) , 1 i n ,

unde xi’ este o valoare aleatoare din domeniul parametrului i . Poziøia mutantã i este determinatã în mod aleator.

4.2. Mutaøia neuniformã

Cea de-a doua variantã a operatorului de mutaøie este inspiratã de algoritmul Metropolis de stabilire a echilibrului termic ši de algoritmul de recoacere simulatã (simulated annealing) (pentru detalii privind acešti algoritmi vezi, de exemplu, Dumitrescu ši Costin, 1996). În aceastã abordare, genele suferã modificãri importante la primele generaøii. Modificãrile descresc apoi treptat. Se realizeazã astfel un progres important al cãutãrii în faza iniøialã ši un control fin al procesului de cãutare în fazele finaleale acestui proces.

La fiecare generaøie t se genereazã aleator doi parametri. Primul parametru, p, indicã natura schimbãrii: crešterea sau descrešterea valorii unei gene. Valoarea p=1 indicã o creštere a valorii, iar p= 1 indicã o descreštere. Al doilea parametru, r, determinã amplitudinea schimbãrii. Parametrul r este un numãr aleator în intervalul [0,1], urmând o distribuøie uniformã.

Fie x = (x1 , x2 , . . . , xn ) un cromozom ši fie xi gena aleasã pentru mutaøie. Valoarea nouã xi’ a genei xi este datã (Janikow ši Michalewicz, 1991) de:

sau

unde:

xmin ši xmax semnificã marginea inferioarã ši respectiv superioarã a variabilei (parametrului) xi .

T este indicele generaøiei pentru care amplitudinea mutaøiei se anuleazã (generaøiile ulterioare nu vor mai suferi mutaøii). În unele implementãri T indicã numãrul maxim de generaøii.

Cromozomul obøinut în urma acøiunii operatorului de mutaøie va fi (x1 , x2 , . . . , xi’, . . . , xn ).

O expresie mai generalã a modificãrii lui xi se poate da considerând o funcøie:

h:{0, 1, . . . , T} [0,1]

având proprietãøile:

(i) h este descrescãtoare

(ii) h(T) = 0.

În acest caz T este numãrul maxim de generaøii. O expresiu uzualã a lui h este:

unde b este un parametru ce determinã gradul de neuniformitate. Se considerã, de obicei, b1.

Dacã T este indicele generaøiei pentru care amplitudinea de mutaøie se anuleazã, atunci h este o funcøie

h : N [0,1]

care satisface proprietãtile (i) ši (ii) de mai sus.

Utilizând funcøia h, modificarea genei se scrie:

sau

Dacã în expresia consideratã a lui h punem b=1 atunci obøinem forma iniøialã a modificãrii valorii de pe poziøia i.

Operatorul de mutaøie descris realizeazã la primele generaøii o explorare uniformã a spaøiului stãrilor. Pentru ultimele generaøii, variaøiile fiind mici, explorarea devine localã, realizându-se controlul fin al procesului de cãutare.

Putem imagina ši alte mecanisme de mutaøie. O primã idee este sã fie modificate, la un pas, toate poziøiile unui cromozom. Acest mecanism se poate aplica atât pentru mutaøia uniformã cât ši pentru cea neuniformã.

Mutaøia este operatorul principal în strategiile evolutive ši în programarea evolutivã. Codificarea realã poate folosi ši operatorii de mutaøie specifici acestor metode de cãutare/optimizare.

5. CONCLUZII

(i) Rezultatele experimentale (Michalewicz, 1992) au arãtat cã reprezentarea realã permite o convergenøã medie mai bunã faøã de codificarea binarã. Codificarea realã permite o precizie mai mare. Acest lucru este evident mai ales în situaøiile în care codificarea binarã necesitã vectori de dimensiuni foarte mari. Performanøele codificãrii reale cresc ši datoritã folosirii unor operatori specifici, ce au un grad de acurateøe sporit faøã de operatorii binari.

(ii) Codificarea realã este mai naturalã, fiind mai apropiatã de spaøiul problemei. Uneori cromozomii pot reprezenta chiar puncte din spaøiul problemei (cazul problemelor de optimizare). Aceastã caracteristicã faciliteazã introducerea unor operatori speciali care încorporeazã cunoštinøe specifice domeniului problemei. Faptul cã o genã reprezintã o variabilã (o dimensiune a spaøiului de cãutare) accentueazã caracterul intuitiv al acestui tip de codificare. În plus, codificarea realã asigurã o anumitã contiguitate a spaøiului de reprezentare. Doi cromozomi vecini (în spaøiul de reprezentare) vor corespunde la puncte vecine din spaøiul stãrilor problemei. Acest lucru nu este realizat în codificarea binarã, unde distanøa dintre cromozomi este de regulã distanøa Hamming.

(iii) Codificarea realã asigurã un echilibru mai bun între cãutarea globalã iniøialã ši exploatarea localã a soluøiilor gãsite. Din acest motiv poate fi folositã cu succes pentru controlul fin al procesului de cãutare.

(iv) Codificarea realã stabilešte o punte între algoritmii genetici ši celelalte clase de metode evolutive (strategiile evolutive ši programarea evolutivã).

6. BIBLIOGRAFIE

Deb, K. (1996), Genetic algorithms for function optimization, in F. Herrera, J.L. Verdegay (editori), Genetic Algorithms for Soft Computing, Physica Verlag, Heidelberg .

Dumitrescu, D. , Hariton, C. (1996), Reøele Neuronale, Teora, Bucurešti .

Janikow, C. Z. , Michalewicz, Z. (1991), An experimental comparison on binary and floating point representation in Genetic Algorithms, in Proceedings of the Fourth International Conference on Genetic Algorithms, San Diego, 31 -36 .

Michalewicz, Z. (1992), Genetic Algorithms + Data Structures = Evolution Programs, Springer Verlag, Berlin .

Rawlins, G. J. E. editor (1990), Foundations of Genetic Algorithms, Morgan Kaufmann Publishers, San Mateo, California .

Renders, J. M. (1995), Algorithmes Génétiques et Réseaux de Neurones, Hermes, Paris.

Whitley, D. , editor (1992), Foundations of Genetic Algorithms, II, Morgan Kaufmann, California .

=== Capitolul6 ===

6

OPTIMIZAREA FUNCØIILOR REALE

În acest capitol vom considera problema optimizãrii funcøiilor reale folosind algoritmii genetici. Se va utiliza atât codificarea binarã cât ši cea realã. Vom arãta în ce fel se poate construi o codificare binarã pentru optimizare ši vom stabili precizia acestei codificãri. Mecanismul de codificare ši optimizare se va extinde ši pentru funcøii de mai multe variabile reale. Se va prezenta ši un procedeu de tratare a problemelor de optimizare cu restricøii.

Optimizarea folosind codificarea realã nu ridicã nici un fel de probleme speciale.

Optimizarea multicriterialã se va trata folosind metoda Pareto. În aceastã metodã se definešte o relaøie de dominare între soluøii. Se va da un algoritm care stabilešte soluøiile nedominate dintr-o populaøie P(t). Pentru a realiza o uniformizare a soluøiilor nedominate se recalculeazã adecvarea lor folosind metoda nišei ecologice. Algoritmul de optimizare Pareto genereazã o partiøie a populaøiei P(t). Fiecare clasã corespunde unei muløimi de soluøii nedominate ši, în acelaši timp, unei niše ecologice.

1. OPTIMIZAREA FUNCØIILOR DE UNA ŠI MAI MULTE VARIABILE REALE

În cele ce urmeazã ne propunem sã aplicãm algoritmii genetici pentru gãsirea maximului global al unei funcøii de o variabilã realã.

Fie J : [a,b] R funcøia obiectiv. Problema este de a gãsi elementul din intervalul [a,b] care maximizeazã funcøia J. Spaøiul de cãutare este dat de intervalul [a,b] ši are puterea continuului (alef). În mod evident nu se pune problema codificãrii tuturor elemetelor spaøiului de cãutare. Vom lucra cu populaøii reprezentând codificarea a n puncte din acest spaøiu. Vom considera atât o codificare binarã cât ši codificarea realã.

1.1. Codificarea binarã

Fie x un element din intervalul [a,b]. Pentru a codifica binar elementul x îl transformãm într-un punct din intervalul [0,1]. În acest scop utilizãm o transformare liniarã t : [a,b] [0,1]. Cea mai naturalã este transformarea:

Notãm cu x’ imaginea lui x prin transformarea t:

Ne propunem sã stabilim o codificare a numãrului x printr-un cromozom de lungime r. În acest scop numãrul x’ reprezentând imaginea lui x se transformã în baza 2.

Fie

(x’)2 = 0.z

reprezentarea în baza 2 a lui x’. z este o succesiune de biøi care dã chiar codificarea lui x. Dacã z conøine mai mult de r cifre binare, atunci codificarea se face reøinând doar primele r cifre. În acest caz codificarea lui x se face prin aproximare.

Spaøiul cromozomilor este în cazul nostru X={0,1}r . Funcøia de codificare este o aplicaøie C : [a,b] X . Pentru metoda de codificare prezentatã avem:

C(x) = y ,

unde y reprezintã primele r cifre binare ale numãrului (t (x))2 . Dacã reprezentarea în baza 2 a lui t(x) conøine r sau mai puøin de r cifre binare atunci C(x) codificã exact pe x .

Exemplu.

Considerãm funcøia J : [2,10] R . Dorim sã codificãm prin širuri de lungime r = 7 elementele spaøiului de cãutare. Pentru a obøine codificarea elementului x=5 îi aplicãm acestuia transformarea liniarã t ši obøinem:

Transformând x’ în baza 2 avem:

x’2 = 0 . 0 1 1

Codificarea lui x va fi cromozomul C(x) de lungime 7, unde:

C(x) = 0 1 1 0 0 0 0

1.2. Decodificarea

Duala funcøiei de codificare C este o funcøie de decodificare D, unde:

D : X [a.b] .

Pentru a decodifica un cromozom

c = x1 x2 . . . xr

se transformã în baza 10 numãrul subunitar în baza 2

y = 0. x1 x2 . . . xr .

Notãm cu x’ valoarea în baza 10 a lui y. Fie x elementul din spaøiul de cãutare (aici intervalul [a,b]) a cãrui codificare a condus la cromozomul c. Ašadar x’ este imaginea lui x prin transformarea t , adicã:

Din aceastã egalitate rezultã cã

Valoarea funcøiei de decodificare pentru cromozomul c va fi

ši deci

1.3. Precizia codificãrii

Lungimea unui cromozom utilizat pentru a reprezenta o variabilã realã depinde de acurateøea cerutã în aceastã reprezentare.

În cele ce urmeazã ne propunem sã determinãm care este lungimea r a cromozomilor ce asigurã o codificare cu o precizie (acurateøe) doritã. În acest scop vom determina mai întâi eroarea codificãrii prin cromozomi de o lungime datã.

Fie

C : [a,b] X

funcøia de codificare descrisã mai sus. Avem

C(a) = 0 0 . . . 0 .

Notãm

c0 = C(a) .

ši fie c1 cromozomul având doar ultima poziøie diferitã de zero:

c1 = 0 0 . . . 0 1 .

Cromozomului c1 îi va corespunde numãrul x1 din intervalul [a,b]:

Putem observa cã x0 = a ši x1 sunt numere exact codificate prin cromozomii c0 ši c1 . Între x0 ši x1 nu existã însã nici un punct care sã fie exact codificat. Ašadar distanøa dintre x0 ši x1 se poate interpreta ca fiind o mãsurã pentru eroarea codificãrii punctelor din [a,b] prin cromozomi de lungime r.

Dacã notãm cu (r) eroarea codificãrii prin cromozomi de lungime r avem:

Acum vom inversa problema. Dându-se precizia doritã q a codificãrii, vom încerca sã determinãm lungimea cromozomilor ce asigurã aceastã precizie. Dacã se aleg pentru codificare cromozomi de lungime r, atunci eroarea codificãrii este (r). Codificarea prin širuri de lungime r este acceptabilã dacã eroarea (r) a acestei codificãri este mai micã sau egalã cu precizia doritã q. Avem deci

Pe de altã parte trebuie sã ne asigurãm cã r este lungimea minimã pentru care acurateøea q este obøinutã. Din acest motiv trebuie sã impunem ši o condiøie relativã la eroarea codificãrii cu cromozomi de lungime (r 1). Eroarea (r 1) a codificãrii prin širuri de lungime (r 1) va trebui sã fie mai mare decât precizia doritã q:

Avem ašadar inegalitatea dublã:

Øinând seama de expresia erorii avem

Rezultã cã

Am stabilit ašadar cã pentru a obøine o reprezentare de precizie (acurateøe) q, lungimea r a cromozomilor trebuie sã satisfacã inegalitãøile:

1.4. Acurateøea soluøiei

Precizia codificãrii este legatã de acurateøea soluøiei. Considerentele de mai sus ne îndreptãøesc sã afirmãm cã acurateøea soluøiei pe care ne ašteptãm sã o obøinem folosind algoritmii genetici ši codificarea binarã este de ordinul

1.5. Populaøia iniøialã

Populaøia iniøialã se creeazã alegând aleator un numãr n de puncte din intervalul [a,b]. Fiecare punct va fi codificat prin intermediul unui šir binar (cromozom) de lungime r. Lungimea cromozomilor se alege astfel încât sã se asigure precizia de reprezentare cerutã (sau precizia soluøiei). Notãm cu X muløimea cromozomilor de acest fel.

Nu existã o metodã generalã de alegere a mãrimii populaøiei. Intuiøia ne spune cã o populaøie mare va face ca algoritmul genetic sã lucreze mai încet, dar soluøiile vor fi mai bune decât cele obøinute cu o populaøie mai micã. O astfel de regulã euristicã nu funcøioneazã totdeauna. Dimensiunea optimã a populaøiei depinde de problemã, de reprezentarea folositã ši de operatorii genetici utilizaøi. În general doar experimentele numerice vor putea da un rãspuns adecvat. Sã menøionãm cã pentru probleme de optimizare curente o valoare a lui n de ordinul 102 pare a fi satisfãcãtoare (n=200, de exemplu). Pentru cazul codificãrii binare ši operatorilor standard un studiu al dimensiunii populaøiei poate fi gãsit în Goldberg (1989, b).

1.6. Funcøia de adecvare

Dacã funcøia J are valori pozitive, atunci putem alege ca funcøie de adecvare chiar funcøia obiectiv J. În acest caz avem

f(x) = J(c) ,

unde x este cromozomul ce reprezintã numãrul real c

x = C(x) .

Aceastã alegere pentru f este justificatã de faptul cã se urmãrešte maximizarea funcøiei criteriu. În plus f satsface axiomele funcøiei de adecvare:

(i) f(x) 0 , xX

(ii) J(a) J(b) f(x) f(y) , unde x = C(a) ši y = C(b) .

Dacã J nu are valori pozitive atunci funcøia de adecvare se poate obøine printr-o scalare a lui J. Dacã S este funcøia de scalare, atunci avem

f(x) = S (J(D(x))) , xX ,

unde D este funcøia de decodificare.

În cazul unei scalãri liniare avem

f = J + ,

unde coeficienøii ši se aleg astfel încât sã satisfacã cerinøele impuse funcøiei de adecvare.

În metode de scalare liniarã propusã de Bäck ši Schwefel (1993) scalarea se face în raport cu cel mai slab individ din ultimele w generaøii. Valoarea w se numešte fereastra de scalare. Funcøia de adecvare utilizatã în acest tip de scalare are, pentru generaøia t, valoarea

Alte metode scalare sunt prezentate în Goldberg (1989, a)

Observaøie.

În cazul în care t < w atunci minimul se ia în raport cu populaøiile P(0), . . . , P(t).

1.7. Selecøia

Pentru fiecare generaøie P(t) se calculeazã adecvarea cromozomilor generaøiei. Ca mecanism de selecøie se poate utiliza modelul ruletei sau o variantã a sa. Se poate suplimenta acest mecanism cu o abordare elitistã pentru a asigura pãstrarea celui mai bun cromozom al fiecãrei generaøii ši pentru a depãši erorile statistice legate de alegere. Populaøia intermediarã obøinutã prin selecøie se noteazã P1.

În selecøia elitistã, dacã cel mai bun individ al unei generaøii nu a fost selectat, se înlãturã în mod aleator un cromozom din populaøia P1 ši se adaugã acestei populaøii cel mai bun individ din P(t). În cazul în care cel mai bun individ a fost selectat, populaøia P1 nu se modificã. În unele situaøii selecøia elitistã se aplicã primilor cei mai importanøi k indivizi din P(t). Numãrul k este un parametru al algoritmului.

1.8. Operatorii genetici

Se utilizeazã operatorii de încrucišare ši mutaøie cu probabilitaøile de aplicare de ordinul 10-1 ši respectiv 10-2. Se poate utiliza ši operatorul de inversiune. În unele cazuri se pot utiliza ši diferiøi operatori speciali.

1.9. Optimizarea unei funcøii de mai multe variabile reale

Considerãm cã funcøia de optimizat J este o funcøie de s variabile reale:

În acest caz un element x din spaøiul de cãutare U

se va reprezenta printr-un cromozom format din s subširuri de lungime egalã. Fiecare subšir corespunde unei variabile.

Exemplu.

Considerãm un vector x = (x1 , x2 , . . . , xs ) din U ši admitem cã variabila x1 are reprezentarea 01 01 . . . 11 , x2 are reprezentarea 111 0 . . . 0 0 , iar xs are reprezentarea 0011 . . . 01 . În acest caz x se reprezintã sub forma

Dacã fiecare variabilã este codificatã prin ri poziøii binare, širul ce va reprezenta întreg cromozomul va avea lungimea

Pentru a calcula subširul corespunzãtor componentei xi[ai,bi] a lui x se procedeazã dupã cum urmeazã:

1. Se proiecteazã xi în intervalul [0,1] folosind transformarea

2. Se trece numãrul y = t (xi) în baza 2.

Se reøin primii ri biøi ce urmeazã punctului zecimal.

Numãrul ri este ales astfel încât sã se atingã precizia de codificare doritã. Prin urmare, ri trebuie sã satisfacã urmãtoarele condiøii:

unde q este precizia (acurateøea) codificãrii.

Succesiunea de biøi astfel obøinutã reprezintã subširul i al cromozomului.

Observaøie.

De regulã se considerã subširuri de lungime constantã r. În acest caz se poate alege r ca fiind maximul lungimilor ri , i = 1, 2, . . . , s .

Aceastã alegere asigurã atingerea acurateøei de codificare în raport cu fiecare variabilã. Evident, lungimea cromozomului va fi acum rs.

Observaøie.

Performanøele algoritmilor genetici depind nu doar de acurateøea codificãrii ci ši de poziøia relativã a subširurilor ce realizeazã codificarea variabilelor. Se recomandã ca variabilele ce corespund termenilor neliniari în funcøia criteriu sã fie codificate prin širuri apropiate între ele.

Odatã stabilitã schema de codificare, celelalte operaøii se realizeazã analog cu cazul optimizãrii unei funcøii de o variabilã realã.

Probabilitãøile de selecøie vor depinde de valorile funcøiei obiectiv. Operatorii de încrucišare ši mutaøie se aplicã, de regulã, asupra întregului šir ce reprezintã un cromozom. S-au propus însã ši mecanisme de încrucišare în care operatori de încrucišare independenøi acøioneazã asupra subširurilor corespunzând fiecãrei variabile.

1.10. Optimizare cu restricøii

Este important ca tratarea restricøiilor unei probleme de optimizare sã se încadreze în schema generalã a AG. Acest lucru se poate realiza ušor folosind metoda funcøiilor de penalizare. Metoda constã în a modifica funcøia criteriu prin adãugarea unor termeni suplimentari care modeleazã restricøiile. Dacã o anumitã soluøie x violeazã o anumitã restricøie g, atunci funcøia criteriu este penalizatã cu un factor proporøional cu pãtratul (g(x))2 al restricøiei violate.

Pentru a exemplifica mecanismul de tratare a restricøiilor prin metoda funcøiilor de penalizare considerãm o problemã de minim cu restricøii.

Fie f : Rs R o funcøie de s variabile. Considerãm problema de optim cu restricøii.

Pentru a trata restricøiile cu inegalitãøi definim o funcøie t : R R în felul urmãtor:

Problemei de minim îi asociem o funcøie de penalizare fãrã restricøii, P : Rs R , unde

Funcøia P trebuie minimizatã. Dar tehnicile bazate pe AG sunt aplicabile pentru obøinerea maximului. Din acest motiv vom înlocui problema de minim cu una de maxim echivalentã. Minimizarea cu restricøii a funcøiei f revine ašadar la rezolvarea problemei de maxim fãrã restricøii:

Aceastã problemã poate fi rezolvatã folosind tehnica algoritmilor genetici pentru maximizarea funcøiilor de mai multe variabile reale.

1.11. Utilizarea codificãrii reale

Pentru optimizarea funcøiilor reale de una sau mai multe variabile se poate utiliza ši codificarea realã. În acest caz cromozomii sunt chiar puncte din spaøiul de cãutare. Operatorii genetici utilizaøi vor fi cei specifici codificãrii reale.

Codificarea realã este cea mai adecvatã pentru optimizarea funcøiilor reale. Utilizând aceastã reprezentare se poate realiza acurateøea doritã a codificãrii prin cromozomi de lungime micã (egalã cu numãrul de variabile). Folosirea unor operatori neuniformi permite o accelerare a convergenøei. În primele iteraøii se asigurã o cãutare globalã, care permite atingerea rapidã a regiunii soluøiilor satisfãcãtoare. Odatã aceastã regiune atinsã urmeazã o cãutare finã, care poate conduce la optimele globale. Timpul de obøinere a soluøiei se reduce ši din cauzã cã lungimea cromozomilor este mai micã (mai puøine gene vor suferi mutaøia ši inversiunea).

Un alt avantaj considerabil al codificãrii reale este posibilitatea de a asocia un algoritm genetic cu un algoritm clasic de optimizare. În acest caz algoritmul genetic ar putea fi folosit pentru a identifica regiunea soluøiilor promiøãtoare. Pentru identificarea optimelor globale se folosešte un algoritm ce exceleazã în exploatarea informaøiilor locale asupra soluøiilor potenøiale gãsite. Un astfel de algoritm ce poate folosi cunoašterea domeniului problemei pentru a ghida cãutarea localã poate fi, de exemplu, un algoritm de coborâre (o metodã de gradient).

2. OPTIMIZAREA VECTORIALÃ

Uneori trebuie sã luãm decizii având în vedere mai multe criterii, care uneori pot fi contradictorii. Sã presupunem, de exemplu, cã avem de ales un automobil dintre mai multe disponibile. Criteriile de alegere pot fi: preøul, culoarea, confortul, performanøele tehnice, modelul, anul fabricaøiei, etc. Evident aceste criterii nu sunt comparabile ši a le converti într-o singurã valoare numericã este riscant. Avem ašadar de rezolvat o problemã de optim în care mai multe funcøii obiectiv trebuie optimizate simultan. O astfel de problemã este una de optimizare multiobiectiv (optimizare multicriterialã sau optimizare vectorialã).

Optimizarea multicriterialã presupune existenøa simultanã a mai multor criterii de optim. Într-o abordare nepretenøioasã acest criterii pot fi convertite într-o singurã funcøie obiectiv. De obicei criteriile intervin în aceastã unicã funcøie cu diferite ponderi. Problema astfel obøinutã este tratatã apoi ca o problemã de optimizare cu o singurã funcøie obiectiv.

În realitate, dupã cum am vãzut în discuøia de mai sus, combinarea criteriilor într-o singurã funcøie obiectiv poate fi imposibilã sau neindicatã pentru cele mai multe situaøii practice. În plus, metoda este subiectivã, soluøia optimã depinzând de ponderile alese. Din aceste motive s-au cãutat abordãri mai nuanøate ale optimizãrii multicriteriale.

Considerãm cã avem de realizat optimizarea în raport cu funcøiile obiectiv f1 , f2 , . . . , fm . Admitem cã fi : Rs R, i=1, 2, . . . , n . Se numešte vector criteriu vectorul m-dimensional

ale cãrui componente sunt funcøiile în raport cu care trebuie sã se facã optimizarea.

Unui vector criteriu îi corespunde un vector soluøie având tot m componente.

Vom nota cu ( Rs) domeniul funcøiei F. Avem deci

F : Rm

va fi spaøiul de cãutare pentru problema de optimizare vectorialã.

În abordarea lui Schaffer (1984) fiecãrei componente a vectorului criteriu îi corespunde o subpopulaøie. Subpopulaøia k va realiza optimizarea componentei k a vectorului criteriu. Cele m subpopulaøii cu aceeaši dimensiune. Selecøia se realizeazã în mod independent pentru fiecare populaøie, în raport cu funcøia criteriu respectivã. Recombinarea nu øine cont de frontierele între subpopulaøii. Populaøia finalã este formatã din cele m subpopulaøii finale astfel obøinute. Metoda are însã un dezavantaj major. Pot exista indivizi buni în raport cu funcøia multiobiectiv, dar care sã nu fie foarte buni în raport cu nici una din componentele acestei funcøii. Tipul de selecøie utilizat va dezavataja astfel de indivizi (nespecializaøi, dar importanøi pentru optimul global).

Dificultatea majorã legatã de problemele multiobiectiv constã în necomparabilitatea diferitelor soluøii. Definirea unei relaøii de ordine peste vectorii soluøie ar putea rezolva aceastã dificultate. În acest scop se recurge la optimizarea Pareto în care se definešte o relaøie de dominare între soluøii.

În optimizarea Pareto conceptul central este cel de soluøie nedominatã. Intuitiv o soluøie nedominatã (optimalã în sens Pareto – pe scurt Pareto optimalã) este o soluøie care:

(i) nu este mai proastã decât celelalte soluøii.

(ii) este mai bunã decât orice altã soluøie în raport cu cel puøin o funcøie obiectiv fg.

Definiøia optimalitãøii Pareto depinde de natura optimului cãutat (maxim sau minim). În cele ce urmeazã vom considera problema de optimizare vectorialã:

Vom nota cu V muløimea valorilor funcøiei obiectiv F:

Vom defini o relaøie de dominare peste muløimea V a valorilor lui F. Aceastã relaøie va induce o relaøie de dominare peste mulaøimea punctelor din spaøiul de cãutare .

Fie u ši v doi vectori din V. Spunem cã vectorul v dominã vectorul u (în raport cu problema de maxim consideratã) dacã ši numai dacã sunt îndeplinite urmãtoarele condiøii:

Condiøia (ii) se mai poate scrie

Faptul cã v dominã u se va scrie

Observaøie.

Pentru o problemã de minim definiøia dominãrii se schimbã în mod corespunzãtor.

Dacã o valoare v a lui F nu este dominatã de nici o altã valoare spunem cã valoarea v este nedominatã (v este o valoare Pareto optimalã).

Dacã mai putem spune cã u este dominatã de v.

Vom nota N(y) muløimea valorilor care dominã valoarea y din V. Avem deci

Putem acum sã definim muløimea de soluøie nedominatã. Vom spune cã o soluøie a problemei de optim este nedominatã dacã valoarea corespunzãtoare a funcøiei criteriu este nedominatã. Altfel spus soluøia x este nedominatã dacã ši numai dacã nu existã nici o altã soluøie care sã genereze o valoare a funcøiei criteriu ce dominã pe y=F(x).

Dacã x este o soluøie nedominatã spunem cã x este o soluøie eficace sau o soluøie Pareto optimalã.

Muløimea soluøiilor optimale ale problemei vectoriale de optim va fi

Muløimea P a soluøiilor Pareto optimale formeazã frontiera Pareto asociatã problemei respective.

Posibilitatea folosirii algoritmilor genetici în optimizarea vectorialã de tip Pareto a fost evidenøiatã de Goldberg (1989, a).

Tuturor indivizilor nedominaøi dintr-o populaøie P(t) li se atribuie rangul 1, apoi sunt îndepãrtaøi din populaøie. Muløimea indivizilor nedominaøi din populaøia rãmasã primesc rangul 2. Procesul continuã pânã când toøi indivizii din P(t) au fost etichetaøi. Rangul indivizilor este folosit pentru calcularea probabilitaøii de selecøie ši repreoducere.

Calcularea adecvãrii indivizilor poate include ši metode de tipul nišei ecologice. Astfel de metode au drept rezultat stabilizarea subpopulaøiilor multiple ce ocupã frontiera Pareto.

Srinivas ši Deb (1995) au dat un algoritm de optimizare Pareto în care este utilizatã metoda nišei ecologice. Algoritmul stabilešte soluøiile nedominate dintr-o populaøie P(t). Pentru aceste soluøii se recalculeazã adecvarea folosind metoda nišei ecologice. În acest fel toate soluøiile nedominate sunt egal favorizate. Se îndepãrteazã din populaøie cromozomii ce corespund soluøiilor nedominate. Procesul se repetã pânã când s-au obøinut toate submuløimile de soluøii nedominate din P(t).

Submuløimile reprezentând soluøiile nedominate realizeazã o partiøie a populaøiei P(t). Fiecare subpopulaøie corespunde unei niše ecologice. Prin procesul descris s-a realizat recalcularea valorilor de adecvare pentru întreaga generaøie P(t). Selecøia cromozomilor utilizeazã aceste valori de adecvare. Asupra cromozomilor selectaøi se aplicã operatorii genetici de recombinare, mutaøie, etc. Cromozomii pot fi codificaøi binar sau real.

Algoritmul urmãtor descrie în detaliu pašii metodei de optimizare vectorialã prezentatã mai sus. Algoritmul se referã la prelucrarea generaøiei P(t).

ALGORITMUL DE OPTIMIZARE PARETO

BAZAT PE NIŠA ECOLOGICÃ

P1. Din populaøia P(t) se stabilesc cromozomii ce corespund soluøiilor nedominate. Fie P1 subpopulaøia formatã din cromozomii ce descriu soluøiile nedominate.

P2. Se genereazã o valoare de adecvare mare. Fie A aceastã adecvare. Se atribuie aceastã adecvare fiecãrui membru al subpopulaøiei P1.

P3. Se recalculeazã adecvarea cromozomilor din P1 (soluøiile nedominate) aplicând metoda nišei ecologice. Acest mecanism de calcul al adecvãrii asigurã supravieøuirea fiecãrei soluøii.

Fiecãrui cromozom din P1 i se asociazã adecvarea sa calculatã în acest fel.

Fie v1 cea mai micã adecvare pentru cromozomii din P1.

P4. Subpopulaøia P1 este temporar îndepãrtatã din populaøia totalã P(t).

Fie P*(t) populaøia rãmasã dupã aceastã îndepãrtare.

P5. Se determinã soluøiile nedominate din populaøia rãmasã P*(t).

Fie P2 muløimea acestor soluøii nedominate.

P6. Fie v* o valoare apropiatã de v1 ši mai micã decât v1.

P7. Se considerã cã fiecare cromozom din P2 are adecvarea v*. Aceastã atribuire se face pentru a favoriza soluøiile din P1 în raport cu soluøiile din submuløimea P2 (submuløimea curentã).

P8. Se recalculeazã adecvarea cromozomilor din P2 utilizând tot tehnica nišei ecologice.

P9. Din populaøia rãmasã P*(t) se îndepãrteazã populaøia P2 corespunzãtoare noilor soluøii nedominate.

Procesul descris în pašii P5-P8 se repetã pânã când s-au obøinut toate submuløimile de soluøii nedominate. Aceste submuløimi formeazã o muløime complet ordonatã (un lanø). Fiecare cromozom al populaøiei aparøine unei astfel de submuløimi ši numai uneia. Lanøul submuløimilor de soluøii dominante realizeazã ašadar o partiøie a generaøiei P(t).

P10. Se aplicã operatorul de selecøie cromozomilor din P(t). Selecøia se face cu valorile de adecvare calculate în pašii anteriori.

P11. Se aplicã operatorii de încrucišare, mutaøie, inversiune ši/sau operatori speciali.

Algoritmul prezentat permite obøinerea unui numãr de soluøii Pareto-optimale.

Metoda utilizatã pentru calculul adecvãrii va stabiliza subpopulaøiile care apar în zonele de optim Pareto. Este astfel atenuatã competiøia excesivã între membri îndepãrtaøi ai populaøiei.

3. BIBLIOGRAFIE

Bäck, T. , Schwefel, H-P. (1993), An overview of evolutionary algorithms for parameter optimization, Evolutionary Computation, 1, 1-24 .

Goldberg, D. E. , Richardson (1987), Genetic algorithms with sharing for multimodal function optimization, Proceedings of the Second International Conference on Genetic Algorithms, 41-49 .

Goldberg, D. E. (1989, a), Genetic Algorithms in Search, Optimization and Machine Learning, Addison Wesley, Reading .

Goldberg, D. E. (1989, b), Size populations for serial and parallel genetic algorithms, in Proceedings of the Third International Conference on Genetic Algorithms, Morgan Kaufmann Publishers, San Mateo, California .

Horn, J. , Nafpliotis, N. (1993), Multiobjective optimization using niched Pareto genetic algorithms, Report, University of Illinois, Urbana .

Michalewicz, Z. (1992), Genetic Algorithms + Data Structures = Evolution Programs, Springer Verlag, Berlin .

Rawlins, G. J. E. (editor) (1990), Foundations of Genetic Algorithms, Morgan Kaufmann Publishers, San Mateo, California .

Schaffer, J. D. (1995), Some Experiments in Machine Learning using Genetic Algorithms, Tezã, Universitatea Vanderbilt .

Srinivas, N. , Deb, K. (1995), Multiobjective function optimization using nondominated sorting genetic algorithms, Evolutionary Computing, 2, 221-248 .

=== Capitolul7 ===

7

TEOREMA SCHEMELOR ŠI PROBLEME CONEXE

1. INTRODUCERE

Capitolul este consacrat prezentãrii unor rezultate matematice referitoare la algoritmii genetici standard. Aceste rezultate evidenøiazã mecanismele care stau la baza funcøionãrii algoritmilor genetici. Nu este vorba însã de a dezvolta o teorie generalã. Efortul se va concentra asupra unui model simplu de algoritm genetic. Vom considera codificarea binarã ši operatorii genetici uzuali (selecøie proporøionalã, încrucišare cu un punct de tãieturã ši mutaøie). Vom arãta cã în acest caz în populaøiile succesive, numãrul reprezentanøilor schemelor cu o performanøã superioarã mediei crešte exponenøial cu timpul (cu indicele generaøiei). Paralel vor descrešte schemele cu o performanøã sub medie. Acest rezultat cunoscut drept teorema schemelor ne asigurã cã procesul de cãutare realizat de un algoritm genetic evolueazã în sensul proliferãrii celor mai performante scheme paralel cu distrugerea schemelor neperformante.

Teorema schemelor constituie rezultatul teoretic fundamental privind algoritmii genetici standard. Importanøa rezultatului depãšešte cadrul modelului simplu pentru care a fost stabilit. Diferitele generalizãri ale modelului au avut în vedere îmbunãtãøirea performanøelor. Este ašadar natural sã admitem cã teorema schemelor funcøioneazã pentru algoritmii genetici în codificarea binarã în general. Din pãcate nu avem un rezultat similar pentru codificarea realã. Pare însã îndreptãøitã conjectura (presupunerea) cã ši pentru algoritmii genetici în codificarea realã acøioneazã un mecanism similar care permite proliferarea celor mai performante structuri. Demonstrarea unui rezultat de acest tip ridicã unele probleme tehinice, cum ar fi, în primul rând, o definiøie potrivitã a unor structuri de informaøie care sã joace aici rolul schemelor din codificare binarã. Un astfel de mecanism ar fi plauzibil ši pentru strategiile evoluøioniste, datã fiind similaritatea lor cu algoritmii genetici ce utilizeazã reprezentarea realã.

Teorema schemelor nu epuizeazã toate problemele legate de funcøionarea algoritmilor genetici. Ipoteza blocurilor constructive explicã felul în care proliferarea schemelor performante conduce în final la soluøia optimã. Conform acestei ipoteze, schemele performante, de ordin ši lungime utilã reduse (vom numi blocuri constructive schemele cu aceste caracteristici), se combinã pentru a forma în cromozomi subširuri de lungime tot mai mare ši cu performanøe tot mai înalte.

O altã problemã interesantã este stabilirea unor clase de probleme (de funcøii obiectiv) pentru care algoritmii genetici standard nu conduc la optimul global. Astfel de probleme limitative (respectiv funcøii de ešec – deceptive functions) sunt importante deoarece pot sugera noi cãi de ameliorare a algoritmilor genetici ši de înøelegere a complicatelor mecanisme ce genereazã comportatrea lor.

2. MÃRIMI CE CARACTERIZEAZÃ SCHEMELE

Pentru a putea formula teorema schemelor este necesar sã reamintim definiøia celor douã mãrimi specifice ale schemei: ordinul ši lungimea utilã.

Ordinul unei scheme S , notat O(S) , este numãrul de poziøii specifice ale schemei S .

Avem, de exemplu,

Lungimea utilã a unei scheme S , notatã (S) , este numãrul egal cu diferenøa dintre ultima ši prima poziøie specificã a schemei.

Exemple.

Spunem cã un cromozom x este o instanøã sau un reprezentatnt al schemei S de aceeaši lungime cu x dacã toate poziøiile specifice din S coincid cu poziøiile corespunzãtoare ale lui x . Mai putem spune ši cã x este o copie a schemei S .

Notãm cu n(S,t) numãrul de reprezentanøi ai unei scheme S în generaøia P(t) .

Performanøa (adaptarea, calitatea) medie a reprezentanøilor schemei S în populaøia P(t) se noteazã f(S,t) ši este

unde suma se ia în raport cu toøi reprezentanøii lui S în populaøia P(t) .

Observaøie.

Putem interpreta f(S,t) ca fiind adecvarea (performanøa) schemei S în generaøia P(t).

Performanøa medie a întregii populaøii P(t) se noteazã F(t) ši este

unde N este numãrul de indivizi ai populaøiei P(t) .

3. DINAMICA SCHEMELOR

În cele ce urmeazã ne propunem sã studiem mecanismele care asigurã funcøionarea ši performanøa algoritmilor genetici. Ne vom limita la un model simplu de algoritm genetic. Vom considera algoritmul genetic standard având urmãtoarele caracteristici:

– codificare binarã

– selecøie proporøionalã

– încrucišare cu un singur punct de tãieturã

– mutaøie tare

Analizând efectul operatorilor genetici asupra acestui algoritm genetic simplu vom deduce teorema schemelor sau teorema fundamenmtalã a algoritmilor genetici, care descrie crešterea în populaøie a schemelor cu adecvare peste medie.

Fie S o schemã prezentã în generaøia de la momentul t . Dorim sã stabilim evoluøia numãrului reprezentanøilor schemei S . Ceea ce intereseazã în primul rând este stabilirea unei legãturi între numãrul reprezentanøilor schemei S în populaøiile P(t) ši P(t+1) . Aceasta revine la stabilirea unei dependenøe funcøionale de tipul

Funcøia g exprimã dinamica scemei S .

Pentru stabilirea dinamicii schemei vom considera separat efectul operatorilor genetici. Aceste efecte vor fi apoi reunite în teorema schemelor.

4. EFECTUL SELECØIEI ASUPRA DINAMICII SCHEMELOR

Fie n(S,t) numãrul reprezentanøilor schemei S în populatia P(t) . Considerãm selecøia proporøionalã. Probabilitatea de selecøie a cromozomului xi este

Admitem cã fiecare generaøie conøine N indivizi. Pentru trecerea de la generaøia P(t) la generaøia P(t+1) operatorul de selecøie se aplicã de N ori. La fiecare aplicare a operatorului, oricare dintre cei n(S,t) reprezentanøi ai schemei S poate fi selectat.

La N aplicãri ale operatorului de selecøie, individul xi va fi selectat, în medie, de ni ori, unde

Fãrã a restrânge generalitatea, presupunem cã reprezentanøii schemei S sunt numerotaøi 1, 2, . . . , n(S,t) . Însumând numãrul mediu de descendenøi gãsim cã la momentul (t+1) schema S va avea, în medie,

reprezentanøi.

Înlocuind în aceastã egalitate expresia lui ni obøinutã mai sus gãsim

ceea ce se mai poate scrie

Øinând cont de expresia performanøei medii F(t) a întregii populaøii ši performanøei medii f(S,t) a schemei S , avem

Am obøinut un rezultat privind dinamica schemei S la aplicarea selecøiei. Acest rezultat se poate enunøa sub forma urmãtoarei propoziøii (Holland, 1975):

Propoziøie. Considerãm un algoritm genetic în care acøioneazã doar selecøia proporøionalã. Dacã schema S are n(S,t) reprezentanøi în generaøia P(t) atunci vom avea, în medie,

reprezentanøi ai schemei S în urmãtoarea generaøie.

Sã admitem cã S este o schemã care la generaøia t are o adecvare superioarã adecvãrii medii F(t) a populaøiei P(t) . Acest lucru se scrie

Din aceastã inegalitate rezultã cã

Ašadar o schemã cu o performanøã peste medie va crešte,adicã va avea mai muløi reprezentanøi.

În mod similar se observã cã o schemã de calitate sub medie tinde sã disparã (are mai puøini reprezentanøi) în generaøiile urmãtoare.

Sã admitem acum cã la fiecare generaøie schema S este cu o fracøiune din F(t) superioarã mediei. Putem atunci scrie

unde este o constantã pozitivã.

Dacã în ecuaøia care descrie dinamica schemelor punem

obøinem

Punând t = 0 , din aceastã egalitate avem

Rezultã atunci cã

Prin inducøie, stabilim egalitatea

Aceastã egalitate ne permite sã formulãm urmãtorul rezultat:

Propoziøie. Prin selecøie proporøionalã numãrul reprezentanøilor unei scheme având o adecvare peste medie crešte exponenøial. Numãrul reprezentanøilor unei scheme cu adecvare sub medie descrešte exponenøial.

5. EFECTUL RECOMBINÃRII ASUPRA DINAMICII SCHEMELOR

Ne limitãm la cazul operatorului de recombinare cu un singur punct de tãieturã.

Fie S o schemã de lungime r ši de lungime utilã (S). Existã (r-1) puncte de încrucišare. Schema este distrusã cu o mare probabilitate dacã punctul de tãieturã cade între douã simboluri specifice. Rezultã cã existã (S) puncte de tãieturã care conduc (cu mare probabilitate) la distrugerea schemei. Probabilitatea ca schema S sã fie distrusã în urma încrucišãrii poate fi aproximatã prin raportul dintre numãrul de puncte de tãieturã ce distrug schema ši numãrul total al punctelor de tãieturã posibile. Probabilitatea de distrugere a schemei S poate fi ašadar aproximatã prin

Sã notãm cã p este de fapt o margine superioarã a probabilitãøii de distrugere, deoarece nu am luat în considerare ši efectul schemei cu care se face încrucišarea. A doua schemã poate, prin încrucišare, restabili schema iniøialã, chiar dacã punctul de tãieturã este între douã poziøii specifice. Sã exemplificãm considerând schema

ši schema

.

Conform formulei, probabilitatea ca S sã fie distrusã prin încrucišare este

Prin încrucišare, cu orice punct de tãieturã, a celor douã scheme obøinem aceleaši scheme. Deci nici S ši nici S1 nu sunt distruse. Evident, aceasta este o situaøie cu totul particularã, care evidenøiazã însã limitele formulei stabilite.

Probabilitatea realã, notatã p1, ca schema S sã fie distrusã prin încrucišare este ašadar mai micã decât p . Avem deci

Aceastã formulã corespunde aplicãrii cu certitudine (probabilitate 1) a încrucišãrii asupra schemei S . Sã luãm acum în considerare faptul cã, în realitate, operatorul de încrucišare este aplicat schemei S (ca ši oricãrei alte scheme) cu o probabilitate subunitarã pc.s . Selectarea pentru încrucišare a schemei S nu influenøeazã alegerea punctului de tãieturã. Ašadar selectarea pentru încrucišare ši alegerea punctului de tãieturã sunt evenimente independente. Rezultã cã probabilitatea p2 ca schema sã fie distrusã este produsul probabilitãøilor p ši pc,s . Avem deci

Considerentele invocate mai sus (legate de posibilitatea refacerii schemei S printr-o încrucišare convenabilã) ne duc la concluzia cã probabilitatea realã pd ca schema S sã fie distrusã este mai micã decât probabilitatea calculatã p2 . Avem ašadar

Probabilitatea ca schema S sã supravieøuiascã aplicãrii cu probabilitatea pc,s a operatorului de încrucišare este

Vom numi ps probabilitatea de supravieøuire a schemei S.

Øinând cont de inegalitatea precedentã obøinem

6. EFECTUL SELECØIEI ŠI RECOMBINÃRII

În cazul selecøiei am stabilit ecuaøia

ce exprimã evoluøia a numãrului de reprezentanøi ai schemei S . Ne întrebãm cum se va modifica ecuaøia de evoluøie dacã luãm în considerare ši recombinarea. Vom observa cã urmarea efectului recombinãrii în populaøia P(t+1) nu se vor regãsi toøi reprezentanøii lui S daøi de ecuaøia de evoluøie (1). Notãm cu n s,c (S,t+1) numãrul de reprezentanøi ai schemei S în P(t+1) rezultaøi în urma selecøiei urmate de încrucišare.

Putem considera cã probabilitatea de supravieøuire ps reprezintã raportul numãrului de reprezentanøi ai schemei în generaøia P(t+1) corespunzând prezenøei ši respectiv absenøei recombinãrii. Avem deci

Din aceastã egalitate obøinem ecuaøia de evoluøie

Øinând cont de inegalitatea stabilitã pentru ps ši de forma lui n(S,t+1) gãsim

Rezultatul stabilit ne permite sã enunøãm urmãtoarea propoziøie:

Propoziøie. Considerãm un algoritm genetic cu selecøie proporøionalã ši recombinare cu un singur punct de tãieturã. Fie pc.s probabilitatea de aplicare a recombinãrii. Numãrul ns,c(S,t+1) al reprezentanøilor schemei S în generaøia P(t+1) satisface inegalitatea

unde n(S,t) este numãrul reprezentanøilor schemei în generaøia P(t), r este lungimea schemei, iar (S) lungimea sa utilã.

Observaøie. Rezultatul stabilit este o variantã ušor modificatã a celui obøinut de Holland, 1975 (parametrul pc,s este înlocuit cu pc).

Observaøie. În cele ce urmeazã, pentru simplitate, vom suprima indicii s,c scriind n(S,t+1) în loc de n s,c (S,t+1).

Din inegalitatea

se observã cã evoluøia numãrului reprezentanøilor schemei S depinde de doi factori:

(i) raportul dintre performanøa f(S,t) a schemei S ši performanøa medie F(t) a generaøiei t.

(ii) lungimea utilã a schemei .

Cu cât performanøa unei scheme este mai mare decât performanøa medie a generaøiei t cu atât schema va avea mai muløi reprezentanøi în generaøia urmãtoare (t+1). Ašadar evoluøia favorizeazã supravieøuirea celor mai performante scheme. Aceastã evoluøie este efectul selecøiei, dupã cum am vãzut anterior.

Cel de-al doilea factor ne sugereazã cã pentru douã scheme având aceeaši adecvare schema de lungime utilã mai micã va avea mai muløi reprezentanøi în generaøia urmãtoare.

Am stabilit ašadar urmãtorul rezultat calitativ:

Frecvenøa schemelor având performanøa (adecvarea) mai mare decât media ši o lungime utilã micã va crešte în generaøia urmãtoare. Schmele care îndeplinesc aceste condiøii au un rol esenøial în evoluøia cãutãrii spre un punct de optim global.

Crešterea (descrešterea) numãrului de reprezentanøi ai schemelor cu performanøã peste (sub) medie este exponenøialã (vezi raøionamentul relativ la efectul selecøiei). Acest rezultat exprimã paralelismul implicit al cãutãrii genetice ši dã seamã de viteza procesului de cãutare.

7. EFECTUL MUTAØIEI

Vom considera acum dinamica schemelor atunci când este luat în considerare ši operatorul de mutaøie. În acest caz probabilitatea de supravieøuire a schemei va depinde de probabilitatea de mutaøie ši de ordinul schemei.

Pentru ca o schemã S sã supravieøuiascã acøiunii operatorului de mutaøie trebuie ca toate poziøiile ei specifice sã supravieøuiascã. Vom considera aici varianta tare a operatorului de mutaøie, cea în care acøiunea mutaøiei transformã în mod obligatoriu valoarea unei gene m. Probabilitatea de mutaøie pm este probabilitatea ca o poziøie oarecare (o genã) sã-ši schimbe valoarea. Rezultã cã probabilitatea ca o poziøie oarecare a schemei sã supravieøuiascã acøiunii mutaøiei este (1-pm).

Sã admitem acum cã existã o schemã S fãrã poziøii specifice (de lungime zero). Aplicarea operatorului de mutaøie nu va modifica aceastã schemã, adicã probabilitatea ei de supravieøuire este unu. Dacã schema are o poziøie specificã (lungime unu) atunci probabilitatea ei de supravieøuire este (1-pm). Aceste observaøii pot fi generalizate pentru o schemã cu un numãr de poziøii specifice O(S) >1. Putem ašadar enunøa urmãtorul rezultat:

Propoziøie. Fie S o schemã de ordinul O(S) (cu O(S) poziøii specifice). Probabilitatea ca schema S sã supravieøuiascã aplicãrii operatorului de mutaøie este

Demonstraøie: Vom proceda prin inducøie în raport cu lungimea schemei. Am vãzut cã pentru O(S) = 0 avem

Pentru O(S) = 1 am stabilit egalitatea

Presupunem acum cã pentru o schemã de ordinul k avem

Fie S o schemã de ordinul (k+1). Conform presupunerii fãcute, probabilitatea ca primele k poziøii specifice ale schemei sã supravieøuiascã mutaøiei este

Probabilitatea de supravieøuire a ultimei poziøii specifice este (1-pm). Mutaøia celorlaltor poziøii (nespecifice) ale schemei nu afecteazã supravieøuirea schemei.

Reamintim cã dacã A ši B sunt douã evenimente independente, probabilitatea de realizare simultanã a celor douã evenimente este produsul probabilitãøilor evenimentelor:

Mutaøia oricãrei poziøii este un eveniment independent de toate celelalte mutaøii. Rezultã cã mutaøia ultimei poziøii specifice este independentã de mutaøia primelor k poziøii specifice. Prin urmare, probabilitatea de supravieøuire a schemei de ordinul (k+1) va fi

ceea ce completeazã demonstraøia.

Probabilitatea de mutaøie fiind micã putem scrie

Putem ašadar aproxima prin (1 – pmO(S)) probabilitatea de supravieøuire a schemei S la acøiunea mutaøiei.

8. TEOREMA SCHEMELOR. BLOCURI CONSTRUCTIVE

Vom considera acum efectul combinat al selecøiei, recombinãrii ši mutaøiei. Cei trei operatori acøioneazã independent. Probabilitatea de supravieøuire a schemei este produsul probabilitãøilor de supravieøuire corespunzãtoare celor trei operatori.

Dinamica numãrului de copii (de reprezentanøi) ai unei scheme S va satisface inegalitatea

Neglijând produsul

obøinem urmãtorul rezultat care reprezintã teorema fundamentalã a algoritmilor genetici (Holland, 1975).

Teorema schemelor (Teorema fundamentalã a algoritmilor genetici). Admitem cã operatorii genetici utilizaøi sunt selecøia proporøionalã, încrucišarea cu un singur punct de tãieturã ši mutaøia tare. Dinamica numãrului de reprezentanøi ai unei scheme S este caracterizatã de inegalitatea

Se observã cã o schemã are cu atât mai multe copii în generaøia (t+1) cu cât ordinul ei este mai mic. Rezultatul global obøinut evidenøiazã faptul cã frecvenøa schemelor cu o performanøã peste medie, scurte ši cu ordin mic, tinde sã creascã în generaøiile urmãtoare. Crešterea este una exponenøialã. Acest rezultat reprezintã o bazã teoreticã a încrederii în potenøialul aplicativ al algoritmilor genetici standard.

Schemele care au o performanøã peste medie, ordin ši lungime utilã mici, se numesc blocuri constructive. Blocurile constructive sunt deci acele scheme care prolifereazã de-a lungul generaøiilor, realizând progresul cãutãrii.

Sã notãm cã în definiøia blocurilor constructive se face uneori apel fie la lungimea utilã a schemelor, fie la ordinul lor. De regulã cele douã mãrimi sunt în concordanøã, dar nu în toate cazurile. Sã considerãm, de exemplu, schema

având lungimea r =101. Aceastã schemã are urmãtoarele caracteristici:

Observãm cã ordinul ši lungimea utilã a schemei considerate diferã prin douã ordine de mãrime.

9. IPOTEZA BLOCURILOR CONSTRUCTIVE

Când operatorii unui algoritm genetic acøioneazã asupra unei populaøii se formeazã un numãr de blocuri constrctive. Poziøiile specifice ale blocurilor constructive sunt de regulã bine grupate, ceea ce asigurã o lungime utilã redusã. Diferitele blocuri constructive corespund ašadar la subširuri având diferite poziøii în širurile ce reprezintã cromozomii.

Exemplu.

Pentru o populaøie formatã din širuri de lungime r =7, urmãtoarele scheme pot reprezenta blocuri constructive:

Putem admite cã prin acøiunea operatorilor genetici blocurile constructive se combinã pentru a forma subširuri tot mai mari ši cu performanøe tot mai bune. În final, acest proces de combinare converge la soluøia optimã. Acest model este cunoscut drept Ipoteza Blocurilor Constructive (Building Block Hypothesis). În absenøa unei demonstraøii riguroase a convergenøei algoritmilor genetici, teorema schemelor ši ipoteza blocurilor constructive furnizeazã o explicaøie intuitivã a succesului algoritmilor genetici. Aceste considerente ne permit sã identificãm blocurile constructive ca fiind unitãøile fundamentale de prelucrare în algoritmii genetici.

Sã presupunem cã S este o schemã ce are o bunã performanøã ši care este extrem de utilã procesului de cãutare. Ar fi deci util sã asigurãm supravieøuirea acestei scheme în urmãtoarele generaøii. Dacã am putea sã reducem ordinul ši lungimea utilã a schemei, atunci ar crešte incidenøa acestei scheme în generaøiile urmãtoare.

Observãm cã ordinul schemei ši lungimea sa utilã nu sunt mãrimi simetrice. Nu putem prin nici un mijloc sã micšorãm ordinul schemei fãrã a o distruge. În schimb lungimea utilã este o mãrime legatã de topologia schemei. Întrebarea este cum am putea schimba topologia pãstrând nealteratã semnificaøia schemei. Cea mai simplã idee este de a asocia fiecãrei gene un indice indicând poziøia genei în schemã. Putem atunci permuta oricum genele, fãrã a altera esenøa schemei. Schema ar deveni astfel invariantã la permutãri ale poziøiilor sale (specifice sau nu). Putem face ašadar ca prin permutãri toate poziøiile specifice sã fie grupate, adicã neseparate de poziøii nespecifice (caracterul ). O astfel de transformare minimizeazã lungimea utilã a schemei, determinând o creštere a šanselor ei de supravieøuire. Aceastã idee a dus la considerarea unei clase speciale de algoritmi genetici, numiøi algoritmi genetici dezordonaøi (messy).

Rezumând, putem sublinia principalele concluzii obøinute din teorema schemelor:

(i) Conform teoremei schemelor, blocurile constructive (schemele scurte, de ordin mic ši adecvare peste medie) vor avea o creštere exponenøialã în urmãtoarele generaøii.

(ii) Dacã o schemã are o adecvare inferioarã mediei, atunci numãrul reprezentanøilor ei în generaøiile urmãtoare descrešte exponenøial.

(iii) Blocurile constructive ši combinaøiile lor folosite pentru a forma subširuri utile tot mai lungi, reprezintã cel mai important mecanism de lucru al algoritmilor genetici (Ipoteza blocurilor constuctive).

(iv) Codificarea binarã evidenøeazã numãrul mare de scheme prelucrate în paralel de un algoritm genetic. Acest paralelism intrinsec poate fi pus în legãturã cu eficienøa cãutãrii ši cu viteza de convergenøã.

10. FUNCØII DE EŠEC

Teorema schemelor ši ipoteza blocurilor constructive ne furnizeazã un model al proceselor ce guverneazã funcøionarea algoritmilor genetici. Nu avem însã rezultate teoretice care sã indice ce condiøii trebuie sã satisfacã o funcøie criteriu pentru ca algoritmul genetic standard sã conducã la optimul global. Reciproc, nu štim ce variantã de algoritm genetic cã cele mai bune rezultate pentru o clasã datã de funcøii obiectiv. Din aceste motive suntem interesaøi de înøelegerea acelor probleme pentru care algoritmii genetici (sau aløi algoritmi evolutivi) duc la rezultate eronate. Astfel de probleme pot fi numite probleme limitative.

Suntem ašadar conduši la cãutarea unor funcøii sau clase de funcøii (numite funcøii de ešec – deceptive functions) pentru care algoritmii genetici ešueazã. Cãutarea funcøiilor de ešec ši a metodelor pentru rezolvarea problemelor limitative au permis o mai bunã înøelegere a mecanismelor algoritmilor genetici. Primele lucrãri în aceastã direcøie sunt datorate lui Bethke (1980) ši Goldberg (1987). Pentru o trecere în revistã a principalelor rezultate vezi Goldberg (1992).

În ciuda simplitãøii aparente, algoritmii genetici sunt sisteme probabiliste complexe caracterizate prin neliniaritate, dimensiune mare ši faøete multiple. Din acest motiv, algoritmii genetici pot interacøiona cu problemele într-o infinitate de moduri.

În mod obišnuit algoritmii genetici combinã scheme scurte, de ordin mic ši adecvare peste medie pentru a forma blocuri constructive de ordin mai mare. Operatorul de selecøie va favoriza blocurile constructive de ordin mic iar operatorul de recombinare va combina aceste blocuri constructive în blocuri mai mari.

Dacã într-o problemã blocurile constructive de ordin mic sunt instanøe ale optimului global, atunci algoritmii genetici standard converg spre optimul global. Dacã, dimpotrivã, schemele de ordin mic nu sunt instanøe ale soluøiei optime globale, atunci este posibil ca algoritmul sã conveargã spre o soluøie suboptimalã (un optim local) ši nu spre soluøia globalã. Funcøiile de acest fel pot fi considerate drept funcøii de ešec. Condiøia ca o problemã sã fie limitativã este ca schemele de ordin mic sã fie nesatisfãcãtoare ši sã nu se combine în blocuri constructive de ordin mai mare. O funcøie de ešec are un optim global ši unul sau mai multe optime locale. În cazul extrem schemele de ordin mic corespunzând unei soluøii suboptimale (optim local) au o adecvare mai mare decât celelalte scheme. Rezultã cã în aceastã situaøie combinaøiile (schemele) de ordin mic tind sã favorizeze comlementele combinaøiilor de ordin mare necesare pentru atingerea optimului global.

Este evident cã în cazul funcøiilor de ešec, algoritmii genetici clasici cu operatorii standard consideraøi în teorema schemelor nu conduc la rezultate satisfãcãtoare (nu obøin optimul global). Pentru rezolvarea problemelor limitative s-au propus diferite metode, cum ar fi utilizarea operatorului de inversiune sau a algoritmilor genetici dezordonaøi.

11. BIBLIOGRAFIE

Bethke, A. D. (1980), Genetic Algorithms as Function Optimizers, Ph. D. Thesis, University of Michigan .

Goldberg, D. E. (1987), Simple genetic algorithms and the minimal, deceptiv problem, in L. Davis (editor) Genetic Algorithms and Simulated Annealing, Pitman, London, 74 -88 .

Goldberg, D. E. (1989), Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, New York .

Goldberg, D. E. (1992), Construction of high-order deceptive functions using low-order Walsh coefficients, Annals of Mathematics and Artificial Intelligence, 5, 35-48 .

Holland, J. (1975), Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor .

=== Capitolul8 ===

8

ALTE ABORDÃRI PRIVIND ALGORITMII GENETICI. PROGRAMAREA GENETICÃ

1. INTRODUCERE

În literatura de specialitate existã numeroase abordãri care vizeazã modificarea unor aspecte esenøiale ale algoritmilor genetici în vederea crešterii performanøelor. Acest capitol este consacrat unor astfel de abordãri.

Algoritmii genetici dezordonaøi (messy genetic algorithms) introduši de Goldberg, Korb ši Deb (1989), folosesc o codificare binarã de lungime variabilã a cromozomilor. Fiecare genã se reprezintã printr-o pereche (poziøie, valoare). Aceastã reprezentare flexibilã asigurã adaptarea la o varietate mai mare de situaøii (utilizarea unor informaøii incomplete, de exemplu). În plus, ea previne apariøia problemelor legate de distrugerea prin recombinare a unor blocuri utile (problema legãrii variabilelor importante).

Operatorii utilizaøi de algoritmii dezordonaøi sunt generalizãri ale operatorilor genetici standard utilizând codificarea binarã. Algoritmii de lungime variabilã pot fi generalizaøi ši pentru codificarea realã, ca ši pentru strategiile evoluøioniste.

Codificarea delta folosešte un mecanism de adaptare care este separat de mecanismul cãutãrii propriu-zise a soluøiilor. Existã astfel un proces cu douã nivele. Primul este nivelul soluøiilor potenøiale. La al doilea nivel (nivelul delta) se determinã perturbaøia (modificarea) optimã a soluøiei curente.

Altã problemã consideratã în acest capitol este cea a genelor recsive, adicã a genelor care deši prezente în cromozom nu se manifestã. Despre genele recesive putem vorbi în cazul în care genotipul unui individ conøine doi cromozomi (fenomenul de diploidie). Genele similare se referã la aceeaši funcøie, dar una singurã deøine controlul asupra calitãøii respective (este dominantã). Diploidia reprezintã un mecanism suplimentar de adaptare. O caracteristicã poate dispare când condiøiile de mediu o cer ši poate reveni atunci când modificãrile mediului o fac din nou utilã.

Algoritmii genetici bazaøi pe diploidie sunt adecvaøi în tratarea unor probleme dificile, cum ar fi cea a problemelor de optim nestaøionare.

Paragraful urmãtor este consacrat studierii algoritmilor genetici dezordonaøi. Se prezintã schema de codificare ši operatorii genetici respectivi. Paragraful 3 este dedicat codificãrii delta. În finalul capitolului se trateazã succint fenomenele de diploidie ši dominanøã.

2. ALGORITMI GENETICI DEZORDONAØI

2.1. Schema de codificare

Dupã cum am vãzut blocurile constructive reprezintã principalul instrument care ne poate cãlãuzi în explicarea succeselor ši ešecurilor algoritmilor genetici. Intuitiv putem considera cã un bloc constructiv este o combinaøie de gene (biøi) importantã pentru rezolvarea unei probleme particulare. Pentru ca o astfel de combinaøie sã se pãstreze în procesele de recombinare este necesar ca genele ce o compun sã fie ašezate compact. Prin urmare algoritmii genetici lucreazã bine dacã blocurile constructive sunt codificate grupat în interiorul cromozomului.

Prin acøiunea operatorului de recombinare combinaøiile utile pot sã creascã, generând soluøii tot mai apropiate de optimul global. Crešterea blocurilor constructive are însã loc doar dacã legãturile dintre genele ce le compun sunt suficient de puternice pentru a preveni recombinarea prin despicarea combinaøiilor utile. Aceastã dificultate reprezintã problema legãrii (linkage problem) variabilelor importante. Intensitatea legãturii este cu atât mai mare cu cât poziøiile specifice ale combinaøiei sunt mai grupate. Ašadar clusterizarea (gruparea) poziøiilor unei scheme este o mãsurã a intensitãøii de legãturã (coeziunea internã a schemei).

Putem evidenøia douã situaøii în care algoritmii genetici standard nu conduc la soluøia optimã. Aceste situaøii sunt:

(i) Legãtura dintre componentele unor combinaøii (scheme) utile nu este suficient de puternicã ši deci combinaøiile pot fi distruse prin recombinare. Sã observãm cã problema legãrii este una de codificare. O codificare mai adecvatã poate duce la crešterea coeziunii combinaøiilor utile.

(ii) Funcøia criteriu este una de ešec (deceptive function).

Holland (1975) a sugerat cã folosirea operatorilor de reordonare (cum ar fi operatorul de inversiune) ar putem rezolva problema legãrii prin generarea unor combinaøii utile suficient de strânse. S-a dovedit însã cã astfel de operatori nu sunt suficient de puternici pentru a depãši codificarea inadecvatã.

În cele ce urmeazã vom prezenta un nou tip de algoritmi genetici capabili sã depãšeascã dificultãøile mai sus menøionate. Ideea de bazã este de a obøine soluøii tot mai bune prin tãierea ši alipirea soluøiilor parøiale. Aceste operaøii, deši analoage cu cele din algoritmii genetici clasici, sunt mai generale decât acestea. Astfel, de exemplu, este permis ca un cromozom sã fie fragmentat ši segmentele obøinute sã fie reordonate.

Goldberg, Korb ši Deb (1989) au propus o generalizare a algoritmilor genetici cunoscutã drept algoritmi genetici dezordonaøi (messy genetic algorithms). În aceastã abordare lungimea cromozomilor este variabilã, iar genele pot fi aranjate în orice ordine. Ultima caracteristicã a dat numele acestui tip de algoritmi.

Fiecare genã este reprezentatã printr-o pereche de numere întregi. Prima componentã specificã semnificaøia genei, care în cazul codificãrii standard este determinatã de poziøia în interiorul cromozomului. Al doilea numãr reprezintã valoarea genei. În mod standard valoarea genei este 0 sau 1.

Exemplu.

Considerãm cromozomul codificat binar

Acest cromozom poate fi transformat în širul de perechi

În paradigma algoritmilor genetici dezordonaøi, širul x’ reprezintã un individ (un cromozom). Semnificaøia acestui cromozom nu se schimbã dacã perechile sunt dispuse în orice altã ordine. De exemplu, cromozomul x’ de mai sus este echivalent cu cromozomul

2.2. Incompletitudine ši ambiguitate

Structura flexibilã a cromozomilor permite considerarea unor cromozomi din care lipsesc una sau mai multe gene (subspecificare). Aceastã posibilitate corespunde abilitãøii de a codifica ši de a lucra cu informaøie incompletã. Situaøia opusã este supraspecificarea. Ea corespunde prezenøei repetate a unei gene într-un cromozom. De exemplu, cromozomul

posedã douã gene 3 (acestea sunt (3,0) ši (3,1) ) cu valorile contradictorii 0 ši 1.

Supraspecificarea poate fi corelatã cu abilitatea algoritmilor genetici dezordonaøi de a codifica ši manipula informaøii ambigue sau contradictorii. Pentru rezolvarea conflictului generat de prezenøa genelor contradictorii este necesar sã dispunem de un mecanism adecvat de ridicare a nedeterminãrii. Un astfel de mecanism simplu se poate dezvolta pe baza regulii “primul venit primul servit”. Conform acestei reguli, doar prima apariøie (cea mai din stânga) a genei în cromozom este luatã în considerare.

Algoritmii genetici dezordonaøi tolereazã incompletitudinea datoritã capacitãøii de a evalua, fie ši parøial, cromozomii incompleøi. Pentru a determina adecvarea unui cromozom incomplet se poate proceda în diferite moduri. O posibilitate ar fi sã încercãm sã aproximãm valoarea absentã sau sã gãsim probabilitatea p ca gena lipsã sã aibã valoarea 1 (probabilitatea valorii 0 va fi evident 1-p). O altã posibilitate ar fi sã cãutãm cromozomul complet cel mai apropiat de cromozomul incomplet. Adecvarea ultimului ar putea fi aproximatã prin adecvarea cromozomului complet.

2.3. Operatorii genetici

Algoritmii genetici dezordonaøi utilizeazã operatori care reprezintã generalizãri ale operatorilor clasici. Uneori diferenøele dintre operatori sunt însã neglijabile. Diferenøe majore apar în cazul operatorului de recombinare.

2.3.1. Recombinarea

În tipul de recombinare ce va fi considerat încrucišarea clasicã este înlocuitã cu operaøiile de tãiere ši alipire. Doi pãrinøi sunt secøionaøi în douã pãrøi ši subširurile rezultate sunt recombinate. Poziøia punctului de tãieturã se alege cu o probabilitate uniformã în raport cu lungimea širului. Deosebirea faøã de cazul clasic constã în faptul cã punctele de tãieturã sunt independente în cei doi pãrinøi.

Operaøia de alipire concateneazã subširurile obøinute prin tãiere. Nu existã nici o restricøie privind felul în care subširurile se recombinã. Putem obøine un descendent combinând subširuri provenind din doi pãrinøi sau din unul singur. Subširurile se pot ašadar alipi în orice ordine sau combinaøie.

Exemplu.

Considerãm cromozomii

a b

x :

c d

y :

Admitem cã pentru primul cromozom punctul de tãieturã este t = 2 iar pentru cel de-al doilea punctul de tãieturã este t’= 3. Notãm cu a ši b subširurile cromozomului x ši cu c ši d subširurile lui y.

Dãm mai jos o listã a cromozomilor obøinuøi prin recombinare:

a d

(i) a – d :

a c

(ii) a – c :

c a

(iii) c – a :

c b

(iv) c – b :

d a

(v) d – a :

d b

(vi) d – b :

d c

(vii) d – c :

b a

(viii) b – a :

b c

(ix) b – c :

b d

(x) b – d :

Sã observãm cã operatorul de recombinare include ši o operaøie de tip inversiune. Acest lucru este manifest în cazul când ambele subširuri provin de la acelaši cromozom (cromozomii b – a ši d – c din exemplele de mai sus). În raport cu încrucišarea clasicã ši exemplele b – d , b – c , d – a , d – b implicã o inversiune.

Operatorul de recombinare poate fi generalizat pentru a permite existenøa punctelor de tãieturã multiple.

2.3.2. Mutaøia

Operatorul de mutaøie acøioneazã la fel ca ši în cazul clasic. Mutaøia afecteazã doar valoarea unei gene nu ši semnificaøia (poziøia ei). Probabilitatea de mutaøie pm este un numãr mic (pm 10-3 ).

La fel ca ši în cazul clasic, operatorul de mutaøie poate avea o formã tare ši una slabã. Forma tare schimbã totdeauna valoarea genei selectatã pentru mutaøie. Astfel, de exemplu, gena (3,0) se transformã în gena (3,1). În forma slabã a operatorului de mutaøie existã o probabilitate fixatã (de regulã p=0.5) pentru ca gena selectatã sã-ši schimbe valoarea.

Rezultate experimentale

Algoritmii genetici dezordonaøi au dat rezultate satisfãcãtoare în cazul unor probleme grele (Goldberg, Deb, Korb (1990)). Chiar ši în cazul funcøiilor criteriu (funcøii de ešec) constituite special pentru a “pãcãli” algoritmii genetici dezordonaøi aceštia au gãsit totdeauna soluøia optimã. Timpul de cãutare este polinomial (crešte ca o funcøie polinomialã) în raport cu numãrul de variabile. Într-o implementare paralelã, timpul de cãutare este mai redus, fiind logaritmic în raport cu numãrul de variabile ale spaøiului de cãutare.

2.3.3. Posibilitãøi de generalizare

Algoritmii genetici dezordonaøi, aša cum au fost prezentaøi mai sus, folosesc reprezentarea binarã a cromozomilor. Este natural sã admitem cã modelul poate fi extins pentru a permite ši reprezentarea realã. Pentru reprezentarea realã existã numeroase variante ale operatorului de recombinare, ceea ce ne poate dispensa de efortul de a considera noi operatori. Evident pot fi definiøi ši noi operatori. Ar fi interesant, de exemplu, sã definim variante continue ale operatorului de recombinare bazat pe tãiere ši alipire.

O altã posibilitate de generalizare constã în a considera cromozomi de forma (xi,i) unde iar este vectorul parametrilor de control. Dacã pentru un individ avem ki < n înseamnã cã în individul respectiv anumite variabile obiect sunt absente. Din punct de vedere biologic acest lucru poate însemna cã pentru un astfel de individ anumite caracteristici nu sunt relevante. Aceastã reprezentare poate conduce la strategii evoluøioniste dezordonate sau la programarea evolutivã dezordonatã.

3. CODIFICAREA DELTA

Codificarea delta (delta coding, Whitley, Mathias, Fitzhorn, 1991) reprezintã o interesantã modificare a algoritmilor genetici. Unele idei privind codificarea dinamicã a parametrilor pot fi gãsite în Schrandolph ši Belew (1990).

Codificarea delta a fost dezvoltatã iniøial pentru o reprezentare binarã a indivizilor. Cu toate acestea mecanismul pare mai potrivit pentru cazul reprezentãrii reale. Codificarea delta realã nu este doar mai naturalã ši mai simplã ci permite îmbunãtãøirea performanøelor de timp ši precizie.

Considerãm cã soluøiile potenøiale se reprezintã prin vectori xRn. Un vector Rn reprezintã perturbaøii (schimbãri mici) care pot ameliora soluøia curentã. Codificarea delta acøioneazã asupra unei populaøii de soluøii ši asupra unei populaøii de perturbaøii ale acestor soluøii. Putem vorbi de un mecanism de cãutare (sau învãøare) cu douã nivele: nivelul soluøiilor potenøiale ale problemei (sã-l numim nivelul x) ši nivelul perturbaøiilor delta (nivelul ).

Un mecanism de învãøare similar este specific strategiilor evolutive, unde avem deasemenea un nivel al vectorilor soluøie ši un nivel al parametrilor de control. În strategiile evolutive cele douã nivele sunt mai puøin separate, ele fiind detectabile la fiecare iteraøie. În codificarea delta existã o separare ši o ierarhizare mult mai nete a celor douã nivele.

În codificarea delta comunicarea între cele douã nivele se realizeazã ši prin intermediul funcøiei de evaluare.

Mecanismul codificãrii delta poate fi descris dupã cum urmeazã:

Iniøializarea

Se iniøializeazã o populaøie P(0)={x1, x2, . . . , xn}, xiRn de soluøii potenøiale.

Nivelul x

Se aplicã un algoritm genetic, utilizând o funcøie de evaluare f ši populaøia iniøialã P(0).

Fie x* soluøia obøinutã la terminarea algoritmului genetic.

Nivelul

Se iniøializeazã aleator o populaøie Q(0)={1, 2, . . . , n} de perturbaøii.

Se aplicã un operator genetic având Q(0) ca populaøie iniøialã.

Se considerã calitatea g() a individului (perturbaøiei) ca fiind

g() = f(x*+ ) .

Fie * cel mai bun individ obøinut la terminarea algoritmului genetic.

Actualizarea

Cea mai bunã perturbaøie servešte pentru a actualiza soluøia x* gãsitã, punând:

x* := x* + * .

Iterarea

Operaøiile corespunzãtoare nivelelor x ši se repetã considerând ca populaøie iniøialã la nivelul x populaøia P(t) obøinutã la sfâršitul iteraøiei precedente. Populaøia Q(0) la nivelul se reiniøializeazã la fiecare nouã iteraøie.

Procedura se oprešte când a fost realizat numãrul de iteraøii stabilit sau când o altã condiøie de oprire a fost îndeplinitã.

Observaøie.

Populaøia la nivelul este reiniøializatã la fiecare iteraøie. Din acest motiv s-ar putea renunøa la folosirea mutaøiei la nivelul x (cf. Michalewicz, 1992). Credem cã o astfel de abordare ar fi îndreptaøitã în cazul codificãrii binare, unde rolul mutaøiei este destul de redus. În codificarea realã mutaøia joacã însã un rol mult mai mare în progresul cãutãrii. Din acest motiv rolul mutaøiei poate fi esenøial la ambele nivele ale codificãrii delta.

Codificarea delta poate fi descrisã sub forma urmãtorului algoritm.

ALGORITMUL CODIFICÃRII DELTA

P1. t := 0

Se iniøializeazã o populaøie P(t) de soluøii potenøiale.

P2. Câttimp (condiøie adevãrat) executã pašii P3 – P7.

P3. Se folosešte un algoritm genetic (notat AG1) pentru a obøine, la convergenøã, o soluøie x*.

P4. Se iniøializeazã o populaøie de perturbaøii aleatoare.

P5. Se aplicã un algoritm genetic (notat AG2) pentru a obøine, la convergenøã, perturbaøia optimã *.

P6. Se actualizeazã soluøia adãugând perturbaøia optimã calculatã

x* := x* + * .

P7. Se comparã x* cu precedenta soluøie ši se reøine cea care este mai performantã.

Observaøii.

În mod uzual, algoritmul genetic AG1 folosit la pasul P3 este identic cu algoritmul AG2 de la pasul P5. În anumite situaøii poate fi mai avantajos sã se foloseascã algoritmi diferiøi.

Sunt posibile diferite variaøii înlocuind algoritmii genetici AG1 ši/sau AG2 cu proceduri evolutive. Putem avea diferite combinaøii de algoritmi genetici ši proceduri evolutive, cum ar fi de exemplu combinaøiile AG+SE ši SE+AG, SE+SE.

Considerarea unei strategii evolutive în locul lui AG2 ar putea pãrea nepotrivitã. Prin aceastã înlocuire, pentru calcularea unei perturbaøii s-ar utiliza o metodã perturbativã relativ complicatã. În realitate conteazã progresul cãutãrii ši mai puøin felul în care acest progres este realizat. Folosirea strategiilor evolutive în codificarea delta pare a fi un demers justificat ši promiøãtor.

4. DIPLOIDIE ŠI DOMINANØÃ

Pânã în prezent am considerat în mod consecvent cã un individ se reprezintã printr-un cromozom. Deši cele mai multe abordãri ale algoritmilor evoluøioništi folosesc aceastã abordare, ea nu este în deplinã concordanøã cu realitatea biologicã. De regulã, genotipul unei specii conøine mai muløi cromozomi. În celulele somatice numãrul de cromozomi este (de regulã) dublu faøã de numãrul cromozomilor din celulele germinative. Dublarea numãrului de cromozomi se numešte diploidie. În cazul diploidiei, cromozomii sunt grupaøi în perechi. Cromozomii unei perechi (cromozomii diploizi) se numesc omologi ši poartã gene similare sau identice. Genele similare au aceeaši poziøie în cei doi cromozomi ši poartã informaøii despre aceeaši funcøie. În unele øesuturi somatice, pe lângã celule diploide se gãsesc ši celule tetraploide, hexaploide, octaploide, etc. Pentru cele ce urmeazã ne limitãm doar la structurile diploide.

Cromozomii omologi codificã aceeaši muløime de caracteristici individuale, dar valorile unor caracteristici pot fi diferite (genele respective sunt diferite). Se pune problema care dintre caracteristicile contradictorii se transmite descendenøilor (se actualizeazã în genotip). Aceastã problemã, evident, nu a apãrut în cazul genotipului constituit dintr-un singur cromozom.

Ne intereseazã prin ce mecanism putem rezolva conflictul ce apare între genele contradictorii. Considerãm o pereche de gene având aceeaši poziøie (locus) în doi cromozomi omologi. Admitem cã una din gene deøine controlul asupra calitãøii respective. Vom spune cã gena respectivã este dominantã. Despre cealaltã genã, care nu se manifestã, spunem cã este recesivã. Rolul structurii diploide este de a conserva anumite calitãøi, care au fost utile în evoluøia speciei respective. Schimbarea mediului ar putea din nou reclama aceste calitãøi. Diploidia reprezintã ašadar un mecanism suplimentar de adaptare ši poate fi consideratã o memorie de lungã duratã.

Dominanøa poate fi descrisã folosind un alfabet cu trei elemente: 0, 1 ši 10. Simbolurile 1 ši 10 corespund ambele valorii 1. Deosebirea este cã 1 desemneazã o genã dominantã, iar simbolul 10 o genã recesivã. Sã admitem în plus cã 1 dominã 0 ši 0 dominã 10.

Vom nota cu a<b faptul cã gena b dominã gena a. Cu aceastã notaøie relaøia de dominanøã dintre elementele alfabetului {0, 1, 10} se poate scrie

10 < 0 < 1 .

Sã considerãm pentru exemplificare un individ al cãrui genotip este reprezentat de cromozomii omologi x ši y, unde

x = (0, 10, 1, 10) ,

y = (10, 10, 0, 1) .

Având în vedere dominanøa în descendenøii acestor cromozomi vor fi active genele

(0, 1, 1, 1) .

Folosirea diploidiei în algoritmii genetici este importantã mai ales pentru tratarea problemelor de optim nestaøionare. În cazul problemelor staøionare utilizarea diploidiei ši dominanøei nu îmbunãtãøešte de o manierã semnificativã performanøele algoritmilor genetici (Golberg, 1989).

Recombinarea se face în douã etape. În prima etapã douã perechi de cromozomi omologi sunt selectaøi pe baza adecvãrilor. Fiecare pereche de cromozomi dã naštere la câte doi cromozomi intermediari (gameøi). În cea de-a doua etapã din cele douã perechi de gameøi se formeazã, prin încrucišare, doi descendenøi.

5. PROGRAMAREA GENETICÃ

5.1. Principiile programãrii genetice

Programarea geneticã (P.G.) a fost introdusa de John Koza (vezi Koza 1992) ši poate fi provitã drept o extindere a algoritmilor genetici. Ideile ši metodele P.G. s-au dovedit a fi foarte eficiente in special pentru identificarea sistemelor.

Ideea de baza este de a reprezenta procesele de calcul, structura unui sistem sau acøiunile de control atašate sistemului (ši orice informaøie similarã) sub forma unui arbore.

Un individ (cromozom) va fi reprezentat printr-un arbore. Acesta codificã structura unui individ ši corespunde genotipului. Structura genotipului este fenotipul individului. Numãrul nodurilor arborelui dã mãrimea unui individ.

În cazul reprezentãrii proceselor de calcul existã diferite tipuri de noduri:

– noduri de tip A, conøinând simbolul unei operaøii:

– noduri de tip V, conøinând o variabilã;

– noduri de tip P, conøinând un parametru;

– nodul start (nod de calsã S);

– noduri terminale (noduri de clasã T).

În Figura 1. este reprezentat arborele ce corespunde expresiei

f(x,y) = x + y2.

Arborele conøine douã noduri de tip A corespunzând operaøiilor de adunare ši ridicare la pãtrat, douã noduri de tip V conøinând variabilele x ši y ši un nod P conøinând constanta 2.

Figura 1. Arborele ce corespunde expresiei x + y2.

Fenotipul individului se obøine decodificând arborele folosind regula simplã:

(sub-arborele sau nodul stâng) (executã nodul A precedent) (sub-arborele sau nodul drept).

În exemplul considerat regula este aplicatã începând cu nodul terminal aflat cel mai în stânga. În acest caz este nodul V etichetat “x”. La prima aplicare a regulii se obøine

f(x,y) = x + (sub-arborele drept). (1)

Decodificând sub-arborele drept conform regulii avem

sub-arborele drept = y * * 2. (2)

Inserând (2) în (1) obøinem fenotipul structurii. În cazul nostru expresia

f(x,y) = x + y * * 2.

Într-o aplicaøie concretã muløimea etichetelor fiecãrui nod este limitatã. Fiecãrui nod i se asociazã un vector (numit vector-nod) conøinând valorile (etichetele) posibile ale nodului respectiv.

5.2. Algoritmul fundamental al PG

Algoritmul de programarea geneticã al lui Koza pornešte cu o populaøie aleatoare de indivizi (arbori). Arborii se construiesc peste o muløime fixatã de simboluri. Se obøine o nouã populaøie folosind operatorii de încrucišare, mutaøie ši clonare. Dupã un numãr de generaøii (de dorit cât mai mic) se obøine un arbore (un program) caer este corect (suficient de bun) pentru problema în cauzã. Pašii acestui algoritm sunt daøi mai jos.

ALGORITMUL DE PROGRAMARE GENETICÃ

P1. Se stabilešte muløimea M de simboluri (operaøii, variabile, parametri etc.) necesare pentru a reprezenta indivizii (cromozomii) de interes pentru problema datã.

P2. Se pune t := 0

P3. Se genereazã o populaøie aleatoare P(0)de arbori folosind simbolurile din muløimea M.

P4. Se evolueazã populaøia P(t).

P5. Se genereazã o nouã populaøie folosind operatorii de clonare, mutaøie ši încrucišare.

P6. Dacã este satisfãcutã codiøia de oprire atunci STOP.

Altfel t := t+1. Salt la pasul P4.

Valoarea decvãrii pentru fiecare program (arbore) se calculeaza rulând programul pentru o muløime de date de instruire. Valoarea adecvãrii reprezintã numãrul de cazuri în care rezultatul programului este corect. Dacã arborele nu descrie o structurã de calcul adecvarea este datã de numãrul de cazuri în care arborele respectiv este potrivit în raport cu muløimea datleor de instruire.

5.3. Operatorii genetici

Operatorii genetici utilizaøi sunt specifici reprezentãrii prin arbori folosite.

5.3.1. Operatorii de mutaøie

Mutaøia are rolul de a introduce noi noduri în populaøie. Prin mutaøie un sub-arbore se înlocuiešte cu un arbore arbitrar.

Mutaøia standard acøioneazã dupã cum urmeazã:

(i) se determinã un nod de mutaøie;

(ii) se alege arbitrar un nod de schim din vectorii-nod;

(iii) nodul gãsit înlocuiešte nodul de mutaøie.

Mutaøia de micšorare (restrângere) (shrinking mutation) reduce dimensiunea indivizilor tãind anumite ramuri (sub-arbori) ši înlocuindu-le cu noduri terminale. Operatorul permite obøinerea de noi descendenøi din indivizii performanøi. Acest operator acøioneazã conform reøetei:

(i) se determinã nodul de mutaøie;

(ii) se selecteazã arbitrar un nod terminal din vectorii-nod;

(iii) se taie ramura cu nodul de mutaøie;

(iv) se adaugã nodul terminal în punctul de tãieturã.

Mutaøia de creštere este duala operaøiei precedente. Pašii acestui operator sunt:

Se determinã un punct de tãieturã ši nodul de mutaøie corespunzãtor (succesiv punctului de tãieturã)

Dacã nodul de mutaøie nu este unul terminal atunci se taie ramura cu nodul respectiv

Se calculeazã mãrimea individului (arborelui rãmas).

Se genereazã o nouã ramurã în felul urmãtor:

(i) Se selecteazã aleator un nod de tip A ca nod start.

(ii) Se selecteazã aleator nodurile urmãtoare ši se leagã la ieširile nodului start.

(iii) Se determinã noile ieširi în concordanøã cu protocolul nodurilor adãugate.

(iv) Se selecteazã aleator alte noduri care se leagã la noile ieširi.

(v) Se repetã pašii (iii) ši (iv) pânã când nu mai rãmâne liberã nici o conexiune de iešire.

Se calculeazã mãrimea noii ramuri (sub-arbore).

Dacã suma arbvorelui rãmas ši a noului sub-arbore nu depãšešte dimensiunea maximã permisã, atunci se insereazã noul sub-arbore în punctul de tãieturã.

În caz contrar se genereazã un nou sub-arbore.

5.3.2. Operatorii de încrucišare

Doi arbori pãrinte sunt selectaøi conform unui mecanism stabilit. Primul selectat este pãrintele dominant. Celãlalt pãrinte este recesiv.

În fiecare dintre arborii pãrinøi se alege în mod aleator un punct de tãieturã ši implicit un nod. Acesta este nodul de încrucišare pentru fiecare dintre ei. Trebuie sã ne asigurãm cã nodurile selectate sunt interschimbabile. În caz contrar se cautãRR aleator în pãrintele recesiv un nod care sã fie interschimbabil cu primul.

Existã diferite modalitãøi în care se poate face încrucišarea.

Încrucišarea de tip nod

Se schimbã între ele nodurile de încrucišare în cei doi pãrinøi. Descendentul este copia astfel modificatã a pãrintelui dominant.

Încrucušarea de tip sub-arbore

Se taie ramurile cu nodurile de încrucišare. Se construiešte un nou arbore legând la partea rãmasã din arborele dominant ramura tãiatã din pãrintele recesiv. Dacã mãrimea arborelui astfel construit nu depãšešte mãrimea maximã admisã, acesta va fi un descendent valabil. În caz contrar, se cautã noi puncte de tãieturã în ambii arbori.

Încrucišarea mixtã

Se genereazã un descendent înlocuind în pãrintele dominant ramura cu nodul de încrucišare cu un nod terminal selectat din pãrintele recesiv.

5.3.3. Operatorul de clonare

Prin clonare (copiere) se urmãrešte supravieøuirea în generaøia urmãtoare a celor mai buni indivizi. Operaøia de clonare a indivizilor având valori mari ale adecvãrii ajutã cãutarea localã cu preøul pierderii perspectivei globale (exploatarea soluøiilor locale în dauna explorãrii). Din acest motiv treuie stabilit un numãr rezonabil de copii.

5.4. Aplicaøii

Programarea geneticã reprezintã un domeniu de cercetare extrem de activ. Dintre primele aplicaøii menøionãm:

– controlul optimal

– planificarea

– calculul simbolic (regresie simbolicã ši integrare ši derivare simbolicã)

– controlul pendulului invers

– modelarea econometricã

– analiza datelor (re-descoperirea empiricã a legilor lui Kepler)

– comprimare imaginilor

– proiectarea generatoarelor de numere aleatoare

– identificarea unui model static neliniar

– calculul distribuit.

6. BIBLIOGRAFIE

Deb, K. (1991), Binary and Floating-point Function Optimization using Messy Genetic Algorithms, Ph. D. Thesis, University of Alabama, Illinois .

Goldberg, D. E. , Deb, K. , Korb, B. (1990), Messy genetic algorithms revisited: nonuniform size and scale, Complex Systems, 4, 415-444 .

Goldberg, D. E. , Korb, B. , Deb, K. (1989), Messy genetic algorithms: motivation, analysis and first results, Complex Systems, 3, 493-530 .

Goldberg, D. E. (1989), Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, Reading, MA .

Koza, J.R. (1992), Genetic Programming, MIT Press, Cambridge, MA.

Michalewicz, Z. (1992), Genetic Algorithms + Data Structures = Evolution Programs, Springer Verlag .

Schrandolph, N. , Belew, R. (1990), Dynamic parameter encoding for genetic algorithms, CSE Technical Report, CSSO-175, University of San Diego, La Jolle .

Whitley, D. , Mathias, K. , Fitzhorn, P. (1991), Delta Coding: an iterative search strategy for genetic algorithms, in R. Belew, L. Booker, editori, Proceedings of the Fourth International Conference on Genetic Algorithms, Morgan Kaufmann Publishers, Los Altos, California, 77-84.

=== Capitolul9 ===

9

STRATEGII EVOLUTIVE

1. INTRODUCERE

Strategiile evolutive sau evoluøioniste (evolution strategies, Rechenberg, 1973, Schwefel, 1981) reprezintã una dintre cele trei mari paradigme ale algoritmilor evolutivi. Punctul de plecare a fost legat de necesitatea de a construi sisteme capabile sã rezolve probleme dificile de optimizare ši cãutare cu parametri reali variabili. Primele aplicaøii au fost legate de rezolvarea unor probleme de mecanica fluidelor. Ulterior strategiile evolutive au putut fi extinse pentru a rezolva probleme de optimizare cu parametri discreøi.

Strategiilor evolutive (SE) le este specificã reprezentarea indivizilor sub forma unor vectori cu componente reale. Operatorul principal este cel de mutaøie.

În strategiile evoluøioniste avansate reprezentarea indivizilor încorporeazã ši parametrii de control ai strategiei. Acešti parametri sunt în principal legaøi de amplitudinea perturbaøiilor generate prin acøiunea operatorului de mutaøie.

În strategia evoluøionistã (1+1) – primul ši cel mai simplu model de SE – aspectul de învãøare colectivã într-o populaøie lipsešte. Schimbãrile vizeazã adaptarea unui singur individ care se schimbã prin acøiunea operatorului de mutaøie. Mutaøiile sunt perturbaøii normale cu o amplitudine definitã, caracterizatã de vectorul dispersie . Schimbarea este uniformã pentru toate direcøiile (componentele vectorului sunt egale).

Rata de convergenøã a strategiei (1+1) se studiazã în cazul a douã funcøii model. Aceste funcøii permit stabilirea unei reguli empirice (cunoscutã drept regula 1/5 a lui Rechenberg) pentru controlul parametrului dispersie.

Limitele modulului (1+1) au dus la cãutarea unor mecanisme care sã implice în evoluøie mai muløi indivizi. În strategia (+1) pãrinøi dau naštere unui descendent. Operatorii utilizaøi sunt cei de recombinare ši mutaøie.

În alte modele ((+) ši (,)) numãrul descendenøilor este >1. Caracteristica acestor modele este încorporarea parametrilor strategiei în reprezentarea indivizilor. Acest lucru permite ca parametrii strategiei sã se poatã auto-adapta. Putem considera cã suntem în prezenøa unui proces de învãøare cu douã nivele: primul nivel corespunde schimbãrii vectorului de stare ca rãspuns la particularitãøile locale ale funcøiei criteriu (suprafeøei de cãutare). Al doilea nivel corespunde auto-adaptãrii parametrilor de control asociaøi strategiei. Schimbarea parametrilor poate fi interpretatã ca un reglaj fin al procesului de cãutare, fãrã intervenøia unui mecanism de monitorizare a procesului.

2. STRATEGIA (1+1)

2.1. Principiul strategiei

Strategiile evolutive au debutat cu un model de populaøie extrem de simplu. În abordarea iniøialã (Rechenberg, 1973) se considerã o populaøie formatã dintr-un singur individ, reprezentat printr-un vector cu componente reale. Dinamica modelului este ši ea foarte simplã. Singurul operator genetic utilizat este cel de mutaøie.

Operatorul de mutaøie acøioneazã asupra tuturor componentelor vectorului pãrinte, inducând o micã perturbaøie a acestora. Se admite cã perturbaøia indusã respectã o lege normalã. Aceastã presupunere este în concordanøã cu observaøiile biologice care atestã cã, în general, descendenøii sunt asemãnãtori pãrinøilor iar schimbãrile mici sunt mai frecvente decât variaøiile mari.

Se considerã cã perturbaøia aplicatã unei componente a vectorului pãrinte se descrie printr-o variabilã aleatoare normalã având media zero. Dispersia este aceeaši pentru toøi indivizii ce vor fi generaøi. Ašadar dispersia perturbaøiei reprezintã un parametru al algoritmului. Amplitudinea perturbaøiei nu este însã obligatoriu aceeaši pentru toate componentele. Ašadar componentele vectorului dispersie nu sunt neapãrat egale.

Dupã obøinerea prin mutaøie a unui descendent cei doi membri ai populaøiei sunt comparaøi prin intermediul unei funcøii de adecvare. Va fi selectat cel mai bun dintre cei doi. Individul mai puøin performant va fi šters. Acest mecanism simplu de selecøie este desemnat ca selecøia (1+1). Este evident cã, de fapt, aceastã strategie simplã nu lucreazã cu o populaøie de soluøii intermediare. Putem ušor detecta anumite similaritãøi ale strategiei (1+1) cu metoda de recoacere simulatã.

În mod uzual un individ se reprezintã ca o pereche v=(x,). Vectorul x reprezintã un punct din spaøiul de cãutare iar este vectorul dispersie. Dacã spaøiul de cãutare este Rn (sau o submuløime a lui Rn) atunci x ši sunt vectori cu n componente reale. i reprezintã dispersia perturbaøiei pe care o suferã componenta xi a vectorului x.

Prin perturbarea individului vt=(xt,) se obøine un nou individ

vt+1=(xt+1,).

Legea de evoluøie este ašadar

xt+1 = xt + y ,

unde y este un numãr aleator ce respectã legea normalã cu media m=0 ši dispersia .

Legea de evoluøie se mai poate scrie ši sub forma

xt+1 = xt + N(0, ) ,

unde N(0, ) denotã realizarea unei variabile aleatoare n-dimensionale ce urmeazã distribuøia normalã cu parametrii respectivi.

Metodele de optimizare bazate pe o strategie de tipul (1+1) pot sã conveargã, în anumite condiøii, spre soluøia optimã. Unele condiøii se referã la funcøia obiectiv. O altã condiøie cere ca toate componentele vectorului sã fie egale. Convergenøa realizatã este una în probabilitate. Aceasta înseamnã cã xt converge spre optimul global cu probabilitatea urmãtoare:

unde x* este optimul global.

2.2. Convergenøa strategiei (1+1)

Vom da mai jos o formulare riguroasã a teoremei de convergenøã pentru strategiile evolutive de tipul (1+1). Teorema se va enunøa pentru o problemã de minim. Un rezultat similar are însã loc ši pentru o problemã de maxim.

Considerãm M Rn , M, ši o funcøie obiectiv f : M R. Se dorešte determinarea punctului x* de minim global pentru f, adicã

Valoarea funcøiei f corespunzãtoare punctului de minim global se va nota cu f*:

Vom nota cu L muløimea de nivel a funcøiei f, adicã

O submuløime G a spaøiului Rn se numešte deschisã dacã pentru orice punct x al lui G existã un numãr real r>0 astfel încât B(x,r) G, unde am notat cu B(x,r):

,

bila deschisã cu centrul în x ši de razã r.

O submuløime F a spaøiului Rn se numešte închisã dacã complementara sa Rn \ F este o muløime deschisã.

Fie A o submuløime a spaøiului Rn. Un punct xRn se numešte punct interior al muløimii A dacã existã o vecinãtate V a lui x astfel încât V A.

Muløimea punctelor interioare ale muløimii A se numešte interiorul lui A ši se noteazã IntA.

Problema de minim (1) se numešte regularã dacã ši numai dacã urmãtoarele condiøii sunt satisfãcute:

(i) f este continuã;

(ii) M este o muløime închisã;

(iii) muløimea este o muløime închisã;

(iv) .

Cu aceste noøiuni putem enunøa teorema de convergenøã pentru strategiile evolutive (1+1)

Teorema de convergenøã:

Fie vectorul dispersie cu componente constante (, , . . . ,). Considerãm o problemã de optimizare (de minim) regularã. Dacã >0 ši f* > atunci strategia (1+1) genereazã un šir (xt) pentru care are loc egalitatea:

adicã optimul global x* este gãsit cu probabilitatea 1 dacã timpul de cãutare este suficient de lung.

Pentru detalii în legãturã cu teorema de convergenøã vezi Solis ši Wets (1981).

Un rezultat similar se poate stabili ši pentru problemele de maxim. Pentru a formula acest rezultat trebuie sã definim noøiunea de regularitate pentru o problemã de maxim.

O problemã de maxim se zice regularã dacã sunt satisfãcute condiøiile (i), (ii) ši (iv) din definiøia problemei de minim regulare iar definiøia (iii) se înlocuiešte cu condiøia

(iiia) muløimea este o muløime închisã.

Dacã o problemã de maxim este regularã ši este îndeplinitã condiøia f(x*) < + unde x* este maximul global, atunci strategia (1+1) genereazã un šir (xt) care converge în probabilitate spre maximul global al funcøiei f .

Rezultatul stabilit de teorema de convergenøã nu are decât o importanøã teoreticã. Deoarece timpul de convergenøã este nelimitat semnificaøia practicã a teoremei este redusã. Ne intereseazã mai degrabã cum poate fi estimatã rapiditatea de convergenøã ši posibilitãøile de a ameliora viteza de convergenøã. În continuare ne vom ocupa de aceste probleme.

2.3. Rata de convergenøã

Rata de convergenøã se definešte ca fiind raportul dintre distanøa parcursã spre punctul de optim ši numãrul de generaøii necesare pentru parcurgerea acestei distanøe.

Rechenberg (1973) a calculat rata de convergenøã pentru douã funcøii simple pe care le putem numi funcøii model. Pentru aceste douã modele s-a calculat dispersia optimã, ceea ce corespunde stabilirii pasului optim. În plus, cunoašterea dispersiei optime permite calcularea probabilitãøii de succes care se definešte ca numãrul mediu de cazuri în care succesorul xt+1 este mai bun decât predecesorul sãu xt. Cunoašterea probabilitãøii de succes poate fi baza proiectãrii unui algoritm care adapteazã în mod automat mãrimea pasului curent. Este cazul regulii de succes 1/5 a lui Rechenberg.

2.4. Modelul sferei. Probabilitatea de succes

2.4.1. Modelul sferei

În acest model elementar funcøia de optimizat este f : Rn R , definitã prin

unde c0 ši c1 (c1 0) sunt constante reale iar x* este punctul de minim al lui f.

Notând cu r distanøa euclidianã dintre x ši x* :

funcøia f se mai poate scrie

O variantã mai simplã a modelului folosešte funcøia f1 : Rn R , datã de

unde

Dorim acum sã estimãm probabilitatea medie de succes asociatã fiecãrui pas al strategiei (1+1).

2.4.2. Probabilitatea de succes pentru modelul sferei

Considerãm problema minimizãrii funcøiei f.

Probabilitatea de succes la pasul t se poate defini:

Calculul valorii medii a probabilitãøii de succes este dificilã utilizând aceastã formulã. O posibilitate mai realistã este sã calculãm probabilitatea medie plecând de la distanøa pânã la punctul de optim.

Notãm cu rt distanøa pânã la optim a punctului xt. Pasul (t+1) este un succes în raport cu pasul precedent dacã xt+1 este mai aproape de minim decât xt. Rezultã cã pentru un pas de succes avem

Progresul relativ spre optim realizat prin pasul t este numãrul R definit prin:

R este o distanøã relativã în spaøiul de cãutare.

Constantele c0 ši c1 din modelul sferei nu au o mare relevanøã ši putem considera valorile

c0 = 0 , c1 = 1 .

Cu aceastã alegere funcøia criteriu devine

În aceste condiøii putem scrie

Un pas al strategiei (1+1) este

unde Y este o variabilã aleatoare n-dimensionalã. Y este un vector compus din n variabile aleatoare independente: Y=(Y1, Y2, . . . , Yn). Fiecare dintre componentele Yi ale lui Y urmeazã o distribuøie normalã cu media zero ši dispersia (YiN(0,)).

Vom putea acum scrie

Rezultã ašadar cã

unde yi este o variabilã aleatoare normalã unidimensionalã de tipul N(0,). Putem introduce în rt+1 parametrul scriind yi sub forma

unde ai este un numãr aleator ce respectã legea normalã N(0,1). În acest caz vom avea

Øinând cont cã

putem exprima pe rt+1 în funcøie de rt ši (am obøine o relaøie de recurenøã pentru širul (rt) ).

Înlocuim rt+1 în expresia lui R. Obøinem o dependenøã a lui R de rt. Suprimând indicele t gãsim dependenøa lui R de distanøa r la punctul de optim.

Putem acum considera o variabilã aleatoare continuã ale cãrei valori sunt R(r), r 0. Dezvoltând în serie Taylor expresia lui R(r) ši reøinând doar termenii liniari gãsim cã variabila aleatoare are o distribuøie normalã.

Probabilitatea medie a unui pas de succes se poate defini acum drept valoarea medie a variabilei aleatoare normale . Valoarea medie obøinutã va fi

unde am notat cu funcøia de repartiøie a distribuøiei normale standard N(0,1). Ašadar are expresia

.

Fãcând substituøia

putem scrie

Putem defini viteza (medie) de convergenøã corespunzãtoare distanøei r pânã la optim ca fiind

Rezultã cã este o funcøie de o variabilã realã .

Am obøinut cã atât probabilitatea medie a unui pas de succes cât ši viteza de convergenøã sunt funcøii de dispersia . Suntem interesaøi sã determinãm procedura evolutivã (1+1) pentru care viteza de convergenøã ši probabilitatea de succes sunt maxime.

Singurul parametru al procedurii este dispersia . Rezultã cã dispersia pentru care se realizeazã maximul funcøiei : R R (ši al mediei) va fi dispersia optimã a procedurii evolutive.

Din condiøia de optim

sau din condiøia

obøinem

Dispersia optimã este ašadar

Probabilitatea de succes ps corespunzãtoare dispersiei este

Rezultã cã

Probabilitatea de succes ps* corespunzãtoare dispersiei optime * este

Probabilitatea de succes este independentã de distanøa curentã r pânã la punctul de optim. Rezultã ca aceastã probabilitate poate fi folositã pentru a controla adaptarea pasului metodei.

Se pune întrebarea dacã mecanismul de control considerat genereazã probabilitãøi de succes de acelaši ordin de mãrime pentru clase de probleme foarte diferite de modelul sferei. Un rãspuns global este dificil de dat. Ceea ce putem afirma cu siguranøã este cã existã cel puøin o situaøie complet diferitã pentru care acest lucru este valabil. Aceastã situaøie este aša zisul model coridor. Modelul coridor presupune minimizarea cu restricøii a unei funcøii liniare simple.

2.5. Modelul coridor

Funcøia asociatã acestui model este o funcøie liniarã g : Rn R având expresia

Restricøiile modelului sunt

unde b este o constantã pozitivã.

Mãrirea valorii funcøiei g se poate face doar mergând pe prima axã a spaøiului de cãutare (spaøiul Rn în cazul nostru) în interiorul unui coridor de lãrgime b.

Dispersia optimã corespunzãtoare problemei considerate este

Probabilitatea de succes este

Probabilitatea de succes corespunzãtoare dispersiei optime este

Valoarea gãsitã,

,

este apropiatã de valoarea corespunzãtoare modelului sferei. Ambele valori sunt apropiate de 1/5. Aceastã similaritate a permis formularea regulii de succes 1/5 (1/5-succes rule) ca o metodã de a controla dispersia în timpul procesului de optimizare. Metoda se bazeazã pe frecvenøa de succes calculatã pentru un numãr k de generaøii (Rechenberg, 1973).

2.6. Regula de succes 1/5

Regula de succes 1/5 poate fi formulatã:

Raportul dintre mutaøiile de succes ši celelalte mutaøii trebuie sã fie 1/5. Dacã acest raport este mai mare decât 1/5 dispersia trebuie mãritã. Dacã raportul este mai mic dispersia va fi micšoratã.

Utilizarea regulii de succes 1/5 mãrešte viteza de convergenøã. Ideea intuitivã pe care se bazeazã regula este crešterea eficienøei cãutãrii. Dacã vectorii obøinuøi la k generaøii consecutive sunt mai buni decât predecesorii lor atunci pasul cãutãrii poate fi mãrit pentru a accelera convergenøa. În caz contrar pasul cãutãrii se micšoreazã.

Regula de succes 1/5 modificã dispersia la fiecare k generaøii, unde k este un parametru al metodei. De obicei se considerã

unde n este dimensiunea spaøiului de cãutare.

Notãm cu p(k) frecvenøa mutaøiilor de succes la ultimele k generaøii:

unde s(k) este numãrul mutaøiilor de succes din cei k paši consideraøi.

Operatorul de mutaøie (notat cu mut) se poate exprima prin compunerea unui operator mu ce modificã dispersia ši a unui operator mux ce modificã vectorul x:

Vom nota cu (t) dispersia la pasul t al procedurii evolutive. (t) este un numãr real ši avem

Operatorul mux adaugã la componentele vectorului de cãutare curent perturbaøii aleatoare ce urmeazã legea normalã N(0,). Putem deci scrie

unde yi , i{1, 2, . . . , n} este perturbaøia normalã a componentei xi.

Dispersia se adapteazã la fiecare generaøie folosind regula urmãtoare, cunoscutã ca regula 1/5:

Coeficienøii ci ši cd din regula 1/5 au semnificaøia unor constante de instruire (învãøare). Acešti coeficienøi satisfac condiøiile

De obicei se considerã cã cei doi coeficienøi sunt invers proporøionali:

Regula euristicã de alegere a coeficienøilor propusã de Schwefel (1981) este:

unde c = 0.817.

Procesul începe cu iniøializarea unei valori 1.

Observaøie.

Regula de mutaøie pentru variabilele obiect x este aditivã, în timp ce regula de mutaøie pentru dispersie este multiplicativã.

O altã variantã a procedurii de corecøie (Schwefel, 1995) constã în a actualiza dispersia la fiecare n generaøii ši a folosi constanta de învãøare c în locul lui . În acest caz vom avea

unde constantele au valorile c = 0.817 ši k =10n .

Valoarea constantei c a fost determinatã pentru modelul sferei. Se pare cã acest model necesitã cea mai rapidã adaptare a pasului (a dispersiei). Din acest motiv pentru alte funcøii valoarea lui c trebuie, de obicei, corectatã. Se admite cã c poate lua valori în intervalul [0.82, 0.85].

Pentru a calcula frecvenøa relativã p(k) a mutaøiilor de succes din ultimele k generaøii se considerã un contor a cãrui valoare crešte cu 1 atunci când este selectat un descendent ši nu pãrintele sãu. Aceasta corespunde condiøiei

unde (x’,‘) este descendentul individului (x,) obøinut prin acøiunea operatorului de mutaøie:

În acest caz a apãrut o mutaøie de succes.

Regula de succes 1/5 cu o perioadã de k=10n mutaøii poate fi reformulatã astfel:

La fiecare n generaøii (mutaøii) se calculeazã câte mutaøii de succes au apãrut în precedentele 10n generaøii. Dacã acest numãr este mai mic decât 2n (p(k)<1/5) se înmuløešte lungimea pasului curent (dispersia) cu un factor c. Dacã numãrul mutaøiilor de succes este mai mare decât 2n, dispersia se împarte cu c.

Putem observa acum cã operatorul de mutaøie constã dintr-o parte deterministã, ce adapteazã dispersia ši o parte aleatoare care genereazã perturbaøiile componentelor vectorului soluøie curent. Perturbaøiile sunt independente dar urmeazã toate legea normalã cu dispersia stabilitã. Regula de succes 1/5 este un mecanism euristic care asigurã crešterea eficienøei cãutãrii cu preøul descrešterii robusteøei.

2.7. Algoritmul de optimizare bazat pe strategia (1+1)

Consideraøiile precedente pot fi rezumate sub forma unui algoritm. Algoritmul de optimizare corespunzãtor strategiei evolutive (1+1) este urmãtorul:

STRATEGIA EVOLUTIVÃ (1+1)

P1. t := 1 .

Se iniøializeazã P(t)={(x,)} .

P2. Se evalueazã f(x) .

P3. Câttimp ( T(P(t)=0 ) executã

Se calculeazã p(k) .

Se calculeazã (x’,’) := mut (x,) ,

unde

Se evalueazã f(x’) . { calcularea valorii funcøiei obiectiv }

Dacã ( f(x’) f(x) ) { selecøia }

atunci P(t+1) := {(x’,’)} ;

altfel P(t+1) := P(t) ;

t := t+1 .

Observaøie. T desemneazã o condiøie de oprire. De regulã condiøia T se referã la numãrul maxim de generaøii.

2.8. Concluzii privind strategia (1+1)

Strategia evolutivã (1+1) este o metodã stochasticã de optimizare iar similaritãøile sale cu recoacerea simulatã au fost evidenøiate de Rudolph (1993). Algoritmul este în mod esenøial o strategie de cãutare localã ce realizeazã o exploatare a soluøiei curente.

Deši algoritmul este utilizabil în multe contexte, în legãturã cu el apar douã probleme:

(i) Natura fragilã a cãutãrii punct cu punct bazatã pe regula de succes 1/5 poate sã ducã la stagnarea cãutãrii într-un punct de minim local. Stagnarea cãutãrii este datoratã caracterului deterministic al descrešterii pasului de câte ori situaøia topologicã nu conduce la frecvenøe de succes destul de mari. În astfel de cazuri apare o descreštere spre zero a pasului de mutaøie.

Stagnarea cãutãrii apare adesea în direcøii afectate de restricøii (active) ale problemei sau în unghiurile muløimilor de nivel f = constant, dacã funcøia f este discontinuã sau dacã nu este derivabilã.

Poate avea loc ešuarea cãutãrii într-un minim local, deši teoretic s-a demonstrat convergenøa asimptoticã probabilistã spre un punct de optim global.

(ii) Dispersia (mãrimea pasului) este aceeaši pentru fiecare dimensiune (coordonatã) a spaøiului de cãutare. Nu existã un mecanism care sã permitã adaptarea individualã a pasului pentru fiecare axã de coordonate a spaøiului de cãutare. Absenøa unui astfel de mecanism face ca procedura sã avanseze lent spre punctul de optim.

În concluzie observãm cã rezultatele stabilite sunt valabile pentru un algoritm ale cãrui caracteristici pot fi rezumate astfel:

– folosešte o singurã valoare a dispersiei pentru toate componentele vectorului de cãutare;

– nu folosešte o populaøie veritabilã;

– nu folosešte recombinarea;

– nu realizeazã o auto-adaptare.

Strategia evolutivã (1+1) poate fi amelioratã introducând o populaøie veritabilã cu mai mult de un individ. Rechenberg (1973) a propus o strategie evolutivã multi-membru în care mai muløi pãrinøi pot participa la generarea unui descendent. Strategia (+1) introduce noøiunea de populaøie la nivelul pãrinøilor. Ea faciliteazã dezvoltarea unor strategii mai complicate, cum ar fi strategiile (+) ši (,). În aceste noi strategii apare ši o populaøie de descendenøi. Strategiile evolutive (+) ši (,) posedã un mecanism de auto-adaptare pentru parametrii algoritmului, în special pentru dispersie.

3. STRATEGIA EVOLUTIVÃ (+1)

3.1. Principiul strategiei

Strategia (1+1) poate fi generalizatã prin crešterea dimensiunilor populaøiei. Generalizãrile s-au realizat în diferite maniere, dând naštere la strategii diferite. Populaøia poate crešte prin:

(i) crešterea numãrului pãrinøilor fiecãrui descendent;

(ii) crešterea numãrului copiilor unui pãrinte;

(iii) crešterea numãrului pãrinøilor ši copiilor.

Strategiile evolutive corespunzãtoare s-au numit (+1), (1+) ši respectiv (+). Ele pot fi considerate variante ale unei strategii evolutive numite (,).

În strategia evolutivã (+1), unde >1, pãrinøii vor genera un singur descendent la un moment. Operatorii utilizaøi sunt recombinarea (încrucišarea) ši mutaøia. Prin recombinare se obøine un individ asupra cãruia acøioneazã apoi operatorul de mutaøie. Recombinarea asigurã crešterea considerabilã a eficienøei strategiei evolutive.

Selecøia se asigurã comparând cei mai neperformanøi dintre cei pãrinøi cu descendentul lor. Descendentul îl înlocuiešte pe cel mai slab (neperformant) predecesor dacã are o adecvare mai bunã. Cu alte cuvinte, din pãrinøi ši un descendent sunt selectaøi în mod determinist indivizi care vor reprezenta urmãtoarea populaøie de pãrinøi. Acest tip de selecøie, care eliminã cel mai prost individ (în loc de a-l pãstra cel mai bun), corespunde selecøiei constante (steady-state selection) din algoritmii genetici (Whitley, 1989).

3.2. Recombinarea

3.2.1. Principiul recombinãrii

Operatorul de recombinare genereazã, spre deosebire de cazul algoritmilor genetici, un singur descendent la o aplicare. Numãrul pãrinøilor poate fi mai mare decât 2. Admitem cã numãrul pãrinøilor este p (1 p ). Operatorul de recombinare selecteazã, cu o probabilitate uniformã, cei p pãrinøi. Caracteristicile pãrinøilor selectaøi sunt apoi combinate pentru a crea un singur descendent.

Situaøia p=1 nu corespunde unei recombinãri autentice. În acest caz un singur individ este ales în mod aleator.

Cele mai des întâlnite alegeri sunt p=2 ši p=. Cazul p= corespunde recombinãrii globale.

În forma uzualã mecanismul de recombinare produce un descendent din doi pãrinøi selectaøi în mod aleator. În forma globalã componentele descendentului pot fi alese din toøi indivizii populaøiei de pãrinøi.

Nu existã restricøii privind valorile intermediare ale lui p, 1< p < . Toate aceste valori sunt în mod egal acceptabile.

Reprezentarea indivizilor în strategiile evolutive este similarã codificãrii reale din cazul algoritmilor genetici. Din acest motiv ši tipurile de recombinare vor fi similare. Evident în cazul algoritmilor genetici lipsesc din reprezentarea indivizilor parametrii de control ai strategiei (vectorul dispersie, în cazul de faøã).

Admitem cã un individ al populaøiei se reprezintã sub forma

unde xi ši i sunt vectori cu n componente reale (xi, i Rn ). Vectorul dispersie reprezintã parametrul de control asociat strategiei.

Iniøial, în strategia evolutivã (+1) recombinarea s-a aplicat doar vectorilor xi. S-a constatat cã performanøele strategiei cresc dacã recombinarea se extinde ši asupra vectorilor dispersie i, i=1, 2, . . . , .

Indicãm prin T ši S doi pãrinøi selectaøi aleator. În variantele globale ale operatorului de recombinare pentru fiecare componentã i se determinã din nou pãrinøii (având indicii) Ti ši Si , care vor da valoarea componentei respective.

3.2.2. Recombinarea discretã

Operatorul de recombinare genereazã un descendent în care fiecare componentã se obøine prin copierea componentei corespunzãtoare dintr-un pãrinte ales aleator.

În cazul p=2 se aleg aleator doi pãrinøi. Fiecare componentã este copiatã fie din primul fie din al doilea pãrinte, cu aceeaši probabilitate (p=0.5).

Fie xS ši xT pãrinøii selectaøi aleator. Pentru fiecare componentã i, i=1, 2, . . . , n , se genereazã un numãr aleator qi urmând distribuøia uniformã în intervalul [0,1]. Componenta yi a descendentului se calculeazã dupã regula

unde i=1, 2, . . . , n .

Recombinarea de acest tip se poate scrie sub forma

În cazul când descendentul y provine din recombinarea a p pãrinøi, componenta yi este datã de xiS , unde pãrintele xS a fost ales în mod aleator dintre cei p pãrinøi.

Acøiunea recombinãrii discrete asupra dispersiei sau asupra oricãrui alt parametru de control al strategiei este similarã.

3.2.3. Recombinarea discretã globalã

Pãrintele care dã valoarea componentei i a descendentului este ales din întreaga populaøie de pãrinøi. Componenta respectivã a pãrintelui este copiatã în descendent. Acest tip de recombinare se poate formula

3.2.4. Recombinarea intermediarã (convexã)

Doi pãrinøi sunt aleši în mod aleator. Componenta yi a descendentului este o combinaøie convexã a componentelor respective ale celor doi pãrinøi.

Dacã xT ši xS sunt cei doi pãrinøi selectaøi atunci yi este de forma

Coeficientul [0,1] al combinaøiei convexe se alege, de regulã, ca fiind valoarea unei variabile aleatoare cu o distribuøie uniformã. Coeficientul pãstreazã aceeaši valoare pentru toate componentele.

Un caz particular corespunde valorii =0.5. În aceastã situaøie yi este media aritmeticã a componentelor celor doi pãrinøi:

Acest caz particular se numešte ši recombinarea medie.

Recombinarea medie se generalizeazã ušor pentru un numãr p de pãrinøi, 1 p . Cei p pãrinøi sunt aleši în mod aleator. Componenta yi a unicului descendent este media aritmeticã a componentelor corespunzãtoare ale pãrinøilor.

Într-un caz mai general yi este o combinaøie convexã a p pãrinøi aleši aleator. În acest caz avem

unde

3.2.5. Recombinarea intermediarã globalã

Pentru fiecare componentã a descendentului se aleg aleator doi pãrinøi din muløimea pãrinøilor. Componenta descendentului se calculeazã ca o combinaøie convexã a componentelor respective ale pãrinøilor.

Admitem cã pentru componenta i sunt selectaøi pãrinøii ši . Componenta yi a descendentului se va scrie

unde coeficientul i[0,1] se calculeazã separat pentru fiecare componentã i a descendentului.

Putem alege coeficientul i ca fiind un numãr aleator cu o distribuøie uniformã în intervalul [0,1]. În unele situaøii este convenabilã alegerea i= 0.5 .

Aceastã regulã se generalizeazã ušor luând

unde componenta i a vectorului y provine din pãrinøii Coeficienøii 1,i ,…, p,i se calculeazã din nou pentru fiecare componentã yi.

Toate tipurile de recombinare se aplicã în mod similar ši pentru dispersie. Acešti operatori de recombinare acøioneazã ši în cazul unor strategii evolutive având, pe lângã dispersie, ši aløi parametri de control. În cazul acestor strategii operatorii de recombinare se pot aplica tuturor parametrilor de control.

În aceeaši strategie evolutivã pot opera diferite tipuri de recombinare. Nu existã reøete universale pentru alegerea celor mai potriviøi operatori de recombinare. Experimental s-a putut constata cã rezultate bune se obøin utilizând recombinarea discretã pentru vectorii de poziøie (variabilele obiect) ši recombinarea intermediarã pentru parametrii strategiei. Recombinarea parametrilor strategiei este esenøialã pentru performanøele strategiilor evolutive.

3.3. Mutaøia

Aplicarea operatorului de recombinare este urmatã de mutaøie. Principiul utilizat este cel din cazul strategiei evolutive (1+1). În legãturã cu ajustarea parametrului de control al strategiei apar însã unele probleme.

Pentru strategia (+1) nu existã o metodã pentru a controla dispersia mutaøiei. Regula de succes 1/5 nu mai este aplicabilã în acest caz.

Strategia (+1) nu poate încorpora nici mecanismul autoadaptiv al strategiei (,). Aceastã inabilitate de a încorpora un mecanism de control (de auto-adaptare) a parametrilor interni face ca strategia (+1) sã fie puøin folositã.

3.4. Supravieøuirea

Recombinarea ši mutaøia sunt urmate de aplicarea strategiei de supravieøuire. Aceastã strategie a fost prezentatã mai sus. Reamintim cã principiul strategiei de supravieøuire este eliminarea celui mai neperformant dintre cei +1 indivizi.

4. STRATEGIA EVOLUTIVÃ (1+)

Strategia (1+) considerã un numãr de descendenøi la fiecare generaøie. Schwefel (1981) a investigat aceastã strategie cu instrumente similare celor folosite pentru strategia (1+1). În particular au fost considerate modelul sferei ši modelul coridor. Crešterea de la 1 la a numãrului de descendenøi asigurã o creštere considerabilã a vitezei de convergenøã per generaøie.

Strategia folosešte cel mai bun descendent ca pãrinte pentru urmãtoarea generaøie. Mecanismul de supravieøuire comparã acest pãrinte cu predecesorul sãu. Supravieøuiešte doar cel mai bun dintre cei doi.

Rezultatele teoretice (vezi Schwefel si Bäck, 1995) evidenøeazã faptul cã prin crešterea numãrului al succesorilor pasul mutaøiei poate crešte. Deoarece doar cel mai bun succesor este important, crešterea numãrului de ešecuri (descendenøi mai puøin performanøi decât predecesorii lor) este complet ignoratã.

Valorile optime pentru numãrul de descendenøi per generaøie sunt 1=5 ši 2=6. Aceste valori sunt deduse din considerente statistice, folosind o aproximare a ratei maxime de convergenøã spre dispersia optimã. În medie, cel puøin unul dintre cei 1 (2) descendenøi reprezintã o ameliorare a funcøiei obiectiv. Ašadar probabilitatea apariøiei descendenøilor de succes este 1/1 (sau 1/2 ). Observãm cã aceste valori sunt apropiate de cele ce au stat la baza regulii de succes 1/5.

5. STRATEGIA EVOLUTIVÃ (1, )

Strategia (1,) este o versiune ne-elitistã a strategiei (1+). Caracterul ne-elitist al strategiei constã în faptul cã ea permite ca cel mai bun membru al populaøiei la generaøia (t+1) sã fie mai puøin performant decât cel mai bun membru al generaøiei t.

În cazul modelului sferã funcøia obiectiv consideratã este

Pentru acest model dispersia optimã este

unde C1, este o funcøie de , ale cãrei valori sunt tabelate (Rechenberg, 1994), iar n este dimensiunea spaøiului.

Pentru valori mari ale numerelor n ši , C1, este aproximativ proporøional cu. În acest caz la fiecare generaøie funcøia criteriu îši amelioreazã valoarea, în medie, cu o cantitate m1 proporøionalã cu ln/n:

Acest rezultat este valabil ši pentru strategia evolutivã (1+), în aceleaši condiøii: valori mari ale lui n ši . Acest lucru se justificã prin faptul cã pentru valori mari ale lui probabilitatea ca toøi membrii generaøiei (t+1) sã fie mai puøin performanøi decât membrii generaøiei t tinde spre zero. Diferenøele faøã de strategia (1+) apar numai pentru valori mici ale lui , în special pentru .

6. STRATEGIILE (+ ) ŠI (,)

6.1. Principiile strategiilor

Strategia evolutivã (1+1) se bazeazã în mod esenøial pe o metodã euristicã ce este codificatã în regula de succes 1/5. Inconvenientele acestei metode euristice au fost deja evidenøiate. Dezavantajele regulii 1/5 au generat tentative de a da o metodã mai robustã ši mai generalã pentru a controla parametrii operatorului de mutaøie. Ne vom ocupa în continuare de strategiile evolutive (+) ši (,) (Schwefel, 1977).

În aceste strategii mecanismul de adaptare este transferat indivizilor, care sunt echipaøi cu o muløime de parametri de control. Modelul acestui mecanism este unul biologic. Astfel biologii au evidenøiat faptul cã genotipul încorporeazã un mecanism ce controleazã propria sa mutabilitate, de exemplu prin intermediul unor gene mutatoare.

Strategiile (+) ši (,) folosesc populaøii multiple de pãrinøi ši descendenøi. Crešterea dimensiunii populaøiei determinã o mãrire a vitezei de convergenøã.

În strategia (+), un numãr de >1 pãrinøi sunt folosiøi pentru a genera descendenøi ( > ). Toøi cei + indivizi ai populaøiei intermediare astfel obøinute intrã în competiøia pentru supravieøuire. Cei mai buni indivizi sunt selectaøi ca pãrinøi ai noii generaøii. Probabilitatea de a fi selectaøi este aceeaši pentru toøi indivizii.

În cazul strategiei evolutive (,) numai cei descendenøi concureazã pentru supravieøuire. Pãrinøii sunt complet înlocuiøi la fiecare generaøie. Urmeazã cã timpul de viaøã al unei soluøii este limitat la o singurã generaøie. Din acest motiv strategia evolutivã (,) este potrivitã pentru probleme în care funcøia obiectiv este afectatã de zgomot. O altã situaøie în care strategia este aplicabilã este existenøa unui optim care-ši schimbã poziøia în timp. Putem identifica probleme de optim asociate cu un sistem dinamic. Evoluøia sistemului poate induce o deplasare a punctului de optim. Acest ultim model de problemã de optim este destul de îndepãrtat de problemele clasice ši metodele tradiøionale de control optimal sunt dificil, sau chiar imposibil, de utilizat.

Putem considera (,) ši (+) ši drept douã tipuri de selecøie ale unei aceleaši strategii. În selecøia (,), cei mai buni descendenøi ( < ) sunt selectaøi printr-o procedurã deterministã pentru a înlocui generaøia precedentã. Acest mecanism permite ca cel mai bun membru al generaøiei (t+1) sã fie inferior celui mai bun individ din generaøia t. Selecøia nu este ašadar una elitistã. Acest lucru face ca strategia sã tolereze ši momente de recul, ceea ce îi permite sã pãrãseascã regiunea (bazinul) de atracøie a unui minim local ši sã evolueze spre optimul global.

În contrast procedura (+) selectând pãrinøi din întreaga populaøie de pãrinøi ši descendenøi asigurã evoluøia monotonã spre soluøia optimã. În ciuda acestui avantaj selecøia (+) are un serios dezavantaj legat de dificultatea adaptãrii parametrilor. Mecanismul de supravieøuire permite ca parametrii neadaptaøi ai strategiei sã supravieøuiascã un numãr relativ mare de generaøii. Selecøia ešueazã atunci când cãutarea se efectueazã într-un mediu ce suferã schimbãri dinamice. În plus procesul de cãutare ghidat de aceastã strategie tinde sã favorizeze minimele locale în defavoarea minimelor globale. Din aceste motive strategiile evolutive utilizeazã în mod obišnuit selecøia (,).

În ambele strategii noii indivizi se obøin utilizând operatorii evolutivi de recombinare ši mutaøie.

6.2. Reprezentarea indivizilor

În strategiile (,) ši (+) indivizii sunt caracterizaøi de un vector poziøie x, xRn, în spaøiul de cãutare ši de parametrii strategiei. Încorporarea parametrilor în reprezentarea indivizilor asigurã auto-adaptarea parametrilor. Operatorii evolutivi se aplicã vectorilor de stare x ši parametrilor strategiei în acelaši timp. Cãutarea în spaøiul stãrilor ši determinarea parametrilor au loc simultan. În acest fel parametrii strategiei se pot adapta la condiøiile locale ce corespund diferitelor regiuni ale spaøiului de cãutare.

Un individ (genotip) se reprezintã, de regulã, printr-o pereche (x,) de vectori, unde xRn este vectorul de poziøie (de stare) ši este vectorul dispersie. reprezintã parametrul de control al strategiei:

unde i este dispersia corespunzãtoare coordonatei i.

Vectorul indicã modul în care vectorul x este transformat prin mutaøie. Dupã cum am precizat vectorul suferã ši el mutaøia. Ašadar parametrul de control nu este constant ši nici nu este modificat printr-un mecanism deterministic. El este încorporat în structura indivizilor ši supus procesului de evoluøie.

6.3. Mutaøia

6.3.1. Mutaøia standard

Mecanismul standard de mutaøie încorporeazã în genotip vectorul dispersie în vederea auto-adaptãrii.

Fie (x’, ‘) individul obøinut din (x, ) prin mutaøie:

(x’, ‘) = mu (x, ) ,

unde cu mu am notat operatorul de mutaøie.

Fiecare componentã a vectorului de poziøie are propria ei dispersie, care determinã modificarea corespunzãtoare. Aceste modificãri au loc în mod independent. Mutaøia variabilelor de poziøie are loc dupã ce s-a efectuat mutaøia dispersiei.

Pentru dispersie regula de mutaøie este

unde y ši yi sunt numere aleatoare ce respectã o lege normalã cu dispersia 1 ši media 0.

Parametrii ši 1 reprezintã constantele de instruire (ratele de învãøare) ale procesului. Parametrul controleazã în mod global mãrimea pasului de mutaøie. Cantitatea y este aceeaši pentru toate componentele vectorului . 1 permite controlul schimbãrilor individuale, cantitatea 1yi calculându-se pentru fiecare componentã i a vectorului dispersie.

Mutaøia poate produce valori ale dispersiei arbitrar de mici, ceea ce implicã stagnarea procesului de cãutare. Pentru a evita acest lucru se considerã o valoare inferioarã > 0 a dispersiei. Operatorul de mutaøie va încorpora ši o regulã de forma:

dacã i’< atunci i’:= .

Parametrii de control ši 1 sunt relativ robušti. Schwefel (1977) a propus pentru acešti parametri alegerea euristicã

ši

unde constantele c1 ši c2 se iau în mod uzual egale cu 1. Valorile optime ale parametrilor ši 1 pot sã difere de valorile propuse mai sus, în funcøie de anumite particularitãøi topologice ale funcøiei criteriu.

Alegerea unei forme exponenøiale (ši normale) pentru modificarea dispersiei se poate justifica prin urmãtoarele argumente euristice:

(i) Procesul multiplicativ asigurã pozitivitatea componentelor vectorului de dispersie .

(ii) Mecanismul ales favorizeazã modificãrile mici, care pot apare mai frecvent decât modificãrile mari. Acest lucru garanteazã stabilitatea procesului de cãutare.

(iii) Înmuløirea cu o anumitã valoare v apare cu aceeaši probabilitate ca ši înmuløirea cu valoarea (-v). Ašadar în absenøa selecøiei procesul de modificare este în medie neutru.

Mutaøia componentelor vectorului x se face considerând noul vector de dispersie ‘. Regula de mutaøie este tot una normalã, însã aditivã. Regula consideratã este de forma:

unde zi este un numãr aleator ce urmeazã distribuøia normalã N(0,1).

Ordinea în care se modificã xi ši i este importantã pentru eficienøa procesului de auto-adaptare. Este important sã se realizeze mai întâi mutaøia dispersiei ši sã se utilizeze dispersiile mutate pentru modificarea componentelor vectorului de poziøie. Mecanismul invers permite obøinerea unor descendenøi având vectori de poziøie utili dar parametrii strategiei necorespunzãtori, deoarece parametrii nu au fost utilizaøi pentru determinarea poziøiei descendenøilor.

Regulile de mutaøie se mai pot scrie

unde cu Ni(0,1) am notat realizarea unei variabile aleatoare cu distribuøie normalã având m=0 ši =1.

Modelul anterior poate fi generalizat permiøând sistemului sã aibã un grad de libertate suplimentar, dat de numãrul componentelor cãrora le corespund dispersii diferite.

Fie k{1, 2, . . . , n} numãrul componentelor diferite ale vectorului :

Pentru i k, mutaøia lui xi este datã de dispersia i. Pentru k j n mutaøia componentei xj este asociatã cu dispersia k. Ašadar primelor k componente li se asociazã dispersii diferite iar ultimele componente au aceeaši dispersie.

Cazul cel mai simplu este k=1. În aceastã situaøie dispersia este aceeaši pentru toate componentele vectorului de stare x. Ašadar existã o singurã valoare a dispersiei ši ea se auto-adapteazã. Toate componentele vectorului de poziøie suferã mutaøia cu aceastã dispersie.

Notând cu , > 0, valoarea comunã a dispersiei, operatorul de mutaøie acøioneazã conform regulilor:

unde constanta 0 este proporøionalã cu :

În mod uzual se ia c=1.

S-a arãtat (Beyer, 1995) cã pentru modelul sferei alegerea

este optimalã, maximizând viteza de convergenøã a strategiei evolutive. Sã notãm cã aceastã alegere nu este totuši optimã în toate situaøiile.

Pentru k=2 mutaøia în direcøia axei x1 se face cu dispersia 1 iar pentru toate celelalte direcøii dispersia mutaøiei este 2.

Cazul k=n corespunde situaøiei în care fiecare componentã are propria dispersie de mutaøie, toate cele n dispersii fiind independente. Acest model a fost deja considerat mai sus.

Putem generaliza modelul prezentat permiøând orice poziøie a componentelor ce au dispersii diferite. Acest lucru se poate realiza utilizând o regulã specificã pentru indicarea acestor componente. În particular putem admite cã aceste componente sunt alese în mod arbitrar (aleator). Procedând în felul acesta sistemul este înzestrat cu un nou grad de libertate.

Sã revenim acum asupra regulii de mutaøie

Dezvoltând în serie Taylor ši neglijând termenii neliniari obøinem regula de mutaøie

Aceastã ultimã regulã, care se mai poate scrie ši sub forma

descrie mecanismul de auto-adaptare folosit iniøial în programarea evolutivã. Sã notãm cã în varianta iniøialã s-a considerat un coeficient care nu depinde de n:

0 = 0.2 .

6.3.2. Mutaøiile corelate

Perturbaøiile normale genereazã descendenøi a cãror distribuøie poate fi dedusã examinând suprafeøele cu densitate de probabilitate constantã. Punctele acestor suprafeøe au aceeaši probabilitate de a conøine un descendent obøinut prin mutaøie. Suprafeøele de densitate constantã sunt elipsoizi care pot fi numiøi elipsoizi de mutaøie. Axele elipsoizilor de mutaøie sunt paralele cu axele sistemului de coordonate. Aceastã orientare a elipsoizilor de mutaøie face ca direcøiile de cãutare paralele cu axele sistemului de coordonate sã fie favorizate. Cãutarea devine în felul acesta mai dificilã ši prin urmare procedura rezultatã nu este totdeauna optimalã.

O îmbunãtãøire a ratei de convergenøã a procedurilor evolutive se poate obøine permiøând procesului sã urmeze orice direcøie de cãutare ce este avantajoasã. Este vorba în realitate de o adaptare mai subtilã care se referã la adaptarea probabilitãøilor astfel încât sã fie urmate cele mai fructuoase direcøii de cãutare. Adaptarea de acest tip permite elipsoizilor de mutaøie sã aibã orice orientare în spaøiul de cãutare.

Adaptarea direcøiilor axelor elipsoizilor de mutaøie se realizeazã introducând un nou parametru de control. Parametrul este vectorial ši fiecare componentã a sa are semnificaøia unui unghi de rotaøie.

În cazul în care postulãm existenøa unei corelaøii între mutaøii funcøia densitate de probabilitate normalã se scrie:

unde C este matricea de covarianøã, m este vectorul valoare medie ši xRn.

Existenøa unei corelaøii între mutaøiile corespunzãtoare axelor i ši j se traduce prin condiøia

ij 0 ,

unde cu rs notãm elementul (r,s) al matricei de covarianøã.

Elipsoizii de mutaøie corespund suprafeøelor de densitate de probabilitate constantã. Acešti elipsoizi vor avea ecuaøia:

Încorporarea matricei de covarianøã C în genotip (reprezentarea unui individ) poate genera unele dificultãøi. O transformare a axelor ce utilizeazã C ca matrice de transformare nu mai pãstreazã ortogonalitatea sistemului de coordonate. În mod similar mutaøia ar putea duce la elipsozi de mutaøie ale cãror axe nu mai sunt ortogonale.

Vom încerca sã evitãm folosirea explicitã a matricei de covarianøã. În acest scop dorim sã obøinem o ecuaøie echivalentã cu (1). Considerãm matricea diagonalã M, unde

Matricile M ši C au aceleaši elemente diagonale.

Elipsoidul indus de matricea M are ecuaøia

Pentru ca elipsoidul dat de ecuaøia (2) sã devinã identic cu (1) trebuie ca axele elipsoidului (2) sã fie rotite cu unghiurile ij , unde

Ašadar utilizarea matricei de covarianøã C este echivalentã, pânã la o rotaøie, cu utilizarea matricei diagonale M ce are pe diagonala principalã pãtratele dispersiilor.

Axele elipsoizilor de mutaøie vor fi astfel rotite ši nu vor mai fi în mod obligatoriu paralele cu axele de coordonate. Utilizarea directã a matricei de covarianøã este astfel evitatã ši înlocuitã cu o transformare ce rotešte axele elipsoizilor de mutaøie.

Vom nota cu N(0,,) realizarea unui vector aleator având o distribuøie normalã n-dimensionalã cu media 0, dispersia ši unghiurile de rotaøie . Cu am notat vectorul cu componentele ij .

Vectorul care conøine unghiurile de rotaøie va deveni un parametru al strategiei. Numãrul componentelor sale va fi

Un individ al populaøiei va fi reprezentat prin tripletul de vectori (x,,). Operatorul de mutaøie va produce un descendent (x’,’,’). Avem deci:

Strategia de mutaøie propusã de Schwefel (1981) utilizeazã transformãrile:

unde j este un numãr aleator cu distribuøia N(0,1).

Pentru parametrul Schwefel a sugerat valoarea de 5 (exprimatã în radiani), adicã

0.0873 .

Domeniul unghiurilor j este [-,]. Unghiurile sunt aduse circular în acest domeniu atunci când domeniul este depãšit prin mutaøie.

Parametrii ši 1 au aceleaši valori ca în cazul mutaøiilor necorelate.

Transformãrile strategiei se mai pot scrie sub forma

Transformãrile descriu mutaøiile corelate. Fiecare individ este caracterizat de o matrice de covarianøã completã.

6.4. Recombinarea

Strategiile (+) ši (,) au fost iniøial dezvoltate considerându-se doar diferite variante ale operatorului de mutaøie. Aceste strategii pot fi îmbogãøite prin includerea unui mecanism de recombinare. Prin recombinarea indivizilor se creeazã noi descendenøi care reprezintã noi soluøii în spaøiul stãrilor. Recombinarea permite progresul cãutãrii. Operatorul de recombinare rãmâne totuši un operator secundar în cazul strategiilor evolutive.

Diferitele tipuri de recombinare au fost evidenøiate în discuøia privind strategia (+1).

În mod obišnuit operatorul de recombinare acøioneazã ca primul operator al strategiei evolutive. Operatorul de recombinare se aplicã de ori populaøiei de pãrinøi. În felul acesta se obøine o populaøie intermediarã de indivizi.

Un descendent este obøinut prin recombinarea unui numãr de p pãrinøi (1 p ). De regulã se considerã p=2 sau p=.

Recombinarea se aplicã atât vectorilor de poziøie x (vectorii variabilelor obiect) cât ši parametrilor de control ai strategiei. Variabilele obiect, dispersiile ši unghiurile de rotaøie pot avea operatori de recombinare diferiøi. În mod empiric s-a constatat cã recombinarea discretã pentru variabilele obiect ši recombinarea intermediarã pentru parametrii strategiei conduc la cele mai bune rezultate.

Populaøia intermediarã obøinutã prin recombinare este supusã apoi acøiunii operatorului de mutaøie.

Auto-adaptarea parametrilor de control ai strategiei evolutive permite o adaptare localã a sistemului.

6.5. Parametrii strategiei

Numãrul ši natura parametrilor strategiei atašaøi unui individ pot sã varieze ši în funcøie de natura problemei la care strategia evolutivã este aplicatã. Utilizatorul strategiei evolutive poate aprecia numãrul gradelor de libertate pe care alura funcøiei criteriu le reclamã. În general eficienøa cãutãrii ši robusteøea algoritmului cresc cu crešterea numãrului de parametri ai strategiei. Evident crešte totodatã ši timpul de cãutare.

Putem considera cã valorile parametrilor strategiei reprezintã un model intern al individului. Procesul de auto-adaptare al parametrilor strategiei este bazat pe existenøa unei legãturi indirecte între parametrii strategiei ši adecvarea unui individ. O adaptare eficientã presupune ši o diversitate suficient de mare a modelelor interne în populaøia de pãrinøi. Prin urmare numãrul r al pãrinøilor trebuie sã fie în mod semnificativ mai mare decât unu. De asemenea în fiecare generaøie raportul dintre numãrul descendenøilor ši cel al pãrinøilor trebuie sã fie în mod clar în favoarea descendenøilor. În mod uzual se recomandã un raport de 7/1:

Numãrul pãrinøilor este de regulã =15. În mod uzual se considerã drept tipicã strategia evolutivã (15,100). În absenøa recombinãrii crešterea peste 10 a numãrului pãrinøilor nu produce o creštere a performanøelor.

Rezultate empirice au evidenøiat condiøiile pe care o strategie evolutivã trebuie sã le îndeplineascã pentru a realiza o auto-adaptare eficientã:

(i) alegerea selecøiei (,)

(ii) aplicarea recombinãrii asupra parametrilor strategiei

(iii) realizarea unei presiuni de selecøie nu prea mari (adicã valoarea lui sã fie în mod semnificativ mai mare decât unu).

Alegerea tipului de recombinare este o problemã, deoarece nu avem o reøetã pentru alegerea unui tip de operator pentru o anumitã clasã de funcøii criteriu. Kursawe (1995) a arãtat cã în cazul strategiei tipice (15,100) cu n=100 (n este dimensiunea spaøiului de cãutare), folosirea unui operator de recombinare neadecvat face ca strategia sã fie divergentã când este aplicatã modelului sferic. Pentru n=30, însã, s-a obøinut o ratã a vitezei de convergenøã rezonabilã pentru toate tipurile de recombinare. Pentru n=100 doar recombinarea intermediarã a variabilelor obiect (componentele vectorului de poziøie) a generat o comportare nedivergentã. Performanøa optimã s-a obøinut în acest caz (n=100) aplicând operatorul de recombinare intermediarã pentru variabilele de poziøie ši alegând pentru parametrii i ai strategiei recombinarea globalã intermediarã.

Rezultatele lui Kursawe aratã cã alegerea operatorului de recombinare depinde nu doar de alura funcøiei obiectiv ci ši de dimensiunea spaøiului de cãutare precum ši de numãrul parametrilor strategiei.

6.6. Algoritmul strategiilor evolutive (+) ši (,)

Putem acum rezuma componentele majore ale strategiilor evolutive (,) ši (+) sub forma urmãtorului algoritm.

ALGORITMUL STRATEGIILOR EVOLUTIVE (+) , (,)

P1. t := 0 ;

Se iniøializeazã populaøia P(t) .

P2. Se evalueazã indivizii populaøiei P(t) calculând f(x), aP(t), unde a este un individ de forma a=(x,) sau a=(x,,) .

P3. Câttimp ( T(P(t)) = 0 ) executã

P’(t) := recombinã P(t) ;

P’’(t) := mutaøia populaøiei P’(t) ;

Evalueazã P’’(t) ;

P(t+1) := selecøie asupra P’’(t) S ;

t := t+1 .

Evaluarea indivizilor se face prin intermediul funcøiei criteriu f. Calitatea (adecvarea) soluøiei x reprezentatã de un individ din P(t) (sau din P’’(t)) este f(x).

În algoritmul de mai sus S este o muløime specialã de indivizi ce trebuie consideraøi pentru selecøie. Muløimea S depinde de tipul selecøiei considerate. Corespunzãtor celor douã variante avem cazurile:

(i) S = P(t) , pentru selecøia (+)

(ii) S = , pentru selecøia (,) .

Populaøia iniøialã poate fi stabilitã alegând în mod arbitrar, ši de regulã cu o probabilitate uniformã, puncte xiRn, i=1, . . . , . Fiecare variabilã aparøine domeniului stabilit pentru muløimea soluøiilor (spaøiul de cãutare).

Dacã se cunoašte o soluøie particularã xRn (un punct din care cãutarea poate sã înceapã în mod convenabil) atunci x va deveni componenta de poziøie a unui individ. Ceilaløi (-1) indivizi se obøin prin mutaøii asupra acestui individ. Pasul de mutaøie se alege mare ši este de forma c (1), c>1.

În mod uzual condiøia de stop T se referã la numãrul maxim de generaøii. Procesul evolutiv este oprit dupã numãrul specificat de generaøii, independent de caracteristicile intrinseci ale ultimei generaøii (cum ar fi diversitatea populaøiei sau calitatea membrilor ei) sau numãrul de generaøii necesare pentru apariøia ultimei îmbunãtãøiri a soluøiei.

Sunt posibile ši alte metode de oprire a cãutãrii. Astfel cãutarea poate înceta la momentul t dacã diversitatea populaøiei P(t) a scãzut sub o anumitã limitã. În acest caz populaøia a devenit prea uniformã pentru a asigura progresul cãutãrii. Avem totodatã ši o indicaøie cã ne aflãm în vecinãtatea unui optim global. Diversitatea unei populaøii poate fi mãsuratã de diferenøa dintre calitatea celui mai bun ši celui mai neperformant individ al populaøiei. Cãutarea poate înceta atunci când aceastã diferenøã scade sub o anumitã valoare. O altã metodã terminã cãutarea dacã îmbunãtãøirea valorii funcøiei criteriu dupã un numãr fixat de generaøii este inferioarã unui prag prestabilit.

7. AUTO-ADAPTAREA ŠI ÎNVÃØAREA EVOLUTIVÃ

În algoritmii evolutivi funcøia obiectiv poate fi consideratã ca modelând o anumitã situaøie sau un anumit proces. Variabilele obiect x pot fi interpretate drept parametrii unui model intern al realitãøii externe descrise de funcøia obiectiv. Orice algoritm evolutiv genereazã soluøii intermediare care sunt tot mai adecvate în raport cu problema datã. Putem considera aceste soluøii (ši indivizii corespunzãtori) drept adaptãri succesive ale modelului intern. În acest fel populaøia învaøã propria reprezentare a realitãøii.

Caracteristicile de auto-adaptare ale strategiilor evolutive le fac interesante ca modele ale mašinilor instruibile (care învaøã). Se pune însã întrebarea ce tip de învãøare realizeazã algoritmii evolutivi. Pentrua putea rãspunde la aceastã întrebare este necesar sã identificãm o muløime de instruire, care în acest caz nu este evidentã. Putem considera cã muløimea de instruire este formatã din perechile

(x,f(x)) , xX ,

unde cu X am notat spaøiul de cãutare iar f este funcøia criteriu.

Considerãm problema de optim

Muløimea de instruire poate fi infinitã, însã numai un numãr finit de perechi sunt efectiv utilizate în instruire. Este plauzibil sã interpretãm f(x) drept adecvarea modelului intern x în raport cu realitatea externã descrisã de funcøia f.

Procesul de învãøare urmãrešte ašadar maximizarea adecvãrii reprezentãrii interne. Tipul de învãøare realizat are unele analogii cu învãøarea neuronalã. Putem sã-l numim învãøare evolutivã (evolutionary learning). Cu oarecare îngãduinøã am putea considera învãøarea evolutivã ca fiind un tip de învãøare prin inducøie. Reamintim cã învãøarea prin inducøie are loc prin generalizarea unor date de intrare (vezi, de exemplu, Michalski, Carbonell, Mitchell, 1986).

Învãøarea în strategiile evolutive are unele trãsãturi distinctive. Procesul de învãøare se desfãšoarã pe douã nivele. La primul nivel o muløime x de variabile adaptive interacøioneazã direct cu mediul f(x). Ca rãspuns la particularitãøile suprafeøei de cãutare (suprafaøa corespunzãtoare funcøiei criteriu) variabilele se schimbã. În acest fel sistemul adoptã un rãspuns propriu în raport cu mediul. În forme diferite acest prim nivel de învãøare apare în toøi algoritmii evolutivi.

Al doilea nivel al procesului de învãøare este legat de structura indivizilor în strategiile evolutive. Parametrii de control ai strategiei incluši în genotipul fiecãrui individ ghideazã procesul de adaptare, realizând reglajul fin (fine tuning) al acestui proces. Schimbãrile continue ale parametrilor strategiei realizeazã al doilea nivel al procesului de învãøare. Parametrii de control se adapteazã ši ei la mediul f(x), schimbându-se în funcøie de particularitãøile acestui mediu (reprezentate de caracteristicile suprafeøei de cãutare).

Învãøarea de nivel doi sau auto-adaptarea se realizeazã on-line fãrã intervenøia unui mecanism extern de control (un meta-algoritm de control). Schimbarea parametrilor strategiei are efect imediat, determinând un progres al cãutãrii. În acest fel modelul intern este învãøat în timpul procesului de cãutare, fãrã intervenøia unui mecanism exterior care sã dirijeze cãutarea.

Procesul de învãøare ne indicã ši principalele caracteristici distinctive ale strategiilor evolutive în raport cu algoritmii genetici. Aceste caracteristici pot fi rezumate astfel:

(i) includerea parametrilor de control ai strategiei în genotip.

(ii) desfãšurarea simultanã a douã procese de învãøare care au ca obiect aceeaši populaøie de indivizi.

Ideea de autoadaptare în cazul algoritmilor genetici s-a realizat utilizând un mecanism în care partea de control este complet separatã ši suprapusã. Un algoritm supervizor urmãrešte optimizarea parametrilor algoritmului genetic de bazã. Acesta este cazul sistemului propus de Grefenstette (1986). Parametrii care sunt adaptaøi sunt dimensiunea populaøiei, probabilitãøile de recombinare ši mutaøie, tipul strategiilor de selecøie ši de supravieøuire ši scalarea.

Sistemul ARGOT (Adaptive Representation Genetic Optimizer Technique) propus de Shaefer (1987) adapteazã reprezentarea indivizilor . Putem spune cã sistemul învaøã cea mai bunã reprezentare internã a indivizilor.

Davis (1989) ši Fogarty (1989) considerã mecanisme de modificare a probabilitãøilor de aplicare a operatorilor genetici. Dacã aplicarea unui operator conduce la descendenøi buni atunci probabilitatea de aplicare a acelui operator crešte.

Sã notãm în final cã Herdey (1992) a propus un model ierarhic ši pentru strategiile evolutive.

Concluzii

În finalul acestui capitol rememorãm momentele principale în dezvoltarea strategiilor evolutive. Aceste momente au fost:

(i) Calcularea ratei de convergenøã pentru strategia evolutivã (1+1) în cazul unor modele particulare ši care a condus la formularea regulii de succes 1/5.

(ii) Introducerea unei populaøii cu mai muløi membri ši admiterea recombinãrii.

(iii) Încorporarea unor parametri de control ai strategiei în modelul indivizilor ši considerarea unui proces de auto-învãøare pentru acešti parametri.

(iv) Dezvoltarea strategiilor (,) ši utilizarea unui principiu de “uitare” a parametrilor interni inadecvaøi. Acest principiu permite ca strategia sã se adapteze la un mediu în schimbare ši previne convergenøa prematurã spre un optim local (prin supra-adaptarea parametrilor de control).

(v) Introducerea unor parametri ai strategiei ce permit mutaøii corelate care permit o mai bunã auto-adaptare a sistemului.

Similar Posts