Algoritmi Genetici Cursuri
Algoritmi Genetici Cursuri
Algoritmi Genetici Cursuri
Seria
"Computer Science"
212
UNIVERSITATEA DIN CRAIOVA
Facultatea de Matematic i Informatic
CALCUL
EVOLUTIV
ION IANCU
EDITURA UNIVERSITARIA
CRAIOVA, 2009
Refereni tiinifici:
Prof. dr. I. Vduva,
Universitatea din Bucureti
CUPRINS
Prefa9
1
Metode de selecie........47
3.1 Introducere....47
4
3.2
3.3
3.4
3.5
3.6
3.7
3.8
Operatori genetici....61
4.1 ncruciarea ..61
4.1.1 ncruciarea binar ....61
4.1.1.1 ncruciarea simpl ......61
4.1.1.2 ncruciarea multipl .. 62
4.1.1.3 ncruciarea uniform ..63
4.1.1.4 ncruciarea amestecat ...... 65
4.1.1.5 Algoritmul de ncruciare ............................65
4.1.2 ncruciarea real ...66
4.1.2.1 ncruciarea discret .... 66
4.1.2.2 ncruciarea intermediar ... 68
4.1.2.3 ncruciarea liniar ...70
4.1.3 ncruciarea adiacent ...71
4.1.3.1 ncruciarea prin muchii alternante .... 71
4.1.3.2 ncruciarea prin subtrasee ...72
4.1.3.3 ncruciarea euristic ... 72
4.1.4 ncruciarea ordinal. 74
4.1.5 ncruciarea prin drumuri 75
5
4.1.5.1 ncruciarea PMX ... 75
4.1.5.2 ncruciarea OX .. 77
4.1.5.3 Variante ale ncrucirii OX ... 78
4.1.5.4 ncruciarea CX .. 80
4.1.6 ncruciarea prin muchii ... 81
4.1.7 ncruciarea matriceal . 83
4.2. Mutaia ..... 86
4.2.1 Mutaia binar .... 86
4.2.1.1 Mutaia tare ..................................................87
4.2.1.2 Mutaia slab ............................................... 87
4.2.1.3 Mutaia neuniform ..................................... 87
4.2.1.4 Mutaia auto-adaptiv .................................. 88
4.2.1.5 Mutaia cromozomial 89
4.2.2 Mutaia real .. 90
4.2.2.1 Mutaia uniform ........................................90
4.2.2.2 Mutaia neuniform .................................... 91
4.2.2.3 Mutaia auto-adaptiv ................................. 92
4.2.3 Mutaia ntreag . 93
4.2.4 Mutaia specific ... 93
4.3 Reinseria . 95
4.3.1 Reinseria global . 95
4.3.2 Reinseria local .96
5
6
5.4 Orarul unei coli.......................................................... 122
5.5 O problem de proiectare.............................................. 127
Scheme i blocuri...133
6.1 Scheme: definiie, proprieti .133
6.2 Teorema schemei ....................................................... 138
6.3 Blocuri.........................................................................148
Strategii evolutive.........193
8.1 Generaliti.................... ............................................ 193
8.2 Operatori de evoluie................................................... 197
8.2.1 ncruciarea ........................................................... 197
8.2.1.1 ncruciarea discret ...................................... 197
8.2.1.2 ncruciarea intermediar............................... 198
7
8.2.2 Mutaia .....199
8.3 Funcionarea strategiilor evolutive.... 200
8.3.1 Strategia (1 + 1) ...... 200
PREFA
La mijlocul anilor 70 s-a constatat c tot mai multe probleme
care modelau fenomene complexe din domenii precum biologia,
mecanica,
climatologia,
chimia,
analiza
datelor
rmneau
10
element distinctiv un parametru al evoluiei, utilizat pentru a modifica
soluia curent;
- programarea genetic, a crei caracteristic principal const n
faptul c populaia este format din programe care candideaz la
rezolvarea problemei;
-
11
principalele tehnici: selecia dup rang, metodele ruletei i fitnessului
proporionat, seleciile stochastic universal, trunchiat, turneu i
local.
Capitolul 4 studiaz operatorii de evoluie genetic. Se ncepe
cu ncruciarea, fiind prezentate diverse metode asociate tipului de
reprezentare ales pentru indivizii populaiei: binar, real, prin grafuri
(pe modelul problemei comis voiajorului). n partea a doua se
analizeaz operatorii de mutaie corespunztori reprezentrilor de tip
binar, ntreg, real i specifice problemei comis voiajorului. n final se
prezint metode de inserare n noua populaie a descendenilor.
Capitolul 5 prezint modele de funcionare a algoritmilor
genetici: maximizarea unei funcii, problema comis voiajorului,
rezolvarea unei ecuaii diofantice, problema orarului, o problema de
proiectare.
Capitolul 6 se ocup de scheme i blocuri. Dup ce se prezint
noiunile de baz referitoare la scheme, se deduce teorema schemei,
comparnd rezultatele furnizate de aceasta cu cele obinute pe un
exemplu. n final se prezint blocul ca un tip special de schem.
n capitolul 7, dup o scurt analiz a convergenei
algoritmilor genetici, se prezint mai multe tipuri de algoritmi
genetici:
versiunea
modificat,
hillclimbing,
clire
simulat,
12
strategii evolutive: (1 + 1) , ( + 1) ,
( + ) , ( , )
i o analiz a
convergenei.
Capitolul 9 studiaz programarea evolutiv i programarea
genetic. n cadrul programrii evolutive, dup ce se explic
funcionarea automatului Turing, se prezint modul de utilizare n
rezolvarea problemelor de optimizare. n cadrul programrii genetice
se prezint reprezentarea indivizilor, generarea populaiei iniiale i
evoluia ei i, n final, un exemplu de utilizare ntr-o problem de
regresie.
Capitolul 10 realizeaz o succint prezentare a principalelor
produse soft consacrate utilizrii algoritmilor evolutivi: GENESIS,
GENEsYs, DGENESIS, Simple GA, GAL, GALIB, SUGAL, GAGA,
GENOCOP, Genetic-2, Genetic-2N, GenET, SES, EM, LICE,
WinGA, TOLKIEN, Gaucsd, GAC, GAGS, GAMusic, GENALG,
GenET, Genie, GENlib, mGA, ParaTSP .
Cartea este o sintez a informaiilor despre Calculul evolutiv,
existente n literatura de specialitate. Ea
se
adreseaz
studenilor,
1
INTRODUCERE N CALCULUL
EVOLUTIV
1.1 Specificul calculului evolutiv
n matematic optimizarea este neleas ca nsemnnd gsirea
unei soluii optime. n acest scop s-au obinut rezultate importante n
calculul diferenial, calculul variaional, controlul optimal, cercetri
operaionale. Drumul de la rezultatele teoretice, referitoare la teoreme
de existen, unicitate, caracterizare a soluiei, etc., la optimizarea
efectiv este de multe ori prea lung, fie datorit complexitii prea
mari a problemelor reale fa de modelul matematic utilizat, fie
datorit complexitii (timp, memorie) algoritmilor utilizai.
La mijlocul anilor '70, odat cu creterea performanelor
calculatoarelor i, implicit, a complexitii problemelor reale ce se
puteau rezolva cu ajutorul calculatorului, au devenit frecvente
situaiile n care modelele clasice de optimizare nu mai conduceau la
soluii acceptabile pentru probleme modelabile pe calculator. Tot mai
frecvent, probleme din biologie, climatologie, chimie, mecanic,
analiza datelor, etc., probleme ale cror modele includ sute sau mii de
14
variabile, ale cror funcii de optimizat prezint multiple optime locale
i neregulariti nestudiate din punct de vedere numeric, rmneau
nerezolvate sau cu soluii aproximate grosier.
Studiindu-se excelenta adaptare a fiinelor vii, n ceea ce privete
forma, structura, funciile i stilul de via, numeroi cercettori au
ajuns la concluzia c natura ofer soluii optimale la problemele sale,
soluii superioare oricror performane tehnologice. S-a demonstrat,
chiar matematic, optimalitatea unor sisteme biologice: raportul
diametrilor ramificaiilor arterelor, poziia punctelor de ramificare a
vaselor de snge, valoarea hematocritului (procentul volumului
particolelor solide din snge). n consecin, au aprut primele
ncercri de imitare a procesului de evoluie natural. nc din
perioada anilor 1950, oameni de tiin precum Turing i von
Neumann au fost interesai n modelarea i nelegerea fenomenelor
biologice n termeni de procesri naturale ale informaiei. nceputul
erei calculatoarelor a promovat tendina de simulare a proceselor i a
modelelor naturale i a condus la dezvoltarea unor modele evolutive
artificiale.
n anul 1970 profesorii Hans-Paul Schwefel (Dortmund) i
Ingo Rechenberg (Berlin) avnd de rezolvat o problem de mecanica
fluidelor, referitoare la optimizarea formei unui corp ce se deplaseaz
ntr-un fluid, au cutat o nou tehnic de optimizare deoarece
metodele cunoscute pn n acel moment nu conduceau la o soluie
acceptabil. Ideea lor a ntruchipat conjectura lui Rechenberg, rmas
pn azi justificarea fundamental a aplicrii tehnicilor evolutive:
''Evoluia natural este, sau cuprinde, un proces de optimizare foarte
15
eficient, care, prin simulare, poate duce la rezolvarea de probleme
dificil de optimizat''.
Modelul de simulare propus de Rechenberg i Schwefel [71,
76, 77] este cunoscut azi sub numele de ''strategii evolutive'' i iniial
se aplica doar problemelor de optimizare de variabil continu.
Soluiile candidat x se reprezint n virgul mobil iar individul i ,
cruia i se aplic procesul evolutiv, const din aceast reprezentare i
dintr-un parametru al evoluiei, notat , reprezentat tot in virgul
mobil: i = ( x, ) . La fiecare pas soluia curent este modificat pe
fiecare component conform lui i n cazul unei mbuntiri este
nlocuit cu cea nou obinut. Parametrul joac rolul pasului din
metodele iterative clasice i este astfel folosit nct s fie respectat
principiul "mutaiilor mici". Pentru strategiile evolutive au fost
dezvoltate scheme de adaptare a parametrilor de control ( autoadaptare ).
A doua direcie de studiu s-a conturat la Universitatea San
Diego; punctul de pornire a fost tot simularea evoluiei biologice iar
structura de date aleas a fost maina cu numr finit de stri. Urmnd
aceast abordare, Fogel [25, 28] a generat programe simple,
anticipnd "programarea genetic". Populaia este reprezentat de
programe care candideaz la rezolvarea problemei. Exist diverse
reprezentri ale elementelor populaiei, una dintre cele mai utilizate
fiind aceea n care se utilizeaz o structur arborescent. n anumite
16
aplicaii, cum este regresia simbolic, programele sunt de fapt
expresii.
De exemplu, programul expresie " a + (b * c )" poate fi descris
prin (+ a ( b c )) . O astfel de structur poate fi uor codificat n Lisp,
astfel c primele implementri din programarea genetic foloseau
acest limbaj.
Dup mai muli ani de studiere a simulrii evoluiei, John
Holland de la Universitatea Michigan a propus n 1975 [44] conceptul
de "algoritm genetic". Au fost abordate probleme de optimizare
discret iar structura de date aleas
17
Calculul evolutiv folosete algoritmi ale cror metode
de
18
(apropierea de soluia problemei) descendenii pot nlocui prinii sau
ali indivizi din populaie.
Mutaia. Pentru a asigura diversitatea populaiei se aplic, la fel ca
n natur, transformri cu caracter aleator asupra elementelor
populaiei, permind apariia unor trsturi (gene) care doar prin
ncruciare i selecie nu ar fi aprut n cadrul populaiei.
n continuare, un algoritm de rezolvare bazat pe aceste idei va fi
numit algoritm evolutiv. Principalele caracteristici ale algoritmilor
evolutivi, comparativ cu cei tradiionali sunt:
sunt algoritmi probabiliti ce mbin cutarea dirijat cu cea
aleatoare;
realizeaz un echilibru aproape perfect ntre explorarea spaiului
19
furnizeaz, cu o mare probabilitate, o soluie apropiat de cea
exact.
20
Fenotipul este ansamblul trsturilor determinate de ctre un anumit
genotip. n calculul evolutiv fenotipul reprezint valorile obinute prin
decodificare, adic valori din spaiul de cutare.
Generaia este o etap n evoluia unei populaii. Dac vedem evoluia
ca un proces iterativ n care
21
Mecanismele de ncruciare i mutaie asigur explorarea spaiului
soluiilor prin descoperirea de noi configuraii.
Fitnessul
populaiei este adaptat mai mult sau mai puin mediului iar unul dintre
principiile teoriei evoluioniste este acela c supravieuiesc doar cei
mai buni indivizi. Fitnessul (adecvarea) este o msur a gradului de
adaptare a individului la mediu. Scopul evoluiei este ca toi indivizii
s ajung la o adecvare ct mai bun la mediu, ceea ce sugereaz
legtura ntre un proces de evoluie i unul de optimizare. n calculul
evolutiv, gradul de adecvare al unui element al populaiei este o
msur a calitii acestuia n raport cu problema care trebuie rezolvat.
Dac este vorba de o problem de maximizare atunci gradul de
adecvare va fi direct proporional cu valoarea funciei obiectiv (un
element este cu att mai bun cu ct valoarea acestei funcii este mai
mare).
Noiunile de adecvare i evaluare sunt folosite n general cu
acelai sens; totui se poate face o distincie ntre ele. Funcia de
evaluare, sau funcia obiectiv, reprezint o msur a performanei n
raport cu o mulime de parametri, n timp ce funcia de adecvare
transform aceast msur a performanei n alocare de faciliti
reproductive. Evaluarea unui ir reprezentnd o mulime de parametri
este independent de evaluarea altor iruri. Adecvarea unui ir este,
ns, definit n raport cu ali membri ai populaiei curente; de
22
exemplu, prin
fi
, unde f i este evaluarea asociat irului i iar f este
f
dorim
minimizm
(maximizm)
funcie
cutiei
negre.
limbajul
algoritmilor
genetici,
23
de obicei, ca parte a construciei funciei de evaluare. Funcia de
evaluare este parte a descrierii problemei. Precizarea funciei de
evaluare poate implica o simulare i poate fi aproximativ sau parial.
De exemplu, s considerm o problem de control optimal, n care
mulimea strilor n care se poate afla sistemul poate fi exponenial de
mare. Folosirea unui algoritm evolutiv pentru gsirea unei strategii
optime de control presupune reducerea spaiului strilor (prin
eantionare) i, astfel, evaluarea realizat este aproximativ i afectat
de perturbaii. Funcia de evaluare trebuie s fie uor de calculat,
avnd n vedere c fiecare generaie trebuie evaluat; deci, funcia de
evaluare este apelat de foarte multe ori.
La aplicarea unui algoritm evolutiv pentru rezolvarea unei
probleme concrete trebuie alese n mod adecvat: modul de codificare a
elementelor, funcia de adecvare i operatorii de selecie, ncruciare i
mutaie. Unele dintre aceste elemente sunt strns legate de problema
de rezolvat, iar altele mai puin.
Structura unui algoritm evolutiv este urmtoarea
Procedure AE
begin
t := 0
iniializare P (t )
evaluare P (t )
while (not condiie terminare) do
begin
24
t := t + 1
selectare P (t ) din P (t 1)
modificare P (t )
evaluare P (t )
end
end.
25
Proiectare. Algoritmii evolutivi au fost aplicai cu succes n
proiectarea circuitelor digitale, a filtrelor dar i a unor structuri de
calcul cum sunt reelele neuronale. Ca metode de estimare a
parametrilor unor sisteme ce optimizeaz anumite criterii, algoritmii
evolutivi se aplic n diverse domenii din inginerie cum ar fi:
proiectarea avioanelor, proiectarea reactoarelor chimice, proiectarea
structurilor n construcii, etc.
Simulare i identificare. Simularea presupune s se determine
modul de comportare a unui sistem pornind de la un model al acestuia.
Identificarea este sarcina invers, a determinrii structurii sistemului
pornind de la modul de comportare. Algoritmii evolutivi sunt utilizai
att n simularea unor probleme din inginerie dar i din economie.
Identificarea unui model este util n special n efectuarea unor
predicii n diverse domenii ( economie, finane, medicin, tiinele
mediului, etc.).
Control. Algoritmii evolutivi pot fi utilizai pentru a
implementa controlere on-line asociate sistemelor dinamice (de
exemplu pentru a controla roboii mobili ).
Clasificare. Se poate considera c din domeniul calculului
evolutiv fac parte i sistemele de clasificare. Un sistem de clasificare
se bazeaz pe o populaie de reguli de asociere (reguli de producie)
care evolueaz pentru a se adapta problemei de rezolvat (calitatea unei
reguli se stabilete pe baza unor exemple). Evoluia regulilor are
acelai scop ca i la nvarea n reelele neuronale. Algoritmii
26
evolutivi sunt aplicai cu succes n clasificarea imaginilor, n biologie
(pentru determinarea structurii proteinelor) sau n medicin (pentru
clasificarea electrocardiogramelor).
2
SPAIUL DE CUTARE I FUNCIA
DE ADECVARE
28
Criteriul de oprire. Atunci cnd nu se cunoate un criteriu specific
problemei se opteaz pentru un numr maxim de iteraii. Se pot folosi
informaii despre populaie, cum ar fi gradul de diversitate al acesteia.
29
2.1.2.1 . Codificarea binar
Aceasta este varianta clasic: cromozomii sunt vectori cu
elemente din {0, 1} iar spaiul de cutare este S = {0, 1}n , cu n
numrul de gene.
Exemplul 2.1. Problema submulimii de sum maxim
limitat. Se consider o mulime W = {w1 , L, wn } de valori ntregi i
V o valoare ntreag. Se caut o submulime S W cu proprietatea
w s
i =1
i i
(v1 , L, vn ) .
30
m cutii avnd capacitile (C1 , L , C m ) . Se pune problema plasrii
xi a i
bi ai
u i = vi 2 r 1 ,
31
unde reprezint partea ntreag. Valoarea astfel obinut se
reprezint n baza 2.
De exemplu, pentru x = (1.25, 2.3) [1, 2] [2, 3] i r = 5 se
obine x = (0.25, 0.3) iar cromozomul asociat va avea 2 r = 10
componente binare: (0, 0, 1, 1, 1, 0, 1, 0, 0, 1) . Este evident c aceast
codificare are caracter aproximativ, motiv pentru care n cazul
variabilelor reale se prefer utilizarea codificrii reale.
Utilizarea reprezentrii binare n cazul n care configuraiile
corespunztoare problemei sunt vectori de valori reale prezint
dezavantajul c unele valori reale aflate la distan mic au asociate
reprezentri binare aflate la distan mare (difer n multe poziii
binare). De exemplu, reprezentarea lui 7 pe 4 bii este 0111 iar
reprezentarea lui 8 este 1000 . Se remarc faptul c trecerea de la
reprezentarea lui 7 la cea a lui 8 necesit 4 modificri de bii. O alt
variant de codificare care evit acest dezavantaj este codificarea de
tip Gray caracterizat prin faptul c valori ntregi succesive au
asociate iruri de bii care difer ntr-o singur poziie.
Pornind de la reprezentarea binar (b1 , L, bn ) (cifrele binare
sunt specificate ncepnd cu cea mai semnificativ), codul Gray,
i =1
i >1
32
Reprezentarea clasic
0
ba
s j 2 j 1
2 n 1 j =1
ba
( s k )2 n j .
2 n 1 j =1
k =1
33
2.1.2.2. Codificarea ntreag
p=
s10
2n 1
(l 1)
34
2.1.2.3. Codificarea real
de
xi = ai + zecimal(string2 )
bi ai
2li 1
string .
35
2.1.2.4. Codificarea specific
(v1 , L , vn ) ,
(2,
4, 8, 3, 9, 7, 1, 5, 6 )
reprezint traseul
1 2 4 3 8 5 9 6 7 .
Unele liste de adiacen pot reprezenta trasee ilegale, ca de exemplu
(2,
4, 8, 1, 9, 3, 5, 7, 6 )
care duce la
1 2 4 1,
36
adic la o ciclare (prematur) obinut nainte de terminarea traseului.
traseul
1 2 4 3 8 5 9 6 7
va fi codificat ca o list
l = (1, 1, 2, 1, 4, 1, 3, 1, 1)
interpretat astfel:
primul numr din lista l este 1, aa c primul ora din lista L este
luat ca prim ora al traseului i este ters din lista L ; traseul parial
este (1)
urmtorul ora din lista l este 1, aa c se ia primul ora din lista
curent L ca oraul urmtor al traseului i se sterge din lista L ;
rezult traseul parial (1 2 )
urmtorul numr din lista l este 2, deci se alege al doilea ora din
lista curent L ca urmtorul ora al traseului i se terge din list; n
acest moment traseul parial este (1 2 4 ) .
37
n final rezult traseul
1 2 4 3 8 5 9 6 7 .
(5, 1,
7 , 8 , 9 , 4 , 6 , 2 , 3) .
(v1 , L, vn )
n care
38
2.1.2.4.5. Codificarea matriceal
3 1 2 8 7 4 6 9 5
este reprezentat prin matricea de mai jos.
1
de dimensiune n n
n(n 1)
2
39
3. dac mij = 1 i m jk = 1 atunci mik = 1 .
Dac numrul valorilor 1 din matrice este mai mic dect
n(n 1)
2
iar celelalte dou condiii sunt satisfcute atunci oraele sunt parial
ordonate, adic exist cel puin o modalitate de completare a matricei
astfel nct s se obin un traseu legal.
O alt reprezentare de tip matriceal a fost folosit de Seniw [84] i
Homaifar i Guan [45] . n aceast reprezentare, elementul mij ia
valoarea 1 dac i numai dac exist un traseu de la oraul i direct la
oraul j (matricea de adiacen).
1
(1,
2 , 4 , 3, 8 , 6 , 5 , 7 , 9 ) ,
aceast
ordine.
Aceast
40
(2,
4, 3, 8, 6 , 5, 7 , 9 , 1) ,
(4,
3, 8, 6 , 5, 7 , 9 , 1, 2 ) ,
etc.
Un traseu complet este reprezentat printr-o matrice binar
avnd un singur 1 pe fiecare linie i fiecare coloan. Totui, nu orice
matrice cu aceste proprieti reprezint un traseu complet. Unele
matrice pot reprezenta subtrasee care nu sunt conectate ntre ele. De
exemplu,
(1,
matricea
urmtoare
reprezint
dou
subtrasee:
2 , 4 , 5, 7 ) i (3, 8, 6 , 9 ) .
41
devin
mai
h j ( x* ) 0, 1 j k 2
F( x ) = f ( x ) + a
unde
k1
k2
j =1
j =1
(g j (x )) 2 + b (h (x ))
j
42
u 2
u <0
u 0
(u ) =
2.5.
Problema
submulimii.
Un
vector
i =1
F ( s ) = i =n1
w s
i =1 i i
43
neadmisibile permite compararea ntre ele a soluiilor. Regulile
naturale sunt urmtoarele:
orice soluie admisibil este mai bun dect o soluie care nu este
admisibil;
dintre dou soluii admisibile este mai bun cea care are adecvarea
mai mare (n cazul problemei submulimii aceasta nseamn c suma
valorilor elementelor submulimii este mai mare)
dintre dou soluii neadmisibile cea mai bun este cea care ncalc
mai puin restriciile (n cazul acestei probleme nseamn c suma
elementelor este mai mic, adic depete cu mai puin pragul M ).
Exemplul 2.6. Problema rucsacului. Fiind o problem cu
j =1
j =1
wjs j C
j =1
n
wjs j > C
j =1
44
n 1
f ( s1 ,........, s n ) = c( si , si +1 ) + c( sn , s1 )
i =1
45
d
pentru d < a
1
p(d ) = a
0
pentru d a
unde a este diametrul niei, adic distana maxim dintre doi
cromozomi.
Distana dintre doi cromozomi se poate defini n mai multe
feluri:
distana euclidian, care realizeaz nie sferice
distana Hamming, care reprezint numrul poziiilor n care cei
doi cromozomi difer
distana Levenstein, care reprezint numrul de tergeri, adugri
sau modificri efectuate asupra elementelor unui ir pentru a-l face
identic cu cellalt.
Pentru fiecare individ xi din populaie se calculeaz valoarea
vi a niei corespunztoare lui:
vi = p (d (xi , x j ))
n
j =1
f ( xi )
vi
46
d (xi , x j ) < a pentru xi , x j M i
d (xi , x k ) a pentru xi M , x k M
ceea ce implic p (d ( xi , x k )) = 0 pentru xi M , x k M .
Deoarece M
a niei
3
METODE DE SELECIE
3.1. Introducere
Selecia are ca scop determinarea populaiei intermediare ce
conine prinii care vor fi supui operatorilor de ncruciare i mutaie
precum i determinarea indivizilor ce vor face parte din generaia
urmtoare. Criteriul de selecie se bazeaz pe gradul de adecvare al
indivizilor la mediu, exprimat prin valoarea funciei de adecvare. Nu
este obligatoriu ca att prinii ct i supravieuitorii s fie determinai
prin selecie, fiind posibil ca selecia s fie folosit ntr-o singur
etap.
Exist dou clase principale de metode de selecie [98]:
48
frecvent ntlnite se bazeaz pe stabilirea unor probabiliti de selecie
care depind de gradul de adecvare. n felul acesta elementele cu grad
mai mare de adecvare au anse mai mari de a fi selectate, astfel c
numrul de copii ale acestora este mai mare dect al celor cu grad mai
mic de adecvare. Metodele cele mai reprezentative sunt selecia
proporional, selecia pe baza rangurilor i selecia de tip turneu.
Calitatea seleciei este definit de o serie de parametri [98],
dintre care amintim
presiunea selectiv = probabilitatea celui mai bun individ de a fi
selectat, comparativ cu media probabilitii de selecie a tuturor
indivizilor
abaterea = diferena n valoare absolut dintre fitnessul normalizat
al individului i probabilitatea sa ateptat de reproducere
ntinderea = plaja de valori posibile pentru numrul de descendeni
ai individului
pierderea diversitii: proporia de indivizi din populaie care nu
sunt selectai
49
= 1 . Exist dou
SP presiunea seleciei
Fitnessul unui individ se calculeaz astfel:
aranjarea liniar:
[1.0, 2.0] .
aranjarea neliniar:
50
Fitness( Pos ) = Nind x Pos 1 /
Nind
x i 1
i =1
SP X + SP = 0 .
[1.0, Nind 2] .
Probabilitatea unui individ de a fi selectat este dat de fitnessul su
normalizat prin fitnessul total al populaiei.
51
Exemplul 3.1. [98]Tabelul urmtor arat probabilitatea de
nr 2
nr 6
nr 5
nr 1
nr 3
individ
Numr
individ
Fitness
Probabilitate
10
2.0
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0.18
0.16
0.15
0.13
0.11
0.09
0.07
0.06
0.03
0.02
selecie
52
1, 2, ... ,10, individul 1 va ocupa segmentul cuprins ntre 0.0 i 0.18,
individul 2 segmentul dintre 0.18 i 0.34, individul 3 segmentul dintre
0.34 i 0.49, etc.
fi
fi
fi
.
n f
53
Exemplul 3.2. Fie n = 4 indivizi avnd f1 = f 2 = 10 , f 3 = 15
1
1
5
, p3 = , p 4 =
i N i = m pi ,
6
4
12
N i = pi n =
fi
,
f
i . n acest moment
N1 L N n 1 ,
54
1
iar poziia
N
individ
numr aleator
55
trunchiere Trunc. El indic proporia populaiei ce va fi selectat ca
prini i ia valori n intervalul 50% - 10%. Indivizii aflai sub pragul
de trunchiere nu vor produce descendeni. Intensitatea seleciei este un
termen utilizat frecvent n selecia trunchiat. Relaia dintre pragul de
trunchiere i intensitatea seleciei rezult din tabelul urmtor
Prag
1%
Intensitate 2.66
10%
20%
40%
50%
80%
1.76
1.2
0.97
0.8
0.34
10
30
intensitatea
seleciei
0.56
0.85
1.15
1.53
2.04
56
grup complet
grup incomplet
57
cruce incomplet
stea incomplet
58
Distana dintre vecini mpreun cu structura aferent determin
59
n
2(PresSel Rang 1)
n
2 IntSelTrunc
selecia turneu:
GenConvTur =
4
OPERATORI GENETICI
4.1. ncruciarea
ncruciarea permite combinarea informaiilor provenite de la
doi sau mai muli prini pentru generarea unuia sau mai multor
urmai. ncruciarea depinde de modul de codificare a datelor,
aplicndu-se direct asupra cromozomilor [15, 16, 60, 98].
62
prini
descendeni
Figura 4.1
Ca exemplu [98], considerm urmtorii prini, avnd 11 bii
fiecare, i poziia de ncruciare 5
p1:
01110011010
p2:
10101100101
Rezult descendenii :
d1:
0 1 1 1 0| 1 0 0 1 0 1
d2:
1 0 1 0 1| 0 1 1 0 1 0
63
prini
descendeni
Figura 4.2
De exemplu [98], indivizii
p1:
01110011010
p2:
10101100101
0 1| 1 0 1 1| 0 1 1 1| 1
d2:
1 0| 1 1 0 0| 0 0 1 0| 0
64
cromozomului. ncruciarea uniform generalizeaz aceast schem
permind i ultimei poziii s fie punct de ncruciare.
O masc de ncruciare, de aceeai lungime cu a indivizilor
este creat aleator, iar paritatea biilor din masc indic printele care
va furniza descendentul corespunztor biilor respectivi.
Considerm prinii [98]
p1:
01110011010
p2:
10101100101
11101111111
d2:
00110000000
65
4.1.1.4. ncruciarea amestecat
Acest tip de ncruciare este similar celei simple: se selecteaz
o singur poziie de ncruciare, dar nainte ca valorile s fie
schimbate ntre ele sunt amestecate aleator n ambii prini.
4.1.1.5. Algoritmul de ncruciare
Fie P (t ) populaia curent i P s populaia aleas n urma
operaiei de selecie. Asupra indivizilor din P s se aplic operatorul de
ncruciare cu probabilitatea p c (indicele c provine de la termenul
crossover, folosit n limba englez pentru ncruciare ).
Algoritmul
P1. Pentru fiecare individ din P s :
[ ]
m
perechi.
2
dac m este impar atunci, n mod aleator, se terge un individ
dac m este numr par, se formeaz aleator
66
perechile.
P3. Perechile formate anterior sunt supuse operaiei de ncruciare.
pentru fiecare pereche se
stabilesc aleator
punctele de
este lungimea
unui
cromozom.
se execut ncruciarea pentru perechea curent, descendenii
Observaie
12 25 5
67
p2:
123 4 34
2 2 1
figura
urmtoare
12
4 5
sunt
prezentate
poziiile
posibile
descendent posibil
variabila 1
prini
variabila 2
Figura 4.3
ale
68
[ d , 1 + d ] .
iar n
este
d = 0.25
corespunztoare
ale
prinilor
conform
formulei
printe 1
aria prinilor
zona posibil a descendeilor
Figura 4.4
69
12 25 5
p2:
123 4 34
d2:
posibil descendent
variabila 2
printe
variabila 1
Figura 4.5
70
4.1.2.3. ncruciarea liniar
12 25 5
p2:
123 4 34
d2:
23.1 22.9
7.9
posibil descendent
variabila 2
printe
linia posibilului descendent
variabila 1
Figura 4.6
71
2 3 8 7 9 4 1 5 6
p2:
7 5 1 6 9 2 8 4 3
i respectiv
1 7 8 4 6 2 5 9 3
se obine descendentul
72
d1: 2 5 8 7 9 1 6 4 3
care reprezint traseul
1 2 5 9 3 8 4 7 6 .
73
compar cele dou muchii (din cei doi prini) care pleac din acest
ora i selecteaz pe cea mai bun (scurt). Oraul de la cellalt capt
al muchiei selectate va deveni punct de start pentru selectarea
urmtoarei muchii. Dac la un anumit moment, o muchie nou
introduce un ciclu n traseul parial atunci aceasta se va nlocui cu alta
aleas aleator din cele rmase i care nu introduce cicluri.
n [49] se modific ncruciarea euristic astfel: dac cea mai
scurt muchie a unui printe introduce un ciclu n traseul
descendentului atunci se alege urmtoarea muchie mai scurt dintre
cele rmase; dac aceasta nu introduce cicluri se accept n vederea
extinderii traseului iar n caz contrar se selecteaz cea mai scurt
muchie dintre q muchii selectate aleator, unde q este un parametru al
metodei. Efectul acestui operator const n alipirea drumurilor
scurte din traseele prinilor. Totui, aceast metod poate duce la
ncruciri nedorite; de aceea, n [88] a fost introdus un operator
euristic suplimentar care acioneaz astfel:
selecteaz aleator dou muchii (i, j ) i (k, l )
dac
d (i, j ) + d (k , l ) > d (i, l ) + d (k , j )
(k, j ) .
Principalul dezavantaj al reprezentrii adiacente const n
74
faptul c rezultatele furnizate de operatori sunt relativ srace.
ncruciarea muchiilor alternante duce, adeseori, la distrugerea
traseelor bune. ncruciarea prin subtrasee este mai bun dect cea a
muchiilor alternante deoarece rata distrugerii este mai mic dar
performanele sunt nc slabe. Prin faptul c dintre dou muchii se
alege cea mai scurt, ncruciarea euristic este mai bun dect
celelalte dou. Totui, performanele sale nu sunt spectaculoase: n
trei experimente [41] cu 50, 100 i 200 de orae au fost gsite trasee
aflate la o distan mai mic de 25%, 16% i 27% de traseul optim,
dup un numr de 15.000, 20.000 i respectiv 25.000 generaii.
p1:
1 1 2 1|4 1 3 1 1
p2:
5 1 5 5|5 3 3 2 1
1 2 4 3 8 5 9 6 7
5 1 7 8 9 4 6 3 2
75
dau descendenii
d1: 1 1 2 1 5 3 3 2 1
d2: 5 1 5 5 4 1 3 1 1
care corespund traseelor
1 2 4 3 9 7 8 6 5
5 1 7 8 6 2 9 3 4
Se observ c traseele pariale situate la stnga punctului de
ncruciare (reprezentat prin bara vertical) nu se schimb n timp ce
traseele de la dreapta acestui punct sunt distruse ntr-un mod destul de
aleator.
Unele
rezultate
experimentale
([41])
au
artat
76
ordinea i poziia a ct mai multe orae din cellalt printe. Subtraseul
este selectat prin alegerea a dou puncte aleatoare de taietur care
definesc frontierele operaiei de interschimbare. De exemplu, prinii
p1:
1 2 3 | 4 5 6 7 | 8 9
p2:
4 5 2 |1 8 7 6 | 9 3
d1:
|1 8 7 6 |
d2:
| 4 5 6 7 |
d1:
2 3 |1 8 7 6 | 9
d2:
2 | 4 5 6 7 | 9 3
77
nlocuit cu 4, datorit aplicaiei 1 4 . n mod similar, al doilea din
descendentul d1 este nlocuit cu 5 iar caracterele din cellalt
descendent sunt nlocuite cu 1 i 8. n final rezult descendenii
d1:
4 2 3 |1 8 7 6 | 5 9
d2:
1 8 2 | 4 5 6 7 | 9 3
4.1.5.2. ncruciarea OX
p1:
1 2 3 | 4 5 6 7 | 8 9
p2:
4 5 2 |1 8 7 6 | 9 3
d1:
| 4 5 6 7 |
d2:
|1 8 7 6 |
78
continu cu primul ora. irul oraelor din al doilea printe, ncepnd
cu al doilea punct de tietur, este
9 3 4
5 2 1 8
7 6;
9 3 2 1 8
Aseast secven este plasat n primul descendent, ncepnd cu al
doilea punct de tietur, i rezult
d1:
2 1 8 | 4 5 6 7 | 9 3.
d2:
3 4 5 | 1 8 7 6 | 9 2.
79
unul din prini este impus oraelor corespunztoare din cellalt
printe. Ca exemplu, considerm prinii
p1:
1 2 3
4 5 6 7
p2:
4 1 2
8 7 6
8 9
9 3 5.
d1:
1 3
4 7
9.
d1:
1 2 3
4 8 6 7
5 9.
d2:
3 1 2
8 7 4 6
9 5.
80
dac numrul mediu al punctelor de ncruciare este
m
(unde m este
2
4.1.5.4. ncruciarea CX
p1:
1 2 3
4 5 6 7
p2:
4 1 2
8 7 6
8 9
9 3 5
d1:
d1:
d1:
81
Urmnd aceast regul se introduc oraele 3 i 2; dar oraul 2
determin selectarea lui 1 care este deja introdus n descendent. n
acest moment se ncheie ciclul de introducere de orae din p1:
d1:
1 2 3
d1:
1 2 3
4 7 6 9
8 5.
d2:
4 1 2
8 5 6 7
3 9.
82
(3 1) , (1 2) , (2 8) , (8 7 ) , (7 4) , (4 6) , (6 9) , (9 5)
i (5 3) .
(3 1)
direct.
Ideea metodei este de a utiliza pentru fiecare ora o list a
oraelor conectate cu el, aflate n cel puin unul din prini. Evident, o
list conine cel puin dou i cel mult patru orae. De exemplu,
pentru prinii
p1:
1 2 3
4 5 6 7
p2:
4 1 2
8 7 6
8 9
9 3 5
83
au acelai numr atunci se alege unul n mod aleator. Presupunem c
am selectat oraul 1; el este conectat cu 9, 2 i 4, aa c urmtorul
ora este selectat dintre acestea. Oraele 4 i 2 au trei muchii iar 9 are
4. Are loc o alegere aleatoare ntre 4 i 2; presupunem ca a fost
selectat 4. Candidatul pentru noul ora este ales dintre 3 i 5; este
selectat oraul 5 care are mai puine muchii n lista sa. Continund n
acest mod se obine descendentul
1 4 5
6 7 8
2 3 9,
84
Urmtorul exemplu ilustreaz ncruciarea cu dou puncte. Cei
doi prini sunt dai de matricele
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 0 1 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 0 0
2 0 0 0 1 0 0 0 0 0
2 0 0 0 0 0 0 0 1 0
3 0 0 0 0 0 0 0 1 0
3 0 0 0 0 0 1 0 0 0
4 0 0 1 0 0 0 0 0 0
4 0 0 1 0 0 0 0 0 0
5 0 0 0 0 0 0 1 0 0
5 0 0 0 0 0 0 1 0 0
6 0 0 0 0 1 0 0 0 0
6 0 0 0 0 1 0 0 0 0
7 0 0 0 0 0 0 0 0 1
7 0 1 0 0 0 0 0 0 0
8 0 0 0 0 0 1 0 0 0
8 0 0 0 0 0 0 0 0 1
9 1 0 0 0 0 0 0 0 0
9 1 0 0 0 0 0 0 0 0
i reprezint traseele
(1
2 4 3 8 6 5 7 9)
(1
4 3 6 5 7 2 8 9) .
85
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 0 1 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0
2 0 0 0 1 0 0 0 1 0
3 0 0 0 0 0 1 0 1 0
3 0 0 0 0 0 0 0 0 0
4 0 0 1 0 0 0 0 0 0
4 0 0 1 0 0 0 0 0 0
5 0 0 0 0 0 0 1 0 0
5 0 0 0 0 0 0 1 0 0
6 0 0 0 0 1 0 0 0 0
6 0 0 0 0 1 0 0 0 0
7 0 0 0 0 0 0 0 0 1
7 0 1 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0 0
8 0 0 0 0 0 1 0 0 1
9 1 0 0 0 0 0 0 0 0
9 1 0 0 0 0 0 0 0 0
(1
2 8 4 3 6 5 7 9)
86
(1
6 5 7 2 8 9 ) i (3 4 ) .
(1
6 5 7 2 4 3 8 9) .
4.2. Mutaia
Mutaia este cel mai simplu operator genetic i const n
schimbarea aleatoare a unor valori ale cromozomului pentru a
introduce noi soluii. Scopul su este de a mpiedica pierderea
ireparabil a diversitii, evitnd, astfel, convergena prematur.
Diversitatea permite explorarea unor zone largi din spaiul de cutare.
Mutaia folosete ca parametru probabilitatea de mutaie p m , care ia
valori mici; de obicei n intervalul [0.001, 0.01] .
87
nu se efectueaz nimic.
4.2.1.2. Mutaia slab
pm (t ) = p0 e t .
88
Bck i Schtz [10] au definit o nou probabilitate de mutaie:
pm (t ) =
1
l2 ,
2+
t
T
p m [0, 1] .
Prin mutaie, genotipul
( x, p m )
se transform n
conform relaiilor
p'm =
1
1 p m N (0, 1)
1+
e
pm
xi
x 'i =
1 xi
unde
dac q p 'm
dac q < p 'm
(x' , p ' m )
89
N (0, 1) este o realizare a variabilei aleatoare de medie 0 i
dispersie 1
este rata de nvare; o valoare recomandat este = 0.2
xi este componenta vectorului x care este supus mutaiei
q [0, 1] este un numr aleator.
Schema anterioar poate fi generalizat prin alocarea pentru
fiecare variabil xi a unei probabiliti de mutaie proprie pi . n acest
caz genotipul este de forma
g = ( x, p )
cu
p = ( p1 , L, pl ) .
1
1 pi Ni (0 ,1)
1+
e
pi
, i {1, 2 , L , l}.
90
91
x'i = xi N (0, i ) , i {1, L , n}
mutaia multiplicativ lognormal:
x' = x e N (0 , i ) , i {1, L , n}
i
cu parametru real.
cu proprietile
1) h este descresctoare
2) h(T ) = 0
unde T este numrul maxim de iteraii.
Un exemplu de astfel de funcie este
92
h(t )
t
1
= 1 r T
' i = i e aN (0 , 1) + bNi (0 , 1) ,
sau folosind metoda aditiv
'i = i + i N (0, i )
93
unde a , b i i sunt parametrii reali ai metodei
variabilele obiect se modific folosind metoda aditiv
(1
2 3 4 5 6 7 8 9)
94
i alegnd genele (poziiile) 3 i 7 rezult cromozomul
(1
2 7 4 5 6 3 8 9)
mutaia prin inserare: se aleg aleator dou gene i apoi una dintre
ele se insereaz lng cealalt; de exemplu, din
(1
2 3 4 5 6 7 8 9)
i poziiile 3 i 7 se obine
(1
2 3 7 4 5 6 8 9) .
(1
2 3 4 5 6 7 8 9)
(1
2 5 3 6 4 7 8 9) .
se poate obine
definit de acestea; de
(1
2 3 4 5 6 7 8 9)
i poziiile 3 i 6 se obine
(1
2 6 5 4 3 7 8 9) .
95
4.3. Reinseria
Odat ce un nou descendent a fost obinut prin operaiile de
selectie, ncruciare i/sau mutaie trebuie decis dac el va face parte
sau nu din noua generaie; pentru aceasta se utilizeaz o schem de
reinserie. Metoda de selecie utilizat determin schema de inserie ce
va fi folosit: reinserie local pentru selecia local i reinserie
96
bazat pe fitness previne pierderea de informaie i este metoda
recomandat. La fiecare generaie, un numr dintre prinii cei mai
neperformani sunt nlocuii cu descendenii cei mai buni. Schema de
inserie bazat pe fitness implementeaz selecia trunchiat ntre
descendeni, indivizii elititi putnd tri mai multe generaii. Totui, la
fiecare generaie sunt inserai civa indivizi noi. Deoarece prinii pot
fi nlocuii prin descendeni cu fitness mic, fitnessul mediu al
populaiei poate descrete. Totui, dac descendenii inserai sunt
extrem de neperformani ei vor fi nlocuii n generaiile urmtoare.
97
prinii.
5
FUNCIONAREA ALGORITMILOR
GENETICI
100
(bi ai ) 10 p 2l
1 .
101
Atunci, o reprezentare a variabilei xi ca un ir binar de
lungime li va satisface precizia dorit. n plus, are loc formula
xi = ai + zecimal (string 2 )
bi ai
2li 1
funcia f
bazat pe fitness
mutaie i ncruciare
102
soluie optim; deseori algoritmul se oprete dup un numr finit de
iteraii.
Pentru procesul de selecie vom utiliza tehnica ruletei:
vi , i = 1, 2, L , n
F = eval (vi )
i =1
pi pentru fiecare
cromozom vi , i = 1, 2, L , n :
pi =
eval (vi )
F
vi , i = 1, 2, L , n :
qi =
pj
j =1
103
ncruciare.
n continuare se mperecheaz aleator cromozomii i pentru
fiecare pereche se genereaz un numar aleator ntreg pos [1, l 1] , l
fiind lungimea unui cromozom iar pos este poziia de ncruciare.
Doi cromozomi
b1b2 Lb pos b pos +1 L bl
104
i
unde
3.0 x1 12.1 i 4.1 x 2 5.8 .
105
parte a cromozomului: 217 < 151000 218 . Domeniul lui x 2 are
lungimea 1.7
doua
total
vor
a
fi
15
bii:
cromozom
este
utilizai
unui
x2 .
Primii 18 bii
010001001011010000
reprezint pe
x1 = 3.0 + zecimal (010001001011010000 2 )
= 3.0 + 70352
12.1 ( 3.0)
218 1
15.1
= 3.0 + 4.052426 = 1.052426 .
262143
Urmtorii 15 bii
111110010100010
reprezint pe
x2 = 4.1 + zecimal (111110010100010 2 )
= 4.1 + 31906
5.8-4.1
215 -1
1.7
= 4.1 + 1.655330 = 5.75533.
32767
106
Astfel cromozomul
010001001011010000111110010100010
corespunde valorilor
( x1 , x 2 ) = (1.052426 , 5.755330) .
v3 = (000010000011001000001010111011101)
v 4 = (100011000101101001111000001110010)
v5 = (000111011001010011010111111000101)
v6 = (000101000010010101001010111111011)
v7 = (001000100000110101111011011111011)
v8 = (100001100001110100010110101100111)
v9 = (010000000101100010110000001111100)
v10 = (000001111000110000011010000111011)
v11 = (011001111110110101100001101111000)
v12 = (110100010111101101000101010000000)
107
v13 = (111011111010001000110000001000110)
v14 = (010010011000001010100111100101001)
v15 = (111011101101110000100011111011110)
v16 = (110011110000011111100001101001011)
v17 = (011010111111001111010001101111101)
v18 = (011101000000001110100111110101101)
v19 = (000101010011111111110000110001100)
v20 = (101110010110011110011000101111110)
Decodificnd fiecare cromozom i evalund fitnessul obinem:
eval (v1 ) = f (6.084492 , 5.652242) = 26.019600
eval (v 2 ) = f (10.348434 , 4.380264) = 7.580015
108
eval (v11 ) = f (3.130078, 4.996097) = 23.410669
eval (v12 ) = f (9.356179, 4.239457) = 15.011619
Probabilitatea
de
selecie
pi
pentru
fiecare
cromozom
eval (v1 )
= 0.067099
F
p2 =
eval (v 2 )
= 0.019547
F
p3 =
eval (v3 )
= 0.050355
F
p4 =
eval (v 4 )
= 0.044889
F
109
p5 =
eval (v5 )
= 0.065350
F
p6 =
eval (v 6 )
= 0.046677
F
p7 =
eval (v7 )
= 0.041315
F
p8 =
eval (v8 )
= 0.046315
F
p9 =
eval (v9 )
= 0.041590
F
p10 =
eval (v10 )
= 0.054873
F
p11 =
eval (v11 )
= 0.060372
F
p12 =
eval (v12 )
= 0.038712
F
p13 =
eval (v13 )
= 0.070444
F
p14 =
eval (v14 )
= 0.051257
F
p15 =
eval (v15 )
= 0.077519
F
p16 =
eval (v16 )
= 0.061549
F
p17 =
eval (v17 )
= 0.035320
F
p18 =
eval (v18 )
= 0.039750
F
p19 =
eval (v19 )
= 0.051823
F
p 20 =
eval (v 20 )
= 0.035244
F
q 2 = 0.086647 ,
q3 = 0.137001 ,
q 4 = 0.181890 ,
q5 = 0.247240 ,
q 6 = 0.293917 ,
q 7 = 0.335232 ,
q8 = 0.381546 , q9 = 0.423137 ,
110
Primul numr a = 0.513870 satisface relaia q10 < a < q11 , deci
cromozomul v11 este selectat pentru noua populaie. Pentru al doilea
numr
a = 0.175741
avem
q3 < a < q 4 ,
deci
se
selecteaz
cromozomul v 4 , etc.
n final, noua populaie va conine indivizii
v'1 = v11 , v' 2 = v 4 , v'3 = v7 ,
111
Acum putem aplica operatorul de ncruciare indivizilor din
noua populaie. Lum probabilitatea de ncruciare
pc = 0.25 .
Procedm astfel:
pentru fiecare cromozom din noua populaie, se genereaz un
nseamn
c,
pentru
ncruciare,
se
selecteaz
indivizii
112
v"2 = (100011000 | 101110000100011111011110 )
v"11 = (111011101 | 101101001111000001110010 )
113
Poziia bitului
numrul aleator
112
0.000213
349
0.009945
418
0.008809
429
0.005425
602
0.002836
poziie bit
nr. individ
112
13
349
11
19
418
13
22
429
13
33
602
19
v3 = (001000100000110101111011011111011)
v4 = (011001111110 | 0 | 10101100001101111000 )
114
v5 = (000101010011111111110000110001100)
v6 = (100011000101101001111000001110010)
v7 = (111011101101110000100011111011110)
v8 = (000111011001010011010111111000101)
v9 = 011001111110110101100001101111000
v10 = (000010000011001000001010111011101)
v11 = (111011101101101001 | 0 | 11000001110010 )
v12 = (010000000101100010110000001111100 )
v15 = (101110010110011110011000101111110)
v16 = (100110100000001111111010011011111)
v17 = (000001111000110000011010000111011)
v18 = (111011111010001000111010111111011)
v19 = (11101110 | 0 | 101110000100011111011110)
v 20 = (110011110000011111100001101001011)
unde biii cuprini ntre linii verticale sunt cei care au rezultat n urma
mutaiei. S-a ncheiat o iteraie a algoritmului, putndu-se trece la
urmtoarea.
115
Funcia de evaluare:
Vom lua ca funcie de evaluare suma distanelor euclidiene dintre
dou orae consecutive:
N
Fitness = ( xi xi 1 )2 + ( y i y i 1 )2
i =1
Reprezentarea datelor:
116
O reprezentare a traseului este cea n care oraele sunt listate n
ordinea n care ele sunt vizitate; de exemplu
3, 0, 1, 4, 2, 5 sau 0, 5, 1, 4, 2, 3 .
Operatori genetici:
ncruciarea
ncruciarea tradiional nu este potrivit pentru problema
comis voiajorului deoarece descendenii pot s nu respecte restricia
de a se trece o singur dat prin fiecare ora. De exemplu, din prinii
1 2 3 4 5 0
2 0 5 3 1 4
413205
117
(4, 5) i (4, 1), presupunnd c oraul 4 este mai apropiat de 1, alegem
muchia
descendentului 1: 4 1 x x x x
gsim apoi muchiile ce pleac din oraul 1: acestea sunt (1, 2) i
(1, 3). Dac oraul 1 este mai apropiat de oraul 2 , selectm oraul 2
ca urmtorul ora al traseului: 4 1 2 x x x
din oraul 2 pleac muchiile (2, 3) i (2, 0). Dac distana dintre
oraul 2 i oraul 0 este mai scurt, selectm oraul 0: 4 1 2 0 x x
muchiile ce au ca prim extremitate oraul 0 sunt (0, 1) i (0, 5).
Deoarece oraul 1 apare deja n descendent, selectm oraul 5 ca ora
urmtor: 4 1 2 0 5 x
muchiile ce au ca prim extremitate oraul 5 sunt (5, 0) i (5, 4),
dar oraele 4 i 0 apar ambele n descendent. Selectm un ora
neselectat, care este oraul 3 i astfel producem un descendent legal: 4
12053
Mutaia
Din acelai motiv ca la ncruciare, nu putem utiliza mutaia
tradiional. De aceea vom folosi mutaia prin interschimbare:
selectm aleator doi bii dintr-un cromozom i le interschimbm
valorile. De exemplu, din 1 2 3 4 5 0
obinem
1 5 3 4 2 0.
118
Selecia
Cnd folosim metoda tradiional de selecie bazat pe
principiul ruletei, cel mai bun individ are cea mai mare probabilitate
de supravieuire, dar nu supravieuiete neaprat. De aceea, vom
utiliza selecia CHC [17] care ne asigur c cel mai bun individ va
supravieui ntotdeauna n noua generaie.
lungimea
modelul ruletei
generaii
119
Procedeul este urmtorul:
dac dimensiunea populaiei este N, se genereaz N descendeni
folosind metoda ruletei
descendeni
urmtoare.
Selecia CHC asigur o convergen mai rapid n comparaie
cu metoda ruletei. Pentru a preveni convergena la un optim local,
metoda se va modifica astfel: dup ce s-a ajuns la convergen, se
salveaz cei mai buni indivizi iniializnd aleator restul populaiei i
relund procesul.
soluie
ntreag.
lum
ca
exemplu
ecuaia
120
opoziie cu parcurgerea tuturor soluiilor posibile i testarea validitii
fiecreia.
Vom lucra cu o populaie de 5 indivizi ce satisfac restricia
precizat anterior:
individul1: v1 = (1, 28, 15, 3)
individul2: v 2 = (14, 9, 2, 4 )
individul3:
v3 = (13, 5, 3, 3)
v5 = (9, 13, 5, 2)
1
a + 2b + 3c + 4d 30
i obinem
eval (v1 ) =
1
1
=
= 0.011904
114 30 84
eval (v 2 ) =
eval (v3 ) =
1
1
=
= 0.041666
54 30 24
1
1
=
= 0.038461
56 30 26
121
eval (v 4 ) =
1
1
=
= 0.007518
163 30 133
eval (v5 ) =
1
1
=
= 0.035714 .
58 30 28
eval (v1 )
= 0.088 ,
F
p3 =
eval (v3 )
= 0.284 ,
F
p5 =
p2 =
eval (v 2 )
= 0.308 ,
F
p4 =
eval (v 4 )
= 0.056 ,
F
eval (v5 )
= 0.264 .
F
122
i lund punctul de ncruciare n poziia precizat de bara vertical,
reinem descendentul
prinii
(13 | 5, 7, 3)
(1 | 28, 15, 3)
dau
descendentul
123
124
NrP = 80 (80 de profesori - se pstreaz i o list cu numele lor:
Aldea, Andrei, ..., Voicu);
Un exemplu de informaie coninut de o linie a matricei
ncadrrilor este: profesorul Aldea are: 5 ore la 10B, 4 ore la 11A, 3
ore la 12 C, 3 ore la 12D, 3 ore la 12E.
Orarul de funcionare se poate modela printr-o matrice cu NrP
linii i 2 NrO NrZ
125
ferestre pentru profesori va fi numit un orar bun. Vom prezenta o
posibilitate de ntocmire a orarului folosind algoritmi genetici [91].
Pentru nceput va trebui s gsim un orar valid de pornire.
Vom prefera o variant de generare aleatoare a unui asemenea orar de
pornire. Pentru fiecare linie se utilizeaz un algoritm de generare a
unui aranjament aleator de ore conform cu matricea ncadrrilor.
Dup generarea orarului de pornire, acesta trebuie optimizat n
raport cu numrul de ferestre. Un orar valid poate fi considerat ca
fiind o matrice B cu NrP linii i 2 NrO NrZ coloane. Pentru
exemplul considerat vor fi 80 de linii i 60 de coloane; 30 dintre
coloane vor reprezenta ore de diminea iar celelalte 30 ore de dupamiaz. Un element al acestei matrice va fi codul unei clase (de la 1 la
NrC ) sau valoarea 0 dac pe linia profesorului p , la timpul t nu este
126
127
generarea a noi populaii conform algoritmului prezentat; noile
orare vor fi identificate prin Pg +1 , Pg + 2 , L , Pg + ;
pstrarea celei mai valoaroase generaii, care va deveni generaia
Pg +1 ;
creterea numrului de generaii: g g + 1 .
O a doua posibilitate de optimizare implic introducerea
parametrului ntreg i a unui parametru S care este un ir
descresctor de numere naturale care conine Ne elemente. n cadrul
buclei repetitive se vor executa urmtoarele operaii:
salvarea populaiei corespunztoare generaiei curente Pg ;
generarea a noi populaii conform algoritmului prezentat; noile
orare vor fi identificate prin Pg +1 , Pg + 2 , L , Pg + ;
repetarea pasului anterior pn cnd numrul total de ferestre scade
sub valoarea S (g ) ; populaia corespunztoare devine generaia Pg +1
creterea numrului de generaii: g g + 1 .
128
S considerm c aceast conserv trebuie s aib un volum
de cel puin 300 ml i obiectivul este de a minimiza costul
materialului folosit la fabricarea conservei. Putem formula
problema astfel: s se minimizeze valoarea funciei
d 2
f (d , h ) = c
+ dh
2
unde c reprezint costul materialului conservei pe cm 2 , iar
expresia din parantez reprezint suprafaa conservei. Mai trebuie
ndeplinit i condiia ca volumul cutiei s fie cel puin 300 ml:
g (d , h ) =
d 2 h
4
300 ,
d i h . De exemplu, irul
0100001010
(corespunztor
primilor
bii)
nlimea
de
10
cm
129
problemei.
Funcia fitness
Funcia de optimizat va fi f , unde vom lua = 3.14 i c = 0.0654 .
Pentru valorile parametrilor d i h din exemplul anterior , costul
cutiei este de 23 de uniti. Scopul problemei este de a minimiza
costul. O soluie trebuie s satisfac cerina impus de funcia g ; cele
care ncalc aceast restricie vor fi penalizate ca n exemplul
urmtor. Considerm o populaie de 6 indivizi avnd evalurile
23, 26, 30, 24, 11, 9;
cutiile corespunztoare ultimelor dou valori nu satisfac restricia
impus de funcia g , de aceea vor fi penalizate astfel nct s devin
mai puin promitoare dect oricare dintre soluiile acceptabile. Dup
penalizare noile evaluri sunt:
23, 26, 30, 24, 11+28, 9+35.
Selecia
Folosim selecia de tip turneu cu mrimea turneului egal cu 2:
130
evaluarea 23
fitness = 23, h = 8, d = 10
i respectiv
fitness = 26 , h = 14, d = 6
vor rezulta descendenii cu
fitness = 22 , h = 10, d = 6
i respectiv
131
010 M 0001010
011M1000110
010 M1000110
011M 0001010
6
SCHEME I BLOCURI
134
Un cromozom este o instan a unei scheme dac fiecrei
poziii din cromozom diferit de i corespunde o poziie din schem
avnd aceeai valoare. De exemplu, schema 0 1 definete 8
cromozomi. n general, pentru un alfabet de cardinalitate k exist
(k + 1)m
135
110
111
011
010
101
100
000
001
Figura 6.1
0110
0111
1111
1110
0010
0011
1010
1011
1100
1101
1001
1000
0101
0100
0001
0000
Figura 6.2
136
Etichetarea punctelor se face astfel: punctele cubului interior i
punctele cubului exterior se reprezint ca n cazul 3-dimensional apoi
punem 1 n faa fiecrui ir din cubul interior i 0 n faa fiecrui ir
din cubul exterior. n felul acesta, dou iruri adiacente difer printrun bit. Cubul interior aparine schemei 1 , n timp ce cubul
exterior corespunde schemei 0 . Este uor de vzut c 0
corespunde planului din fa al fiecrui cub iar schema 10
corespunde planului din fa al cubului interior.
Un ir de bii aparine unei scheme particulare dac poate fi
obinut din aceasta prin nlocuirea semnului cu bii corespunztori.
Fiecare ir binar este un cromozom ce aparine unui vrf al
hipercubului. Un ir binar aparine la 2 m 1 hiperplane diferite, unde
m este lungimea cromozomilor; irul cu toate simbolurile
137
S1 = ( 001 110 )
S 2 = ( 00 0 )
S 3 = (11101 001)
(S1 ) = 10 4 = 6 , (S 2 ) = 9 5 = 4 i (S 3 ) = 10 1 = 9 .
O schem cu o singur poziie fixat are lungimea 0 . Lungimea unei
scheme este o msur a numrului de puncte de ncruciare aflate n
poriunea semnificativ a schemei. Dac se folosete ncruciarea
simpl, atunci
(S )
m 1
i min n 2 m , 3 m
138
v3 = (000010000011001000001010111011101)
v4 = (100011000101101001111000001110010 )
v5 = (000111011001010011010111111000101)
v6 = (000101000010010101001010111111011)
139
v7 = (001000100000110101111011011111011)
v8 = (100001100001110100010110101100111)
v9 = (010000000101100010110000001111100)
v10 = (000001111000110000011010000111011)
v11 = (011001111110110101100001101111000 )
v12 = (110100010111101101000101010000000 )
v13 = (111011111010001000110000001000110)
v14 = (010010011000001010100111100101001)
v15 = (111011101101110000100011111011110)
v16 = (110011110000011111100001101001011)
v17 = (011010111111001111010001101111101)
v18 = (011101000000001110100111110101101)
v19 = (000101010011111111110000110001100)
v20 = (101110010110011110011000101111110)
Notm cu (S, t ) numrul indivizilor din populaie care se potrivesc
cu schema S la momentul t . De exemplu, pentru schema
S 0 = ( 111 )
140
} se
eval (v
p
eval (S , t ) =
j =1
ij
)
.
F (t ) = eval (vi ) ,
i =1
eval (vi )
.
F (t )
Deoarece
probabilitatea de selectare a indivizilor care se potrivesc cu schema
S este
eval (S , t )
F (t )
141
numrul indivizilor ce se potrivesc cu schema S la momentul t
este (S, t )
numrul indivizilor selectai este PopSize
rezult c numrul indivizilor care se potrivesc cu schema S la
momentul t + 1 este
(S , t + 1) =
(S , t ) PopSize eval (S , t )
F (t )
F (t )
,
PopSize
(S , t + 1) =
(S , t ) eval (S , t )
F (t )
eval (S , t ) = F (t ) + F (t ) ,
atunci
(S , t ) = (S ,0 )(1 + ) t ,
142
adic schema aflat deasupra mediei duce chiar la o cretere
exponenial a numrului de indivizi care se potrivesc cu ea n
generaiile urmtoare.
Pentru a explica teorema schemei, considerm exemplul de
funcionare a algoritmilor genetici prezentat n capitolul anterior.
ntorcndu-ne la schema S 0 , deoarece trei iruri se potrivesc cu
schema, avem
eval (S 0 , t ) =
F (t ) =
eval (v )
i =1
PopSize
387.776822
= 19.388841 .
20
143
v'1 = v11 ,
144
v"13 = (00010100001001010100 | 0000001000110) .
Pe de alt parte, schema S1 va fi distrus deoarece secvenele
fixate 111 i 10 vor fi plasate n descendeni diferii. Rolul
principal n distrugerea sau supravieuirea unei scheme l are lungimea
de definire; (S 0 ) = 2 iar (S1 ) = 32 . n general, punctul de
ncruciare este selectat uniform i aleator dintre cele m 1 poziii.
Rezult c probabilitatea de distrugere a schemei S este
pd (S ) =
(S )
m 1
(S )
m 1
32
2
30
, p s (S 0 ) =
, p d (S1 ) =
= 1 , p s (S1 ) = 0 ,
32
32
32
(S )
m 1
145
Pentru schema S 0 i pc = 0.25 avem
p s (S 0 ) = 1 0.25
2 63
=
= 0.984375 .
32 64
(S )
m 1
(S , t + 1) (S , t )
(S )
eval (S , t )
1 p c
m 1
F (t )
i deci
la generaia t + 1 ne ateptm s avem 3 1.374927 = 4.12 iruri
ce se vor potrivi cu S 0 ; se obine, deci, o valoare mai mic dect 4.19
cnd se consider numai selecia.
146
la generaia t + 2 avem 3 1.374927 2 = 5.67 iruri ce se vor potrivi
cu S 0 ; se obine o valoare mai mic dect 5.85 .
Urmtorul operator considerat este mutaia. Considerm
schema S 0 i irul
v'19 = (111011101101110000100011111011110) .
Se observ c orice mutaie care afecteaz biii 1 4 sau 8 33
permite supravieuirea schemei S 0 , n timp ce orice mutaie pe unul
din biii 5, 6 sau 7 va distruge schema. Biii care duc la distrugerea
schemei sunt cei importani iar numrul lor coincide cu ordinul
schemei. Probabilitatea de alterare a unui bit fiind pm , rezult c
probabilitatea de supravieuire a unui bit este 1 pm ; deci
probabilitatea de supravieuire a schemei este
p s (S ) = (1 pm ) (S ) .
Deoarece pm 1 , probabilitatea poate fi aproximat prin
p s (S ) 1 (S ) pm .
Referindu-ne la schema S 0 i lund pm = 0.01 obinem
p s (S 0 ) 1 3 0.01 = 0.97
Combinnd efectele seleciei, ncrucirii i mutaiei rezult
147
(S , t + 1) (S , t )
eval (S , t )
(S )
(S ) p m ,
1 p c
m 1
F (t )
i deci
la generaia t + 1 ne ateptm ca 3 1.333024 4 iruri s se
potriveasc cu S 0 , adic nu mai mult de 4.19 ct au rezultat
considernd numai selecia i nu mai mult de 4.12 ct au rezultat prin
folosirea seleciei i a ncrucirii
la generaia t + 2 vom avea 3 1.333024 2 5.33 astfel de iruri,
deci nu mai mult de 5.85 respectiv 5.67
Observaie. Formula stabilit funcioneaz n cazul cnd
148
este exponeniat dac fitnessul schemei este constant peste media
populaiei.
Teorema schemei pune un mare accent pe rolul ncrucirii n
selecia hiperplanelor. Pentru a maximiza pstrarea hiperplanelor dup
selecie este necesar s se micoreze efectul distructiv al ncrucirii i
mutaiei. Pentru aceasta trebuie ca mutaia s fie folosit puin sau de
loc. Dup cteva generaii este posibil ca selecia s conduc la fixarea
unei singure valori pentru o anumit poziie: fie 0 fie 1 ; aceasta duce
la convergena prematur, situaie ntlnit frecvent cnd se lucreaz
cu populaii de dimensiune mic.
Fr mutaie este imposibil s se reintroduc valoarea pierdut
a bitului; mutaia acioneaz ca un operator de reamintire, permind
recuperarea unor valori pierdute.
6.3. Blocuri
O categorie special de scheme sunt blocurile. Acestea sunt
scheme cu valori mari ale evalurii, ordin mic i lungime de definire
149
redus. Ipoteza blocurilor afirm c ncruciarea orienteaz cutarea
ctre gsirea blocurilor (soluii pariale) pe care le combin n soluii
globale mai bune. Totui, ipoteza blocurilor poate fi violat. S
considerm schemele
S1 = (111 )
S 2 = ( 11)
(00011111100) .
Acest fenomen poart numele de decepie i este strns legat
de cel numit epistasis care, n termenii algoritmilor genetici, nseamn
o interaciune puternic ntre genele unui cromozom. O posibilitate de
a nltura decepia const n folosirea altui operator genetic:
inversiunea, care va inversa biii dintre dou poziii selectate aleator.
150
De exemplu, schema
S 3 = (111 11)
poate fi regrupat prin inversiune n
S'3 = (11111 ) ,
care reprezint un bloc important.
7
VARIANTE DE ALGORITMI
GENETICI
7.1. Probleme de convergen
Studiul convergenei algoritmilor genetici este una din cele
mai dificile probleme. De aceea s-au ncercat diferite metode de
soluionare a ei. Pentru a evalua a priori viteza de convergen i
precizia unui algoritm genetic s-au introdus mrimi care s msoare
omogenitatea spaiului de cutare i corelaia fitness-distan.
n ambele cazuri se consider c funcia fitness coincide cu cea de
evaluare.
a) Omogenitatea spaiului de cutare
Dificultatea funciei de optimizat este reflectat de deviaia
standard s care arat modul n care este acoperit spaiul soluiilor
admisibile
s=
2
1 n
f ( xi ) f ( x )
n i =1
f (x )
152
unde
n
f(x)=
f ( xi )
i =1
153
este uor de lucrat cu distana Hamming care numr biii pe care
difer cele dou iruri. Corelaia fitness-distan se definete prin
r=
c FD
sF sD
unde
c FD =
)(
1 n
fi f di d
n i =1
154
codificarea problemei determin algoritmul s lucreze ntr-un
populaiei.
Una din implicaiile observaiilor de mai sus este incapacitatea
algoritmilor genetici de a gsi, n anumite condiii, soluia optim,
ducnd la convergen prematur. Exist unele metode de a combate
convergena prematur: utilizarea ncrucirii uniforme, detectarea
indivizilor duplicai din populaie.
Un rol important n determinarea vitezei de convergen l are
diversitatea populaiei, care depinde de metoda de selecie. Este
recomandat selecia dup rang n detrimentul celei dup fitness care
promoveaz superelitele.
iniializeaz P (t )
155
evalueaz P (t )
while not (condiie-terminare) do
begin
t := t + 1
156
Pasul 3. Cei r prini selectai dau natere la r descendeni care vor
fi inclui n P (t + 1) .
Selectarea din paii 1 i 2 se face dup fitness; astfel, un
individ deasupra mediei are anse mari de a fi selectat ca printe i n
acelai timp de a face parte din noua populaie. Pentru a aplica un
tratament uniform tuturor operatorilor genetici, nu vom aplica doi
operatori asupra aceluiai cromozom.
iniializeaz P (t )
repeat
local:= FALSE
selecteaz aleator un individ curent ic
evalueaz ic
157
repeat
until t = MAX
end
158
v1 = (110110101110101111111011011011)
v 2 = (111000100100110111001010100011)
v3 = (000010000011001000000010001000)
vor avea evalurile
f (v1 ) = 11 22 150 = 92
f (v 2 ) = 11 15 150 = 15
f (v3 ) = 11 6 150 = 84
(unu (v3 ) = 6)
egal cu
( )
f v g = 11 30 150 = 180
egal cu
f (vl ) = 11 0 150 = 150 .
obiectiv descrete la 4
159
iniializeaz P (t )
iniializeaz temperatura T
selecteaz aleator un individ curent ic
evalueaz ic
repeat
repeat
f (i ) f (ic )
else if random[0, 1) < exp n
then ic := in
until (condiie-terminare)
T := g (T , t )
t := t + 1
160
Funcia random[0, 1) ntoarce un numr aleator din [0, 1) .
Condiia de terminare verific dac a fost atins echilibrul termic, adic
distribuia de probabilitate a noului individ aproximeaz distribuia
Boltzmann. Totui, n multe aplicaii, acest pas este executat de k ori,
k fiind un parametru al metodei.
t .
cu 12 de 1, avnd evaluarea
f (v 4 ) = 11 12 150 = 18 .
T
T
161
care, pentru temperatura T = 20 d
11
p = exp = 0.57695
20
adic schimbarea este acceptat cu mai mult de 50%.
Dou iruri relativ srace
v5 = (111110000000110111001110100000)
i
v6 = (000000000001101110010101111111) ,
fiecare avnd evaluarea 16, pot produce descendeni mult mai buni
dac ncruciarea are loc ntre a 5-a i a 12-a gen:
v7 = (111110000001101110010101111111) .
Noul descendent v7 are evaluarea
f (v7 ) = 11 19 150 = 59 .
(X , d ) ,
dac urmtoarele
162
condiii sunt verificate pentru orice x, y X :
i) d (x, y ) 0 i d (x, y ) = 0
x=y
ii) d (x, y ) = d ( y, x )
iii) d (x, y ) + d ( y, z ) d ( x, z ) .
Definiia 7.2.
x, y X : d ( f ( x ) , f ( y )) c d ( x , y ) .
Definiia 7.3.
Teorema 7.1.
Fie
( X , d ) un
constant c . Atunci:
( )
x0
aproximaiilor succesive
atunci irul
x0 , x1 = f (x0 ), L, x n = f ( x n1 ), L este
163
iii) are loc estimarea
d xn , x *
cn
d ( x0 , x1 )
1 c
( )
mai bun dect soluia x j dac i numai dac eval ( xi ) > eval x j ,
unde funcia eval d fitnessul unui individ din populaie.
Pentru o
1 n
eval ( pi ) .
n i =1
Teorema 7.2.
pentru
P1 = P2
pentru
P1 P2
164
unde M este limita superioar a funciei eval n domeniul de interes.
Atunci ( X , d ) este spaiu metric complet.
Demonstraie.
165
Teorema 7.3.
P ( 0) X .
Demonstraie. Considerm dou iteraii consecutive n care funcia
atunci
d ( f (P1 (t )), f (P2 (t ))) = 1 + M Eval ( f (P1 (t ))) + 1 + M Eval ( f (P2 (t ))) <
1 + M Eval (P1 (t )) + 1 + M Eval (P2 (t )) = d (P1 (t ), P2 (t )) .
nseamn c funcia
f
P(t )
P(t + 1)
166
Observaie. Din definiia funciei Eval rezult c punctul fix
P* este obinut cnd toi indivizii acestei populaii dau aceeai valoare,
algoritmului
de
tip
urmtoarea
algoritmul C-GA
begin
t := 0
iniializeaz P (t )
evalueaz P (t )
while not (condiie-terminare) do
begin { se construiete contracia}
t := t + 1
selecteaz P (t ) din P (t 1)
recombin P(t )
evalueaz P(t )
if Eval (P(t 1)) Eval (P(t ))
then t := t 1
end
end
contracie
(C-GA)
este
167
168
unde este un parametru al algoritmului, numit rat de reproducere.
Toi indivizii unei generaii au aceeai probabilitate de a fi selectai
pentru reproducere.
Deoarece fitnessul nu influeneaz selecia, vor fi folosii ali
parametri: VRSTA i VIA A . VRSTA reprezint numrul de
generaii n care un individ a supravieuit iar VIA A se atribuie o
singur dat unui individ, dup iniializare sau dup recombinare, i
pstreaz o valoare constant. Un individ este meninut n populaie
atta timp ct VRSTA nu depete VIA A .
Structura algoritmului AG-DVP (Algoritm Genetic cu
Dimensiunea Variabila a Populaiei) este urmtoarea.
algoritmul AG-DVP
begin
t := 0
iniializeaz P (t )
evalueaz P (t )
while not (condiie-terminare) do
begin
t := t + 1
169
evalueaz P(t )
end
end
fitness (i )
VIA A(i ) = min MinLT +
, MaxLT
AvgFit
alocare liniar
fitness (i ) AbsFitMin
AbsFitMax AbsFitMin
170
fitness (i ) MinFit
1
fitness (i ) AvgFit
1
(MaxLT MinLT ) .
2
f1 ( x ) = x sin (10x ) + 1, 2 x 1
171
f 3 ( x) = x sign( x), 1 x 2 ,
deceptiv.
Se pot alege urmtoarele valori pentru parametri:
dimensiunea populaiei =20
= 0.4
probabilitatea de mutaie: pm = 0.015
probabilitatea de ncruciare: pc = 0.65
lungimea unui cromozom = 20
MaxLT = 7 , MinLT = 1
Algoritmul se poate opri cnd nu se mai obin ameliorri ale
celei mai bune valori ntr-un numr precizat de iteraii.
form
de
penalizare
const
eliminarea
soluiilor
nerealizabile
2) utilizarea unor metode de reparare a soluiei nerealizabile
172
dar, uneori, aceste metode sunt la fel de dificile ca i rezolvarea
problemei
3) utilizarea unor metode de decodificare care s garanteze sau
s mreasc foarte mult ansele de obinere a unor soluii realizabile.
Exemplificm rezolvarea unor astfel de probleme considernd
problema rucsacului [56]: fiind date ponderile W [i ] , profiturile P[i ]
i capacitatea C , s se gseasc vectorul binar x = ( x[1], L, x[n]) astfel
nct
n
x[i]W [i] C
i =1
i
n
P ( x ) = x[i ] P[i ]
i =1
173
unde functia de penalizare Pen(x) are valoarea zero pentru soluiile
realizabile x , adic pentru soluiile care satisfac relaia
n
x[i]W [i] C ,
i =1
i =1
n
Pen(x ) = x[i ]W [i ] C
i =1
Pen(x ) = x[i ] W [i ] C
i =1
n toate cazurile,
P[i ]
.
i =1, n W [i ]
= max
174
Algoritmii Ar [i]
rucsac-plin:= false
x':= x
if
then rucsac-plin:=true
while (rucsac-plin) do
begin
i = un obiect selectat din rucsac
175
if
x'[i]W [i] C
i =1
then rucsac-plin:=false
end
end
repararea greedy
( Ar [2]) :
Algoritmii Ad [i]
Acetia folosesc o reprezentare de tip ntreg, componenta a i a, x[i ] , a unui cromozom fiind un ntreg din intervalul [1, n i + 1] . De
fapt, reprezentarea este de tip ordinal, n sensul c pe lng vectorul x
se folosete i o list de obiecte; vectorul este decodificat prin
selectarea obiectului corespunztor din lista curent. De exemplu,
pentru lista L = (1, 2, 3, 4, 5, 6) vectorul (4, 3, 4, 1, 1, 1) este decodificat
n urmtoarea secven: 4, 3, 6 (deoarece 6 este al 4-lea element din
lista curent dup ce au fost eliminate elementele de pe poziiile 4 i
3), 1, 2 i 5. Operatorii genetici acioneaz ca n cazul general, cu mici
176
adaptri. De exemplu, mutaia elementului de pe poziia i va
determina nlocuirea acestuia cu un numr din intervalul [1, n i + 1] .
Algoritmul de decodificare este urmtorul:
Algoritm decod (x )
begin
construct lista de obiecte L
i := 1
SumProfit := 0
SumPonderi := 0
while i n do
begin
j := x[i ]
end
i := i + 1
end
end
177
Ad [1] , n care lista L este construit n mod aleator
Ad [2], n care lista L se construiete ordonnd descresctor
elementele dup raportul profit pondere ; de exemplu, x[i ] = 23 este
interpretat ca al 23-lea element (n ordinea descresctoare a raportului
profit pondere ) din lista curent.
178
c' = ((1, 1) (2, 0) (3, 0) (4, 1) (5, 0)) .
179
Fie cromozomii
i y : c1c2 c3 | d1
a c : a1a2 | c1c2 c3
c a : c1c2 c3 | a1a2
c b : c1c2 c3 | b1b2b3b4
d a : d1 | a1a 2
d b : d1 | b1b2 b3b4
d c : d1 | c1c2 c3
b a : b1b2 b3b4 | a1a2
b c : b1b2 b3b4 | c1c2 c3
b d : b1b2 b3b4 | d1
unde prin a, b, c i d am notat subirurile definite de punctele de
tietur din cei doi cromozomi. ncruciarea de acest tip implic i un
anumit tip de inversiune: cromozomii b a i d c se obin inversnd
subirurile determinate de punctele de tietur.
180
timpul de cutare crete polinomial n raport cu numrul de variabile.
1 0 011
virusul
1 0 0
181
dau
un nou individ gazd
11 01 0
1 0 0
virusul
i
individul gazd
1 0 011
11 0 0
probabilitate de nlocuire.
De exemplu,
virusul
1 0 0
0 0
182
fitvi =
fitvi, j
j S
(1 + ) infri ,t
infri ,t +1 =
( 1 ) infri ,t
infri ,t +1
1 infri ,t
=
infri ,t
dac
fitvi > 0
n caz contrar
dac
fitvi > 0
n caz contrar
dac
183
Lungimea unui virus se modific n concordan cu
iniializare
repeat
selecie
ncruciare
mutaie
infecie viral
nlocuire
until (condiie terminare)
end.
184
SELECTIE
INDIVIZI GAZDA
INFECTIE
CALCULEAZA fitvi
DA
IF fitv
> 0
CRESTE RATA DE
INFECTIE
DESCRESTE RATA DE
INFECTIE
CALCULEAZA lifei
CALCULEAZA lifei
DA
EXTIDE
INCORPORAREA
NU
IF life i
MICSOREAZA
INCORPORAREA
NU
GENEREAZA
INCORPORAREA
185
Prin iniializare se genereaz aleator populaia gazd iar
indivizii de tip virus se obin ca subiruri ale indivizilor gazd.
Arhitectura de baz a metodei se bazeaz pe modelul SSGA ( SteadyState Genetic Algorithm) care nlocuiete indivizii cei mai slabi cu o
pereche de descendeni obinui prin ncruciare i mutaie. Dup
infecie, printele va fi nlocuit cu individul virusat dac fitnessul su
este mai bun dect al printelui.
186
begin
x1* = x * + *
187
compar performanele a doi algoritmi genetici folosii pentru a
rezolva aceeasi problem.
Prima direcie implic studiul unor statistici ale uneia sau mai
multor variabile aleatoare, care dau informaii cu privire la valoarea
medie a soluiei optimale i la robusteea sa (constana aproximrii n
rulri diferite). Generaia n a unui algoritm genetic poate fi
interpretat ca fiind un eantion al unei variabile aleatoare X n , pentru
care se pot lua n calcul diferite statistici t ( X n ) : fitnessul celui mai
bun cromozom, fitnessul mediu al populaiei, etc. Dup k rulri ale
algoritmului (n condiii identice) se obin k valori (Y1 , L, Yk ) ale
variabilei Y = t ( X n ) . Pentru aceste valori se pot calcula:
k
media: M =
i =1
=Y
dispersia: D 2 =
(Y M )
i =1
k 1
deviaia standard: s = D 2
intervalul de ncredere pentru medie
intervalul de ncredere pentru dispersie.
Intervalul de ncredere pentru medie se calculeaz cu statistica
Student cu k 1 grade de libertate: intervalul de ncredere pentru
media cu nivelul de ncredere este
as
as
,Y +
Y
k
k
188
unde a se obine din tabelele distribuiei Student astfel nct s fie
ndeplinit condiia
Y
P a <
< a = .
s k
P k21 > a =
1
1
i P k21 < b =
2
2
.
b
a
Se pot
189
k1
X=
k1
S X Y =
, Y=
i =1
1 k1
SX =
Xi X
k1 1 i 1
(k
k2
Xi
Y
i =1
k2
1 k2 i
, SY =
Y Y
k 2 1 i 1
1 S X2 + (k 2 1)SY2
k1 + k 2 2
1 1
.
+
k1 k 2
(X Y ) (
Y )
S X Y
+ k2 2
190
P2. Pentru nivelul de ncredere i k1 + k 2 2 grade de libertate se
(X Y ) 0 ,
S X Y
deoarece se verific
ipoteza H 0 .
P4. Dac a < t < a atunci se accept ipoteza H 0 ; n caz contrar se
accept ipoteza H 1 .
Asupra dispersiilor se verific ipoteze similare mediilor
H 0 : X2 = Y2 ,
H 1 : X2 Y2 ,
(k1 1, k 2 1)
S X2
S Y2
urmtor.
Algoritmul: ipoteze asupra dispersiei
P1. Se stabilete nivelul de ncredere
P2. Pentru nivelul de ncredere i gradele de libertate (k1 1, k 2 1)
P (F < a ) =
1
1
i P(F > b ) =
2
2
191
P3. Se calculeaz valoarea f =
S X2
S Y2
accept ipoteza H 1 .
Acceptarea ipotezei H 0 spune c cei doi algoritmi au dispersii
statistic egale, deci sunt la fel de robuti. Acceptarea ipotezei H 1
spune c dispersiile celor doi algoritmi sunt statistic diferite, deci cel
cu dispersia mai mic este mai robust.
Evident aceleai metode pot fi folosite pentru a compara orice
algoritmi evolutivi.
8
STRATEGII EVOLUTIVE
8.1 Generaliti
Strategiile evolutive (SE) au aprut din necesitatea de a
rezolva probleme de optimizare de tipul: se cere x* D R n cu
( )
194
n procesul de mutaie. Vectorul reprezint parametrul de control al
strategiei.
Primul algoritm de tip strategie evolutiv a fost propus n
1964, la Universitatea Tehnic din Berlin, de ctre Rechenberg i
Schwefel n scopul rezolvrii unei probleme care cerea amplasarea
unei conducte flexibile ntr-o zon de o anumit form astfel nct
costul s fie ct mai mic. Ideea rezolvrii era: pornind de la o
aproximaie curent se genera alta printr-o perturbaie aleatoare bazat
pe o repartiie normal i se alegea cea mai bun dintre cele dou.
Aceast strategie, numit (1 + 1) , nu opera cu populaii ci urmrea
adaptarea unui singur individ sub aciunea mutaiei. Limitele acestui
model au dus la cutarea unor mecanisme care s implice n evoluie
mai muli indivizi [5, 6, 7, 8, 9, 15, 16, 81, 82]. Dintre acestea
amintim:
Strategia
( , ) : pornind de la cei
individul cel mai bun ( cel pentru care funcia obiectiv este cea mai
mic).
Strategia
( + ) :
195
se folosete doar mutaia pentru a genera indivizi noi, fiind evident c
ncruciarea nu poate fi utilizat. Dac = 1 , selecia urmrete
eliminarea celui mai slab individ (cel care d cea mai mare valoare a
funciei obiectiv) din populaiile reunite. Este evident c dac
individul nou generat este mai slab dect toate elementele populaiei
curente atunci aceasta rmne nemodificat.
Strategia
( , k , , p ) :
caracterizeaz prin:
a) k 1 reprezint durata de via a indivizilor, msurat n
generaii. Valoarea lui k se micoreaz cu 1 la fiecare nou generaie
iar un individ va fi selectat doar dac k > 0 .
b) operaiile de mutaie
o mutaie
specific
bazat pe perturbarea
( x ) =
1
,
x + 2
>0
196
Acest tip de perturbaie prezint avantajul c poate genera descendeni
ndeprtai de prini cu o probabilitate mai mare dect perturbaia
normal (asigurnd o probabilitate mai mare de evadare din minime
locale i o accelerare a procesului de gsire a optimului). Diferena
dintre cele dou funcii de densitate (normal i Cauchy) este ilustrat
n figura 8.1.
b) perturbaiile sunt independente iar parametrii i sunt
determinai prin autoadaptare (cu perturbare log-normal) la fel ca n
cazul strategiilor evolutive clasice.
c) nu se folosete ncruciare nici asupra componentelor
propriu-zise nici asupra parametrilor de control.
d) selecia este de tip turneu.
197
qi [0, 1] ,
urmnd
distribuia
uniform.
Componenta
yi
descendentului va fi
x1i dac qi 0.5
yi =
xi2 dac qi > 0.5
yi
descendentului
x x1 , L, L x p
este
{ x , L,L x }, componenta
1
componenta
xi
printelui
p = , printele care d
198
8.2.1.2 ncruciarea intermediar
j xij
j =1
i = 1, 2, L , n
i
p
j = 1,
j =1
j 0.
199
Experimental, s-a observat c se obin rezultate bune dac pentru
vectorii de poziie se utilizeaz ncruciarea discret iar pentru
parametrii strategiei se folosete ncruciarea intermediar.
8.2.2. Mutaia
Mutaia este cel mai important operator al strategiilor evolutive.
Am vzut c un individ este o pereche ( x, ) , unde vectorul indic
modul n care vectorul de poziie x se transform prin mutaie.
Parametrul de control este supus i el operaiei de mutaie.
Individul ( x, ) se transform prin mutaie n (x' , ') :
sau, pe componente,
> 1 , n modelele ( , ) i + .
200
8.3.1 Strategia (1 + 1)
Modelul iniial al lui Rechenberg consider populaia format
dintr-un singur individ supus operatorului de mutaie. Dup obinerea
descendentului, cei doi membri ai populaiei sunt comparai ntre ei
prin intermediul funciei de adecvare i este reinut individul cel mai
bun. Folosim urmtoarele notaii:
k = un numr de generaii consecutive; de obicei se ia k = 10n ,
consecutive
p (k ) =
s(k )
= frecvena mutaiilor de succes din ultimele k
k
generaii
C= constant, aleas (la sugestia lui Schwefel [79]) ca fiind 0.817,
201
Algoritmul SE(1+1)
begin
t := 1 , P(t ) = {x(t ), (t )}
evalueaz f (x)
while not cond ( P(t )) do
begin
calculeaz p(k )
calculeaz
(t )
nc
(t + 1) = mut ( (t )) = (t )
n
(t ) c
dac
dac
dac
1
5
1
p(k ) =
5
1
p (k ) <
5
p(k ) >
calculeaz
x(t + 1) = mut ( x(t )) = x(t ) + (t + 1) N (0, 1)
end
end
202
Observaii.
(t + n ) = (t )
c (t )
dac
dac
dac
1
5
1
p (k ) =
5
1
p(k ) <
5
p(k ) >
trebuie s creasc
dac raportul este mai mic dect 1 5 atunci valoarea lui
trebuie s descreasc.
203
8.3.2 Strategia ( + 1)
Strategia (1+1) poate fi generalizat prin mrirea numrului
prinilor fiecrui descendent i/sau a numrului descendenilor unui
printe. n strategia
( + 1) ,
cei
indivizi ai
( + )
204
din cei
( , ) .
Deoarece strategia ( , ) i schimb complet populaia la
fiecare nou generaie, ea nu este elitist. Aceast calitate permite
ieirea din zona unui optim local i evoluia ctre optimul global. n
schimb, strategia
( + )
( + )
( , )
au fost
forma
( x, ) ,
205
distribuia normal de medie 0 i dispersie 1. Mutaia standard
nlocuiete individul ( x, ) cu (x' , ') obinut dup regulile:
c1
i p2 =
2n
c2
2 n
' = e pN ( 0 ,1 )
x'i = xi + ' N i (0,1)
adic toate componentele vectorului de poziie se modific folosind
aceeai dispersie; parametrul p ia valoarea p =
c
.
n
206
begin
t := 0
evalueaz P" ( t )
P(t + 1) := selecie (P" (t ) M )
t := t + 1
end
end
207
Kursawe [54] a artat c asigurarea convergenei este
influenat de operatorul de ncruciare folosit; acesta depinde de
forma funciei obiectiv, de dimensiunea spaiului de cutare i de
numrul de parametri ai strategiei.
Condiia de oprire cond se refer, de obicei, la numrul maxim
de generaii dar pot fi luate n consideraie i alte criterii, printre care
cele de mai jos:
1) diversitatea populaiei a sczut sub o anumit limit, semn c
ne aflm n vecintatea unui optim global; diversitatea poate fi
msurat prin diferena calitilor asociate celui mai bun individ i
celui mai neperformant.
2) nu se mai obin mbuntiri semnificative ale funciei obiectiv
Mulimea M poate lua una din valorile:
M = P(t ) pentru strategia ( + )
M = pentru strategia ( , ) .
1 i n)
valorile
de
covarian
cij
208
( 1 i n 1, i + 1 j n ) ale distribuiei normale n dimensionale
avnd densitatea de probabilitate
p( z ) =
det( A)
(2 )n
1
z T Az
e 2
normale; 1 n n
209
n
n = n i n =
' j = j + N j (0, 1) , 1 j n
x' = x + cov( , )
zi = N 0, ( 'i )2 ,
T=
n 1 n
T pq ( ' j ),
p =1 q = p +1
210
j=
1
(2n p )( p + 1) 2n + q .
2
( )
t pp = t qq = cos( j ) i t pq = t qp = sin ( j ) .
c1
2 n
, '=
c2
, 0.0873 (= 5o )
2n
proprietate);
iii)
211
(algoritmul progreseaz n procesul de cutare). O situaie nedorit
este aceea n care acest progres este stopat. Exist dou manifestri ale
acestui fapt:
Convergena prematur. Algoritmul se blocheaz ntr-un optim
local datorit faptului c populaia nu mai este suficient de divers
pentru a susine procesul de explorare.
Stagnare. Algoritmul s-a blocat n condiiile n care populaia este
nc divers, ns mecanismele evolutive nu sunt suficient de
puternice pentru a susine explorarea.
Soluionarea acestor probleme se bazeaz pe alegerea adecvat a
operatorilor i a parametrilor de control; nc nu exist rezultate
teoretice care s furnizeze soluii de evitare a situaiilor de
convergen prematur sau stagnare.
Studiul teoretic al vitezei de convergen se bazeaz pe estimarea
unor rate de progres n cazul unor funcii test simple (funcia sfer i
perturbaii ale acesteia). Prin estimarea ratei de progres s-au obinut
informaii referitoare la alegerea parametrilor de control astfel nct
rata s poat fi maximizat. Exist diverse abordri i diferite msuri
ale progresului strategiilor evolutive. Din punct de vedere practic este
util faptul c strategiile evolutive au cel mult vitez liniar de
convergen.
n absena unei teorii complete a domeniului, multe dintre
proprietile i regulile de proiectare sunt deduse pornind de la studii
212
experimentale. Acestea se efectueaz pe probleme de optimizare
construite n aa fel nct s ridice dificulti metodelor de rezolvare
(de exemplu cu multe minime locale sau cu un minim global greu de
atins din cauza prezenei unor "platouri"). Multe dintre funciile de test
utilizate n analiza strategiilor evolutive au fost construite pentru a
testa metode tradiionale de optimizare i au ridicat dificulti pentru
acestea.
Cum strategiile evolutive implic prezena unor elemente
aleatoare, la rulri diferite ale algoritmului se vor obine rezultate
diferite. Din acest motiv studiul experimental nu poate fi dect unul
statistic caracterizat prin faptul c se vor efectua mai multe rulri
independente i se va determina frecvena situaiilor n care strategia
a avut succes. Se consider c strategia a avut succes atunci cnd cel
mai bun element ntlnit de-a lungul generaiilor (sau cel mai bun
element din ultima generaie) este suficient de apropiat de optim.
Studiile statistice sunt folosite pentru a analiza influena
operatorilor i a parametrilor de control asupra eficacitii strategiei
evolutive. Valoarea lor este limitat datorit faptului c rezultatele
obinute pe funcii test nu pot fi extrapolate pentru orice problem de
optimizare. Coroborate ns cu rezultatele teoretice (obinute pentru
funcii test simple, cum este modelul sferei) au condus la criterii
euristice care au un oarecare succes n practic.
Din punct de vedere statistic prezint interes valoarea medie i
dispersia valorii optime descoperite la fiecare rulare.
213
214
de dinamica fluidelor, determinarea strilor stabile n sistemele
disipative.
Procese dinamice, modelare i simulare: optimizarea unui sistem
socio-economic complex, identificarea parametrilor unui model de
rspndire a unei infecii virale.
Medicin i inginerie medical: controlul optimal al protezelor,
identificarea parametrilor modelelor folosite n farmacologie.
9
PROGRAMARE EVOLUTIV I
PROGRAMARE GENETIC
216
de a realiza predicii asupra mediului informaional n care se afl.
Sistemele
sunt
modelate
prin
automate
Turing
iar
mediul
217
egale cu 1. Mulimea strilor este mulimea {par, impar} iar starea
iniial este par .
Figura 9.1
Figura 9.2
218
Automatul are strile S = {A, B, C} , alfabetul de intrare I = {0, 1} ,
alfabetul de ieire O = {a, b, c}. Tranziia ntre dou stri este data de
funcia
: S I S O
definit printr-o etichet de forma i / o care apare pe o latur ntre
dou stri s k i sl , nsemnnd c
((sk , i )) = (sl , o ) ;
adic dac maina este n starea s k i primete la intrare simbolul
i I atunci ea trece n starea sl i produce la ieire simbolul o O .
unei
tranziii,
adugarea/eliminarea
unei
stri,
219
aceluiai individ s se aplice mai muli operatori de mutaie, numrul
mutaiilor putnd s fie fix sau ales conform unei distribuii de
probabilitate. Dup evaluarea descendenilor se selecteaz cei mai
buni indivizi dintre prini i descendeni; deci se efectueaz o
selecie de tip ( + ) .
Fogel nu a folosit ncruciarea, de aceea muli cercettori din
domeniul algoritmilor genetici au criticat metoda lui, considernd c
nu e suficient de puternic. Totui, rezultatele teoretice i empirice din
ultimii 30 de ani au artat c rolul mutaiei n algoritmi genetici a fost
subestimat iar cel al ncrucirii a fost supraestimat [3, 19, 21, 52].
[ui , vi ] R n , cu ui < vi .
i =1
220
metaprogramare evolutiv, care presupune un mecanism de autoadaptare similar celui de la strategii evolutive. Pentru a ncorpora
v R+n , spaiul indivizilor este extins la
vectorul varianelor
i = i (x ) + i
unde constantele de proporionalitate i i i sunt alese n funcie de
problema de rezolvat; totui, de obicei se consider i = 1 i i = 0 ,
astfel c mutaia devine
x'i = xi + ( x) N i (0, 1) .
221
unde are rolul de a asigura c v'i primete o valoare pozitiv.
Totui, dac variana devine negativ sau zero atunci i se atribuie o
valoare mic > 0 .
Se consider c n programarea evolutiv se codific mai
degrab specii dect indivizi; i cum ncruciarea nu acioneaz la
nivelul speciilor, programarea evolutiv nu folosete acest tip de
operator. Dup crearea a descendeni din prini, prin aplicarea
mutaiei o singur dat asupra fiecrui printe, se selecteaz
indivizi din mulimea prinilor P (t ) reunit cu cea a descendenilor
q >1
care
const
n:
pentru
fiecare
individ
( )
1 dac (ai ) a i
wi =
j =10 altfel
q
unde indicii
222
begin
t := 0
evalueaz P (0) :
while ( T (P (t )) true ) do
begin
{
}
{(a'1 (t ), L, (a' (t )))} cu (a' (t )) = ( f (x' (t )), k )
end
end
223
224
asistat de calculator i biomimetism (subdomeniu al biologiei care
studiaz procese imitative din natur). Programarea genetic urmeaz
structura general a unui algoritm genetic, folosind ncruciarea ca
operator principal i mutaia ca operator secundar. Particularitile
programrii genetice sunt legate de modul de reprezentare a
indivizilor, fapt ce necesit i alegerea adecvat a operatorilor.
225
aritmetici, relaionali i logici precum i apeluri ale unor funcii
matematice. n acest caz, limbajul formal asociat este independent de
context i fiecrui cuvnt (expresie) i se poate asocia un arbore de
descriere. Nodurile interioare ale arborelui sunt etichetate cu operatori
sau nume de funcii iar cele terminale sunt etichetate cu nume de
variabile sau constante. De exemplu, expresia max( x y, x + 5 y )
va fi reprezentat prin
Figura 9.3
Mulimea nodurilor interioare se numete mulimea funciilor
F = { f1 , f 2 ,L, f n f } ; n exemplul nostru F = {max, + , }. Fiecare
226
aritmetic: +, , , /
muimea
terminalelor
T = t1 , t 2 , L, t nt ;
exemplul
nostru
booleene
C = {+, , , x, y , 1, 0}, cu x
i y variabile ntregi
i y variabile reale.
227
Exist mulimi pentru care proprietatea de nchidere nu este
verificat; de exemplu:
C = {+, , , /, x, y, 1, 0},
x x+ y
, etc
,
0 xx
Mulimea C = +, ,
dac y = 0
x 1
=
, operaie ce va fi notat n continuare cu
y x y dac y 0
div
log( x) =
dac x = 0
log( x ) altfel
x=
x .
228
combinnd elementele lui C . De exemplu, logica ne spune c
C = {AND, OR, NOT , x, y} permite implementarea oricrei funcii
exp( x) = 1
exp( x) = 1 + x
exp( x) = 1 + x +
x
2
exp( x) = 1 + x +
x2
1
+
x3
2 +1 1+ 2 + 2
229
*
x
-
Figura 9.4
Dimensiunea i forma programelor iniiale sunt controlate
selectnd noduri din F i T , n funcie de adncimea lor n arbore.
Arborii pot fi reprezentai i ca liste de liste. De exemplu, pentru
primii doi arbori anteriori avem
2 x ] , [* [+ x 3] 2] .
230
Figura 9.5
Metoda grow selecteaz noduri din C dac adncimea lor
este mai mic dact o valoare minim i din T n caz contrar. Cum C
conine i elemente terminale, aceast metod produce arbori iniiali
de diferite forme i adncimi, ca n Figura 9.6
Figura 9.6
Metoda ramped half and half combin cele dou metode
anterioare, pentru a da o mai mare diversitate populaiei iniiale. Ea
lucreaz dup urmtorul algoritm
231
for i = 1 to max _ adncime do
begin
50
genereaz
max _ adncime 1
50
genereaz
max _ adncime 1
selecteaz t T
insereaz t n arbore
end
else
begin
232
if metoda = full
then selecteaz f F
else selecteaz f F T
insereaz f n arbore
if f F
then
begin
n := aritatea lui f
for i = 1 to n do
La apelul
genereaz _ expresie ([+ / ], [x y 0 1 2 3], 3, full )
[ [+ [
233
Figura 9.7
La apelul
genereaz - expresie ([+ 1], [x y 0 1 2 3], 3, grow)
se genereaz expresia
[+ [
3 x ][ 2 [/ 1 y ] ]]
Figura 9.8
234
prini
descendeni
Figura 9.9
235
Dei este un operator secundar, mutaia permite modificarea
structurilor arborescente n moduri n care ncruciarea nu o poate
face. n funcie de efectul pe care l are asupra structurii, exist trei
variante de mutaie:
mutaia simpl: modific eticheta unui nod selectat aleator
Figura 9.10
mutaia de expandare: const n nlocuirea unui nod terminal cu
Figura 9.11
236
mutaia de reducere: const n nlocuirea unui subarbore cu un nod
terminal
Figura 9.12
n general se poate alege un nod al arborelui i subarborele
dominat de acel nod este nlocuit cu altul generat aleator. Astfel,
mutaia poate fi vzut ca ncruciarea cu un arbore generat aleator.
237
multe programe (bune sau mai puin bune) vor fi schimbate prin
x = 1
-1
4
-1
Figura 9.13
n urma interpretrii, valoarea nodului rdcin este valoarea
programului. Aplicaiile posibile ale programrii genetice sunt multe
i variate, singura problem fiind definirea unei funcii fitness
238
corespunztoare. Tehnicile de scalare i penalizare folosite n
algoritmi genetici sunt aceleai, cu diferena c pentru a decide dac
un program este bun sau nu, trebuie executat odat sau de mai multe
ori cu date de intrare diferite sau n diferite contexte.
O clas de probleme n care programarea genetic s-a dovedit
foarte util este regresia simbolic. Aceasta este o tehnic folosit
foarte des n interpretarea datelor i const n gsirea coeficienilor
unei funcii, obinute ca o combinaie de funcii elementare astfel nct
aceasta s aproximeze ct mai bine o funcie cunoscut prin valorile ei
n puncte date. Termenul simbolic semnific faptul c nu suntem
interesai n gsirea parametrilor optimi (numere) ci a funciilor
optime (expresii, reprezentri simbolice).
Pentru a folosi programarea genetic n rezolvarea problemelor
de regresie simbolic este necesar:
s avem o mulime de puncte date, unde fiecare punct reprezint
239
yi eval ( prog , xi )
i
240
la generaia 6
10
SOFTWARE DE ALGORITMI
EVOLUTIVI
242
GENEsYs (autor, Thomas Bck)
este o extensie a
subpopulaii.
Simple GA (autor, Stephen J. Hartley) este scris n Java i
este mai complex dect programele anterioare. Principala slbiciune
const n absena unor clase care s implementeze structuri de date
complexe (de exemplu, arbori) dar structura ierarhiei de clase permite
utilizatorului s-i creeze cu uurin astfel de reprezentri.
243
GAL: Simple GA in Lisp (autor, Bill Spears) este un program
n Common Lisp bazat pe pachetul GENESIS. Folosete ncruciarea
multipl aplicat la 60% din indivizi dar este posibil s se utilizeze i
ncruciarea uniform; mutaia este bazat pe fitnessul proporionat.
GALIB (autor, Matthew Wall) este scris n C++ i poate fi
rulat sub diverse sisteme de operare (Win 9.x, Win NT, Linux, MAC,
etc). Este un pachet deosebit de complex: conine clase predefinite
pentru reprezentarea cromozomilor ca iruri binare, matrice binare,
vectori reali, matrice reale, arbori, etc. i definete un mare numr de
operatori de evoluie pentru fiecare din aceste reprezentri.
Documentaia este foarte detaliat, coninnd peste 190 de pagini n
format html.
SUGAL (autor, Andrew Hunter) este scris n C i poate fi
utilizat sub Linux i Windows. Pentru cei care nu cunosc foarte bine
limbajul C++, SUGAL este o alternativ la pachetul GALIB. La fel
ca i acesta dispune de o gam larg de reprezentri i de operatori
evolutivi. Documentaia este foarte bogat, ghidul de utilizare avnd
n jur de 145 de pagini html. De asemenea, conine un mare numr de
exemple, ceea ce permite ca de fiecare dat s se gseasc printre ele
unul destul de apropiat de problema de rezolvat.
GAGA: A Genetic Algorithm for General Application este
un algoritm general folosit pentru a minimiza funcii obiectiv
244
dificile.Versiunea original, scris de Hilary Adams, a fost modificat
de Ian Poole i rescris n C de Jon Crowcroft .
GENOCOP, Genetic-2, Genetic-2N:
(autor, Zbigniew
245
SES: Simple Evolution Strategy (autor, Joachim Sprave) este
un
246
TOLKIEN: TOoLKIt gENetics-based applications (autor,
Anthony Yiu-Cheung Tang) este o bibliotec de clase C++ pentru
utilizarea algoritmilor genetici i a sistemelor de clasificare. Pachetul
include textul surs, un manual de utilizare, un tutorial i cteva
programe demonstrative.
GAucsd: Genetic Algorithm Software Package (autor, Nici
Schraudolph) este bazat pe GENESIS, dar se deosebete prin
numeroase mbuntiri; cele mai importante se refer la simplificarea
scrierii evalurii funciilor i la codificarea parametrilor. Aceste
modificri duc la creterea performanei cutrii n spaii continue.
GAC: Simple GA in C
247
GAMusic: Genetic Algorithm to Evolve Musical Melodies
(autor, Jason H. Moore) genereaz melodii scurte iar utilizatorul le
asociaz fitnessul corespunztor. Operaiile de mutaie i ncruciare
la nivelul frecvenelor sunt controlate de utilizator. Fiecare serie de
note muzicale este reprezentat n binar ntr-un tablou de dimensiune
128, ceea ce permite 30 note pe melodie i furnizeaz un spaiu al
soluiilor de aproximativ 3.4 10 38 melodii.
GENALG: Genetic Algorithm package written in Pascal
Domain-independent
generic
GA
software
248
GENlib: Genetic Algorithms and Neural Networks (autor,
BIBLIOGRAFIE
[1] Arabas J., Michalewicz Z., Mulawka J. GAVaPS A Genetic
Algorithm with Varying Population Size, in [62], pp. 73-78
[2] Bck T.- The interaction of mutation rate, selection and self
adaptation within a genetic algorithm, in [57], pp. 85-94
[3] Bck T.- Optima mutation rates in genetic search, in [28] , pp.
2-8
[4] Bck T., Hoffmeister F., Schwefel H.-P. - A survey of evolution
Strategies, in [11], pp. 2-9
[5] Bck T., Rudolpf G., Schwefel H.-P. Evolutionary Programming
And Evolution Strategies: Similarities and Differences, in [23],
pp. 11-22
[6] Bck T., Schwefel H .-P. An Overview of
Algorithms
for
Parameter
Evolutionary
Optimization, Evolutionary
250
[9] Bck T., Schwefel H. -P. Evolutionary
computation.
An
251
Recombination, in [70], pp. 265-283
[18] Eshelman L. J. (Ed.) Proc. of the Sixt Int. Conf. on Genetic
Algorithms, Morgan Kaufmann, San Mateo, CA, 1995
[19] Eshelman L. J., Schaffer J. D. Crossovers niche, in [29], pp.
9-14
[20] Fitzpatrick J. M., Grefenstette J. J. Genetic algorithms in noisy
environments, Machine Leraning 3 (1988), pp 101-120
[21] Fogarty T. C. Varying the probability of mutation in the genetic
algorithm, in [74], pp. 104-109
[22] Fogel D. B. - Evolving Artifcial Intelligence. PhD thesis,
University of California, San Diego, 1992.
[23] Fogel D. B. Evolutionary computation : Toward a New
Philosophy of Machine Intelligence, IEEE Press, Piscataway, NJ,
1995
[24] Fogel D. B., Atmar W. (Eds.) Proc. Second Annual Conf.
Evolutionary Programming (EP93), San Diego, CA, 1993
[25] Fogel L. J. Autonomous automata, Industrial Research 4
(1962), pp. 14-19
[26] Fogel L. J. Toward inductive inference automata, Proc. Int.
Federation for Information Processing Congress, Munich, 1962,
pp. 395-399
[27] Fogel L. J., Angeline P. J., Bck T. (Eds.) Proc. 5th Conf. on
Evolutionary Programming, MIT Press, Cambridge, MA, 1996
252
[28] Fogel L. J., Owens A. J., Walsh M. J. Artificial Intelligence
through Simulated Evolution, John Wiley, New York, 1966
[29] Forrest S. ( Ed.) Proceedings of the Fifth International
Conference on Genetic Algorithms, Morgan Kaufmann, San
Mateo, CA, 1993
[30] Fox B. R., McMahon M. B. Genetic operators for Sequencing
Problems, in [70], pp. 284-300
[31] Fukuda T., Furuhashi T., Fogel D. B. (Eds.) Proc. 1996 IEEE
Int. Conf. Evolutionary Computation (ICEC96), Nagoya, IEEE
Press, Piscataway, NJ, 1996
[32] Goldberg D. E. Optimal Initial Population Size for BinaryCoded Genetic Algoritms, TCGA Report No. 85001, Tuscaloosa,
Univ. of Alabama, 1985
[33] Goldberg D. E. Genetic Algorithms in Search, Optimization
and Machine Learning, Addison-Wesley, Reading, MA, 1989
[34] Goldberg D. E., Korb B., Deb K. Messy genetic algorithms:
Motivation, analysis
and
Systems,
253
[37] Goldberg D. E., Lingle R. Alleles, Loci and the TSP, in [38],
pp. 154-159
[38] Grefenstette J. J. (Ed.) Proc. of the First Int. Conf. on Genetic
Algorithms, Lawrence Erlbaum Associates, Hillsdale, NJ, 1985
[39] Grefenstette J. J. Optimization of Control Parameters for
Genetic Algorithms, IEEE Transactions of Systems, Man and
Cybernetics, Vol. 16, No. 1, pp. 122-128, 1986
[40] Grefenstette J. J. (Ed.) Proc. of the Second Int. Conf. on
Genetic Algorithms, Lawrence Erlbaum Associates, Hillsdale, NJ,
1987
[41] Grefenstette J. J., Gopal L., Rosmata B., Van Gucht D. Genetic
Algoritm for The TSP, in [38], pp. 160-168
[42] Groan C., Oltean M., Algoritmi evolutivi,
Gazeta
de
254
Craiova, June 2004, pp. 38-43
[47] Iancu I. A Ciric's Fix Point Theorem in Genetic Algorithms.
Proc. of 5-th Int. Conf. on Artificial Intelligence and Digital
Communications, Craiova, september 2005, pp. 53-60
[48] Iancu I.
[49] Jog P., Suh J. Y., Gucht D. V. The Effects of Population Size,
Heuristic Crossover and Local Improvement on a Genetic
Algorithm for
the Traveling
pp. 110-115
[50] Jones T., Forrest S. Fitness Distance Correlation as a Measure
Problem Difficulty for Genetic Algorithms, in [18], pp. 81-87
[51] Joza J. R. Hierarchical genetic algorithms operating on
Populations of computer programs, in [86], pp. 768-774
[52] Koza J. R. Genetic Programming, MIT Press, Cambridge, MA,
1992
[53] Kubota N., Kojima F., Hashimoto S., Fukuda T. Information
Transformation by virus-evolutionary genetic programming,
Artificial Life Robotics, 4(2000), 171-174
[54] Kursave F. A variant of Evolution Strategies for vector
optimization, in [80], pp. 193-197
[55] Luchian H., Luchian S. Clasificare evolutiv, Editura Integral,
Iai, 1999
[56] Martello S. , Toth S., Knapsack Problems, John
Wiley,
255
Chichester, UK, 1990
[57] Mnner R., Manderick B. (Eds.) Proc. 2nd Conf. on Parallel
Problem Solving from Nature, North-Holland, Amsterdam, 1992
[58] Matthews J. Diophantine Equation Solver,
http://www.generation5.org/content/2000/diophantine_ga.asp
[59] McDonnell J.R., Reynolds R. G., Fogel D. B. (Dds.)- Proc. of
the Fourth Annual Conference on Evolutionary Programming,
the MIT Press, 1985
[60] Michalewicz, Z. -
Optimization
of
Parameter
Optimization
Problems,
256
Press, Cambridge, MA, 1996
[66] Morn, F., Moreno A., Morelo J. J., Chacn P. (Eds.) Advances
in Artificial Life, Proc. Third European Conf. Artificial Life
(ECAL95), Springer, Berlin, 1995
[67] Oliver I. M., Smith D. J. , Holland J.R.C.
study
of
First
Canonical Genetic
257
on evolutionary computation, vol. 5, no. 1, 1994
[74] Schaffer J. (Ed.) Proc. of the Third Int. Conf. on Genetic
Algorithms, Morgan Kaufmann Publishers, San Mateo, CA, 1989
[75] Schaffer J., Caruana R., Eshelman L., Das R. A study of
Control Parameters Affecting Online Performance of Genetic
Algorithms for Function Optimization, in [74], pp. 51-60
[76] Schwefel H. P.
Evolutionsstrategie
und
Numerische
258
Science, December, 1995
[83] Sebald A. V., Fogel L. J. (Eds.) - Proceedings of the 3rd Annual
Conference on Evolutionary Programming, World Scientific
Publishing, River Edge, NJ, 1994
[84] Seniw D. A Genetic Algorithm for the Traveling Salesman
Problem, MSc Thesis, Univ. Of North Carolina at Charlotte, 1991
[85] Shimojima K., Kubota N., Fukuda T. Virus-evolutionary
genetic algorithm for fuzzy controller optimization, in [40],
369-388
[86] Shridharan K. E. (Ed.) - Proc. 11th Int. Joint Conf. on Artificial
Intelligence, Morgan Kaufmann, San Francisco, CA, Vol. 1, 1989
[87] Spears W. M., De Jong K. A. On the virtutes of parametrized
uniform crossover, in [11], pp. 230-236
[88] Suh J. Y., Gucht Van D. Incorporating Heuristic Information
into Genetic Search, in [40], pp. 100-107
[89] Syswerda G. Schedule Optimization Using Genetic Algorithms,
in [12], pp. 332-349
[90] Szalas A., Michalewicz Z. Contractive Maping Genetic
Algorithms and Their Convergence, Department of Computer
Science, Univ. of North Carolina al Charlotte, Technical Report
006-1993
[91] Viinescu R. Un model genetic pentru problema orarului,
Gazeta de informatic, Vol. 11/6, 2001, pag. 34-37
259
[92] Whitley D. (ED.) - Foundations of Genetic Algorithms, Morgan
Kaufmann Publishers, Saint Louis, Missouri, U.S.A, 1993
[93] Whitley D. Genetic Algorithm Tutorial, Statistics
and
and
Traveling
Scheduling