Documente Academic
Documente Profesional
Documente Cultură
1. Introducere
Algoritmii genetici fac parte dintr-o clasa de metode numerice inspirate de procese
biologice. Folosii in general pentru optimizri (dar nu numai) algoritmii genetici au fost aplicai cu
succes pentru rezolvarea unor probleme dificile in inginerie, biologie, tiine sociale, arhitectura etc.
Simplu de neles i de programat, algoritmii genetici au evoluat ntr-o ntreag clasa de metode de
optimizare evolutiva mai mult sau mai puin nrudite. Conceptele care stau la baza evoluiei
biologice, variabilitatea indivizilor i selecia naturala, introduse Darwin in secolul XIX i-si gsesc
astfel, un secol mai trziu, o surprinztoare aplicabilitate in tiina calculatoarelor.
Acest lucru nu este total neobinuit daca avem in vedere faptul ca nc de la nceputurile sale
informatica s-a inspirat din biologie. Alan Turing, John von Neumann, Norbert Wiener cei care au
inventat practic calculatorul au fost nsufleii de ideea creri unei "viei artificiale" gsind inspiraie
in modelele oferite de natura. Nu trebuie deci sa ne surprind faptul ca primele calculatoare au fost
folosite nu doar pentru a "sparge" coduri sau a calcula traiectoriile rachetelor balistice ci i pentru a
modela funcionarea creierului uman, a reproduce procesele de nvare i a simula evoluia
biologica. Aceste domenii de cercetare au cunoscut de-a lungul anilor momentele lor de
efervescenta i de stagnare. Fiecare dintre ele s-a dezvoltat i se regsete astzi ca un domeniu bine
conturat. Prima direcie a dat natere reelelor neurale, a doua domeniului nvrii automate, iar a
treia se regsete astzi sub umbrela larga a calculului evolutiv, din care algoritmii genetici sunt cel
mai cunoscut reprezentant.
1.1 Scurt istoric al calculului evolutiv
Primele publicaii in domeniu apar in ani 1960 dar ideea de a folosii soluii evolutive pentru
optimizrii in inginerie dateaz cu siguran din anii 1950.
Plecnd de la optimizarea profilelor aerodinamice Rechenberg introduce in 1965 termenul
de "strategie evolutiva" (Evolutionsstrategie in original). Dei uor diferit de ceea ce se va nelege
mai trziu prin algoritmi genetici regsim principalele ingrediente: o populaie de soluii candidat
supusa variaiei i seleciei, al cror "ADN" (reprezentat de o parametrizare a formei folosind
numere reale) este "forat" sa evolueze ctre soluii din ce in ce mai bune. Ideea a fost dezvoltata de
Schwefel (1975, 1977). Domeniul strategiilor evolutive a rmas activ pana astzi i a fost
dezvoltat, oarecum independent de algoritmii genetici, de ctre Back, Hoffmeister, Schwefel etc.
Tot in aceasta perioada apare termenul de programare evolutiva. Introdusa in 1966 de Walsh
i Owens, programarea evolutiva folosete automate finite ca i soluii candidat. Diagramele lor de
tranziie a strilor sunt supuse unor mutaii aleatoare i cele mai bune soluii sunt selecionate.
Definiia domeniului a fost extinsa de Fogel i Atmar (1993) pentru a include "programe" - secvene
de cod generate aleator i supuse legilor de evoluie.
De-a lungul timpului multe alte abordri au fost propuse dar nu au avut un impact major
asupra domeniului. Merita sa menionam lucrrile unor biologi i geneticieni care au folosit
simulri ale proceselor genetice: Rees, Toombs i Baricelli (1967), Martin i Cockerham (1972) i
care au influenat cu sigurana domeniul pregtind apariia algoritmilor genetici.
mpreuna strategiile evolutive, programarea evolutiva i algoritmii genetici formeaza baza
domeniului calculului evolutiv.
Am lasat intentionat la sfarsit algoritmii genetici. Inventati de John Holland la sfritul
anilor 1960 i dezvoltai la Universitatea din Michigan de Holland i echipa sa, algoritmii genetici
nu au fost iniial studiai pentru rezolvarea unor probleme de optimizare. Holland studia fenomenele
de adaptare in natura. Scopul sau era de a dezvolta mecanisme de adaptabilitate in sistemele
artificiale in principal prin "importarea" mecanismelor de adaptare biologice. Cartea sa,
"Adaptation in Natural and Artificial Systems", publicata in 1975 prezint algoritmii genetici ca o
abstractizare a evoluiei biologice i ofer un cadru teoretic pentru domeniul algoritmilor genetici i
al sistemelor adaptabile.
Metoda propusa de Holland consta in evoluia unei populaii de cromozomi (de exemplu
iruri de bii, dar i orice alte simboluri discrete) folosind un fel de "selecie naturala" mpreun cu
operatori inspirai din genetica (ncruciarea, mutaia i inversia). Fiecare cromozom este format din
mai multe gene i fiecare gena din simboluri. Algoritmul de selecie acorda note fiecrui cromozom
i permite reproducerea predilecta numai a celor mai buni. Ca i in natura procesul nu este
exclusivist dar cei mai buni cromozomi vor avea mai muli descendeni dect cei mai puin buni.
ncruciarea preia de la ambii prini "gene", pri din cromozomul prinilor cu care genereaz un
"copil", intru-un mod foarte asemntor recombinrii biologice intre doua organisme cu un singur
cromozom (haploide); mutaia afecteaz aleator genele unui cromozom schimbnd unul sau mai
multe simboluri iar inversiunea rearanjeaz pri continui din cromozom schimbnd ordinea
genelor.
Introducerea unui algoritm bazat pe o populaie mpreuna cu operatorii genetici de
ncruciare, inversie i mutaie reprezint o inovaie majora fata de variantele existente la acea
vreme. Spre comparaie algoritmul lui Rechenberg de strategie evolutiva folosete o populaie de
doar doi indivizi, un tata i un fiu i doar mutaia ca operator. La fel i programarea evolutiva
1.2. Terminologie
unui anumit aspect al organismului (culoarea ochilor, a pielii, lungimea i modelul blnii etc.). In
organismele vii unele gene pot codifica cteodat mai multe aspecte simultan, aparent necorelate
(este de exemplu cunoscuta relaia dintre culoarea ochilor i acuitatea auditiva la pisici, controlata
de aceiai gena - pisica comuna europeana cu ochi albastru intens este aproape surda din cauza
faptului ca gena responsabila pentru culoarea ochilor controleaz i dezvoltarea aparatului auditiv).
Diversele valori posibile ale unui aspect (de exemplu albastru, verde, maro, negru pentru culoarea
ochilor) sunt denumite allele. Fiecare gena este poziionata constant (locus) in interiorul
cromozomului.
Majoritatea organismelor au mai muli cromozomi in fiecare celula. ntreg coninutul de
material genetic (toi cromozomii luai la un loc) se numete genom-ul organismului respectiv.
Termenul de genotip se refera la o instaniere particularizata a genomu-lui in organismul respectiv
(un set de valori ale genelor). Doi indivizi cu genom identic aparin aceluiai genotip. Genotipul
determina, prin evoluia fetala i dezvoltarea ulterioara, fenotip-ul individului in cauza,
caracteristicile sale fizice i mentale cum ar fi culoarea ochilor, nlimea, dimensiunea creierului
dar i instinctele i inteligenta.
Organismele ale cror cromozomi sunt aezai in perechi poarta numele de diploide;
organismele ale cror cromozomi sunt singulari se numesc haploide. In natura majoritatea
organismelor cu reproducere sexuata sunt diploide. Omul are 46 de cromozomi aranjai in 23 de
perechi (este deci diploid). Acetia se regsesc in toate celulele somatice. In timpul reproducerii
sexuale apare ncruciarea. In fiecare printe are loc schimbul de gene intre fiecare pereche de
cromozomi i se formeaz un gamet (un singur cromozom). Gameii de la fiecare printe se unesc
pentru a crea un set complet de cromozomi diploizi. In cazul reproducerii sexuale haploide, genele
sunt ncruciate intre doi cromozomi singulari ai fiecrui printe. In ambele cazuri procesul nu este
perfect fiind afectat de erori de copiere a irului ADN; acestea sunt mutaiile i ele fac ca indivizii
rezultai din aceiai prini sa aparin la fenotip-uri diferite.
Funcia de fitness a unui organism este de obicei definita fie ca probabilitatea ca individul
respectiv sa triasc i sa se reproduc (viabilitate) fie ca o funcie de numrul de urmai
(fertilitate).
In algoritmii genetici termenul de cromozom se refera la o soluie candidat a unei probleme,
de obicei codata ca un sir de bii. Genele sunt fie bii individuali, fie mici blocuri de bii adiaceni
care codifica un anumit aspect al soluie candidat. De exemplu pentru o problema de optimizare cu
o singura variabila numr ntreg cromozomul poate fi chiar reprezentarea binara a variabilei iar
gena este formata dintr-un singur bit; pentru o problema multidimensionala putem considera
reprezentarea binara a fiecrei variabile o gena. In acest caz un allele ntr-un sir de bii este 0 sau 1.
Pentru simboluri nebinare (aparinnd unor alfabete cu mai mult de doua simboluri) mai mult de
soluiilor" se refera la asocierea dintre mulimea tuturor soluiilor posibile (foarte probabil infinita
in majoritatea cazurilor) i o metrica oarecare pe aceasta, o "distanta" intre soluiile candidat (nu
vom intra in detalii matematice aici, este suficient sa amintim ca distanta este un numr (scalar) real
pozitiv).
Sa consideram de exemplu una dintre cele mai importante probleme in bioinginerie: sinteza
proteinelor. Sa presupunem ca dorim sa gsim structura unei proteine - o secvena de aminoacizicare sa aib o anumita configuraie spaiala (configuraia spaiala determina proprietile proteinei)
folosita de exemplu pentru un antibiotic. Spaiul soluiilor este format din toate proteinele posibile
(este infinit). Pentru al restrnge sa consideram doar proteinele mai scurte de 100 de aminoacizi.
Cum avem 20 de aminoacizi in fiecare locus numrul candidailor nu mai este infinit dar rmne
foarte mare (de ordinul 20100. Daca reprezentam aminoacizii ca litere ale alfabetului soluiile
candidate sunt de forma:
A G G M C G B L.
Pentru problema data un posibil candidat pentru distanta este numrul de locci in care doua
soluii candidat difer. De exemplu distanta dintre A G G M C G B L i MG G M C G B L este 1
iar distanta dintre A G G M C G B L i L B M P A F G A este 8. Un algoritm de cutare in acest
spaiu ar trebui sa aleag la fiecare pas ce soluii vom testa. Acesta ar trebui sa se bazeze pe soluiile
deja testate. Majoritatea algoritmilor de cutare se bazeaz pe "localitatea" unei soluii bune: vor
presupune ca exista o "corelaie" intre distanta i calitatea soluiilor "vecine". In aceasta caz se
ncadreaz majoritatea algoritmilor clasici de tip gradient (extinii aici la spatii discrete). Algoritmii
genetici presupun alegerea unor "prinii" buni din diferite regiuni ale spaiului soluiilor i
ncruciarea lor in sperana produceri, ocazional, de descendeni mai buni. Problema aleasa este
considerata dificila pentru algoritmii clasici dar este o aplicaie tipica pentru algoritmii genetici.
Un alt concept important este cel de "relief de fitness". Definit iniial de biologul Sewell
Wright in 1931 in contextul genomului unei populaii, conceptul a fost preluat in terminologia
algoritmilor genetici. Un relief este o reprezentare a funcia de fitness asociata fiecrui genotip pe
ntreg spaiul soluiilor.
gsirea optimului global, dar acest lucru nu este valabil in toate cazurile. De exemplu in problemele
de timp real (care apar de obicei in aplicaiile de control) un optim local, sau chiar o soluie
suboptimala dar care ndeplinete un numr de criterii poate fi considerata buna. In alte probleme,
de exemplu in problemele de proiectare a formelor, explorarea mai multor soluii ndeprtate intre
ele este mai importanta dect gsirea unui maxim global.
2.Algoritmi genetici
2.1 Algoritmi de cutare in spaiul soluiilor
Majoritatea algoritmilor de optimizare clasici sunt algoritmi iterativi, care ncearc sa
construiasc o soluie plecnd de la un punct in spaiul soluiilor i "deplasndu-se" ctre vrf. Acest
proces poate fi insa plin de "capcane" in cazul unui relief complex, majoritatea algoritmilor de tip
gradient identificnd in astfel de cazuri un minim local sau devenind instabili pentru anumite valori
iniiale.
inversiunea - aceasta este rareori implementat in algoritmii genetici. Explicaia consta din faptul ca,
in natura, inversiunea afecteaz forma 3D a proteinei rezultate prin schimbarea locu-ului anumitor
gene, determinnd o (re)activitate mai mare sau mai mica a genelor, fr a modifica trstura pe
care acestea o controleaz. In cazul construciei simplificate a cromozomului artificial inversiunea
ar afecta semnificaia genelor fiind un proces apropiat de mutaie i deci deja implementat. Un
exemplu in care implementarea inversiunii este necesara este cel discutat in capitolul anterior
referitor la sinteza proteinelor.
Putem privi operaia de selecie ca pe un operator aplicat ntregii populaii. Considernd i
ncruciarea i mutaia ca acionnd la nivelul populaiei (prin aplicarea repetata asupra tuturor
indivizilor) vom avea deci trei operatori: selecia, ncruciarea i mutaia cu care sa evoluam
populaia ctre optim global.
Selecia ncearc sa imite "presiunea de a se adapta" pe care speciile naturale o resimt din
partea condiiilor de mediu. Indivizii mai puin adaptai sunt eliminai iar cei mai adaptai, cu
funcia fitness mai mare, sunt favorizai s i transmit informaia genetica generaiei urmtoare.
ncruciarea permite soluiilor candidat sa "schimbe informaii". In versiunea ce mai simpla
(ncruciare intr-un singur punct), doua soluii candidat alese de operatorul de selecie sunt
ncruciate intr-un locus ales aleator, descendentul motenind prima parte a genotip-ului sau de la
"tata" i a doua de la "mama". In majoritatea cazurilor aceasta este o simpla decupare i alipire de
iruri de bii dar in cazul unor codificri mai complexe ale cromozomului pentru evitarea
"montrilor" neevaluabili trebuie avut grija sa obinem urmai care sa aparin spaiului soluiilor.
Mutaia este in cel mai simplu caz implementabila prin schimbarea valorii unui/unor bii din
reprezentarea cromozomului. Mutaia, dei dup cum vom vedea indispensabila, trebuie folosita cu
prudenta.
Dup aplicarea operatorilor de selecie, ncruciare i mutaie (in aceasta ordine) avem o
noua generaie i indexul de generaie este crescut cu unul. Acest proces este continuat de un numr
fix de ori sau pana cnd un criteriu de convergenta este ndeplinit.
La prima vedere nu este deloc evident de ce procesul ar trebui sa convearg ctre optimul
global sau chiar de ce poate fi folosit ca algoritm de cutare in spaiul soluiilor. Aplicaiile
algoritmilor genetici pentru rezolvarea unor probleme "grele" de optimizare extrem de diverse
demonstreaz insa, la nivel empiric, convergenta algoritmului. O alta demonstraie este chiar
existenta organismelor biologice.
Dei la prima vedere algoritmul este simplu exista mai muli parametrii care trebuie luai in
considerare pentru a aplica algoritmii genetici unei probleme date:
cum arata algoritmul de ncruciarea i cat de des se aplica (probabilitatea ca rezultatul unei
ncruciri sa ia locul unui printe i numrul de descendeni ai unei perechi)
dimensiunea populaiei iniiale. Valorile tipice sunt intre 20 i 10000 funcie de dimensiunea
spaiului soluiilor, relief, sensibilitatea funciei fitness etc.
un criteriu de convergenta.
Pentru a putea urmrii evoluia procesului de optimizare sa consideram o funcie simpla:
f(x)=x2 ;
Evident rspunsul este x=4095 dar scopul exemplului este de a releva problemele ridicate de
algoritmii genetici. Urmtorul algoritm este doar una dintre posibiliti:
1. Codificam cromozomul ca un ntreg pe 12 bii. Alegem o populaie iniiala de 8 iruri de 12
bii aleatori (de exemplu 101001101010, 110011001100, ...)
2. Valoare "decodificata" a variabilei x este valoare in zecimal a irului binar. De exemplu:
000000000111 este 7, 000000000000=0 i 111111111111=4095
3. Evaluam funcia fitness - calculam x2 pentru fiecare membru al populaiei (de exemplu
pentru x=000000000111=7 rezulta x2 = 49)
4. Selecionam jumate din populaie pe baza funciei fitness (in cazul nostru rmnem cu patru
soluii candidat)
5. Alegem aleator o pereche de cromozomi (cu condiia ca fiecare cromozom selecionat la
pasul anterior sa fie folosit cel mult odat). Alegem un locus aleator i formam un
descendent prin alipirea sub-irurilor decupate din prini. Putem crea astfel doi cromozomi
copil diferii.
6. Aplicam mutaia ocazional (in cazul nostru cu o probabilitate de 1/6) schimbnd valoarea
unui bit aleator in cromozomi fii.
7. Formam o noua generaie din prinii alei la pasul 4 i suficieni copii pentru a menine
dimensiunea populaiei (opt in cazul nostru). Meninerea dimensiunii populaiei nu este
necesara din punct de vederea al algoritmului genetic dar simplifica urmrirea exemplului.
copii
000001101010
111100011100
Numrul
Cromozomul
valoarea lui x
cromozomului
valoarea funciei
fitness
110101100100
3428
11751184
010100010111
1303
1697809
101111101110
3054
9326916
010100001100
1292
1669264
011101011101
1885
3553225
101101001001
2889
8346321
101011011010
2778
7717284
010011010101
1237
1530169
Numrul
Cromozomul
valoarea lui x
temporar al
valoarea funciei
fitness
cromozomului
1
110101100100
3428
11751184
101111101110
3054
9326916
101101001001
2889
8346321
101011011010
2778
7717284
Numrul
Cromozomul
valoarea lui x
cromozomului
valoarea funciei
fitness
11/0101100100
3428
11751184
10/1111101110
3054
9326916
101101/001001
2889
8346321
101011/011010
2778
7717284
111111101110
4078
16630084
100101100100
2404
5779216
101101011010
2906
8444836
101011001001
2761
7623121
Populaia iniiala avea o valoare medie a funciei fitness fmed de 5065797 i o valoare maxima
fmax (pentru cel mai "bun" cromozom) de 11751184. In iteraia a doua aceste valori s-au ridicat la
fmed=8402107 respectiv fmax=16630084. Urmtoarea populaie temporara este:
Numrul
Cromozomul
valoarea lui x
temporar al
valoarea funciei
fitness
cromozomului
1
11/0101100100
3428
11751184
10/1111101110
3054
9326916
111111101110
4078
16630084
101101011010
2906
8444836
Remarcam ca in noua populaie temporara nu exista nici un cromozom cu bitul mai puin
semnificativ setat. In absenta mutaiei nici un cromozom generat de acum nainte nu va putea avea
bitul cel mai puin semnificativ setat dei aceasta caracteristica era prezent in populaia iniiala.
Dominanta unor anumite genotipuri, in special dominanta in fazele incipiente poate ridica probleme
i exemplifica necesitatea mutaiei. Dup cum spunea Darwin "selecia naturala sau artificiala preia
i amplifica variaiile favorabile unei specii dar nu poate face nimic in absenta acestora". Mutaia
apare astfel ca un mijloc de a menine diversitatea genetica a populaiei.
Folosirea operatorului de mutaie permite trecerea peste astfel de neajunsuri ale ncrucirii
i obinerea optimului global. Ea nu este neaprat necesara pentru a "inventa" noi informaii ci doar
pentru meninerea diversitii genetice. Rentorcndu-ne la exemplul nostru, mutaia va permite, la
un moment dat, apariia unui cromozom selectabil cu 1 in poziia LSB permind astfel atingerea
maximului global 111111111111=4095. Progresul algoritmului genetic (iniializat aleator cu o alta
populaie) poate fi urmrit in fig. 3. Algoritmul converge in aproximativ 20 de generaii pentru orice
iniializare. Mutaia a fost implementata pentru aceasta rulare cu o probabilitate de 1/12 pentru
fiecare bit. Aceasta se compune cu probabilitatea ca descendentul respectiv sa fie supus operatorului
de mutaie (care a fost aleasa 1/6) rezultnd o probabilitate de 1/72 ca un anumit bit al unui copil sa
fie afectat in fiecare generaie.
3. Teorema 'Schema'
3.1 Definiii
O demonstraie completa i riguroasa a convergentei pentru fiecare din variantele de
implementare ale algoritmilor genetici nu exista dar domeniul nu este lipsit de baze teoretice.
Principalul rezultat a fost, vreme de 25 de ani, teorema 'schema' obinuta de Holland in 1975.
Abordri mai noi folosind aparatul matematic al mecanicii statistice au nceput sa apra dup anul
2000 in lucrrile Adam PrgelBennett i Jonathan Shapiro. In cele ce urmeaz vom ncerca sa
urmrim demonstraia originala in versiunea simplificata de Goldberg in 1989.
Cuvntul 'schema' (in limba engleza schema/schemata) se traduce in contextul dat prin
ablon, model. In cele ce urmeaz vom folosi insa denumirea originala din limba engleza, dei
sensul cuvntului 'schema' in limba romana este uor diferit.
O schema este un ablon fix descriind un subset de iruri cu similaritati in anumite poriuni,
bine definite. Ca o consecina, iruri aparinnd aceleai scheme au, intr-o anumita msura, acelai
coninut informaional. Dei teorema este valabila (si se poate demonstra) pentru orice set de
simboluri discrete (alfabet), de orice dimensiune, vom considera mai departe pentru claritate doar
cazul binar. Acest lucru ne permite sa folosim doar trei simboluri 0, 1 i #. In orice sir metasimbolul # intr-o anumita poziie (locus) semnifica existenta unui bit de valoare 0 sau 1. De
exemplu, irurile:
101001
si
111001
pentru o populaie data numrul schemelor diferite posibile se reduce drastic. Acest lucru se
ntmpla in primul rnd din cauza faptului ca un numr foarte mare de scheme sunt comune. Apoi,
mai ales dup un numr de iteraii, nu toi membrii populaiei vor fi unici, rezultant o reducere a
numrului posibil de scheme. O prima concluzie empirica este ca pe msura ce numrul de
generaie creste numrul de scheme posibile descrete.
Nu toate schemele sunt egale. Acoperirea spaiului soluiilor de ctre o schema depinde de
numrul de meta-simboluri din schema. Astfel #### acoper tot spaiul soluiilor de lungime 4 dar
101# nu acoper dect doua soluii candidat. Schemele sunt clasificate dup ordinul lor. Ordinul o
al unei scheme S este numrul de poziii din schema ocupate cu 0 sau 1 i nu cu #, adic, daca
notam cu m numrul de meta-simboluri dintr-o schema avem:
o(s)=L-m
De exemplu
o(#1#0)=2
o(####)=0.
Lungimea definitorie a unei scheme, notata d, este distanta dintre primul i ultimul simbol
real (nu meta-simbol) din sir.
De exemplu
d(#1#0)=4-2=2
d(####)=0-0=0
d(1101)=4-1=3
(S,g)>0
atunci
este probabil ca daca in medie reprezint iruri peste media funciei fitness la generaia g,
atunci:
(S,g+1) > (S,g)
unde notaia * denota o valoare estimata.
In mod asemntor schemele reprezentnd, in medie, cromozomi cu performante slabe vor fi
reduse numeric. Mai exact, daca selecia se face pe baza unei scheme proporionale cu funcia
fitness probabilitatea Pi de selecie (intr-un singur eveniment de selecie) pentru un anumit
cromozom este data de:
Pi ( g ) =
fi ( g )
N
j= 1
f j(g)
Intr-un astfel de aranjament, schemele vor simi "presiunea" generata de selecie prin intermediul
cromozomilor care sunt instane ale fiecrei scheme. Daca u(S, g) este media funciilor fitness ale
tuturor instanelor schemei S existente la generaia g in populaie atunci:
* ( S , g + 1) =
u(S , g )
(S , g )
f med ( g )
(3.1)
Ecuaia (3.1) este cunoscuta sub numele de ecuaia de cretere a schemei i arata ca numrul
de instane ale oricrei scheme S la generaia urmtoare depinde de valorile u(S) in generaia
curenta. Ecuaia este dedusa in absenta ncrucirii si, cel mai important, in absenta mutaiilor
aleatoare.
Presupunnd ca exista in genom o schema ale crei instane au valori ale funciei fitness
peste valoarea medie, de tipul f med ecuaia (3.1) devine:
* ( S , g + 1) =
f med ( g ) + f med ( g )
(S , g )
f med ( g )
adic
* ( S , g + 1) = (1 + ) ( S , g )
sau nc
* ( S , g + 1) = (1 + ) g ( S , g = 0)
(3.2)
Ecuaia (3.2) este un rezultat foarte important i merita sa ne oprim un pic asupra lui. Daca
1+ este supraunitar, adic daca o anumita schema are media peste cea a populaiei avem de a face
cu o progresie geometrica. Aceasta implica ca schemele ale cror instane au funcia fitness peste
valoarea medie a populaiei (>1) vor creste exponenial iar cele cu valori ale funciei fitness sub
valoarea medie a populaiei (<1) vor descrete exponenial. Dei sunt cel mult N selecii in fiecare
generaie (presupunnd un schimb complet de generaii) algoritmul reuete sa realizeze ctiguri /
pierderi exponeniale pentru un numr foarte mare (mult mai mare ca N) de scheme in paralel.
Condiia necesara pentru ca algoritmul sa ajung la soluie este ca in populaia iniiala sa existe
schema respectiva.
Raionamentul de mai sus, dei incomplet, ne ofer o explicaie pentru faptul ca algoritmii
genetici converg: ei realizeaz prelucrarea in paralel a unui numr foarte mare de scheme i folosesc
multiplicatori exponeniali pentru favorizarea respectiv defavorizarea diverselor scheme in funcie
de criteriul de fitness al instanelor.
3.3 Efectul ncrucirilor
Perturbaiile introduse in ecuaia (3.2) de operatorul de ncruciare depind de schemele
implicate in genom, mai exact de lungimea definitorie a fiecrei scheme in parte. De exemplu
cromozomul
C=00001100
reprezint (printe multe alte) i urmtoarele doua scheme:
S1=0######0
si
S2=####11##
Daca C este selectat pentru ncruciare cu un alt cromozom i punctul de taiere este intre bitul patru
i cinci, adic
C=0000/1100
atunci schema S2 va supravieui necondiionat (cel puin un copil va moteni bii 5 i 6) dar schema
S1 nu va supravieui dect probabilistic (in acest caz doar daca MSB-ul cromozomului cu care se
face mperecherea este 0). De fapt, pentru majoritatea punctelor de taiere devine evident ca S2 va
supravieui i S1 nu. Acest lucru se datoreaz faptului ca d(S1)>>d(S2). Trecnd la ecuaii,
probabilitatea ca o schema sa fie distrusa de o operaie de ncruciare este:
d (s)
L 1
Data fiind probabilitatea de ncruciare Pc , ansa de supravieuire la generaia urmtoare este mai
mare sau egala cu
1 Pc
d (S )
L 1
Aplicnd aceasta corecie in (3.2) obinem o noua formula pentru ecuaia de cretere a schemei
* ( S , g + 1) =
u(S , g )
d (S )
( S , g )(1 Pc
)
f med ( g )
L 1
(3.3)
* ( S , g + 1) =
u(S , g )
d (S )
( S , g )(1 Pc
o( S ) Pm )
f med ( g )
L 1
(3.4)
In concluzie schemele scurte, de ordin redus i cu instanieri avnd valori ale funcii
fitness peste media populaiei vor creste exponenial in generaiile viitoare. Astfel de scheme sunt
denumite blocuri de construcie. Algoritmii genetici ncearc sa ajung la optimul global prin
alipirea unor astfel de blocuri. Aceasta este ipoteza blocurilor de construcie.
Numrul de scheme procesate la fiecare iteraie de ctre algoritmii genetici este uria. El
variaz (funcie de criteriile de selecie i de dimensiunea populaiei) undeva intre 2L i N2L. Multe
vor fi perturbate de ncruciri i mutaii dar este posibil sa estimam numrul minim de scheme
procesate in mod util, adic care supravieuiesc i cresc exponenial. Rspunsul este de ordinul lui
N3 dar complexitatea aparatului matematic necesar pentru demonstraie depete cadrul acestei
prezentrii (o demonstraie completa poate fi urmrit in cartea lui Goldberg din 1989).
Performanta algoritmilor genetici de a procesa la fiecare generaie N3 scheme folosind doar
N comparaii a fost denumita paralelism implicit i explica convergenta, aproape necondiionata, a
4. Particulariti de implementare
Avnd in vedere consideraiile teoretice din capitolul anterior putem deduce cteva concluzi cu
caracter practic.
Prima ntrebare la care ne propunem sa rspundem este: Cnd este oportuna folosirea
algoritmilor genetici? Dei un rspuns exact nu exista cteva linii cluzitoare se pot distinge din
cele expuse pana acum. Atunci cnd spaiul soluiilor este mare, tim apriori ca funcia fitness nu
este lina i nici unimodala, sau tim ca este afectata de zgomot de nalt frecventa i un optim
global nu este neaprat necesar atunci algoritmii genetici au anse mari sa funcioneze mai bine
dect orice alt algoritm slab (care nu folosete informaii specifice despre structura funciei
fitness).
Este de asemenea util sa formulam concluzii cu situaiile in care algoritmi genetici nu sunt o
alegere buna:
Daca spaiul soluiilor este redus (finit i limitat) atunci o cutare exhaustiva poate oferi
rezultate mai bune.
Daca spaiul este cunoscut lin i unimodal atunci un algoritm de tip gradient este mult
superior algoritmilor genetici.
Daca spaiul soluiilor candidat este bine neles i problema a fost ndelung studiata sunt
anse mari ca sa existe un algoritm constructivist dedicat pentru acel tip de problema (vezi
de exemplu problema comis-voiajorului) care sa fie mult mai eficient dect orice alt
algoritm general.
binara dar cu un fenotip diferit de genotip. Acest lucru se realizeaz prin asocierea nenaturala de
valori unui sir binar. De exemplu pentru codificarea Gray (introdusa de Bethke in 1980 i dezvoltata
de Caruana and Schaffer in 1988) codul binar natural, care prezint dezavantajul unor salturi de
forma la trecerea de la o valoare la alta (de exemplu trecerea de la 7 la 8 presupune trecerea de la
0111 la 1000) este nlocuit cu codul Gray la care trecerea de la o valoare la alta se face ntotdeauna
prin variaia unui singur bit (aceiai trecere de la 7 la 8 presupune trecerea de la 0100 la 1100).
Hillis a dezvoltat o alta reprezentare binara numita codare binara diploida cu avantaje pentru
reprezentarea funciilor periodice (codificarea diploida a fost propusa iniial de Holland in 1975 i
dezvoltata de Goldberg in 1989).
In ceea ce privete folosirea unui alfabet de cardinal mare Holland (1975) da un contraargument
teoretic. Ideea de baza este ca o codificare cu un numr mare de allele i lungime scurta a
cromozomului duce la scderea gradului de paralelizare implicita cu meninerea dimensiunii
spaiului soluiilor i deci la o convergenta mai slaba.
Codificarea binara este nenaturala pentru foarte multe probleme. Pentru aceste cazuri
alfabetul natural al problemei sau chiar numere reale sunt mult mai uor de neles i de
implementat. Exemple in acest sens includ problema sintezei proteinelor, reprezentarea grafurilor,
reprezentarea real a constrngerilor (introdusa de Meyer i Packard) sau nvarea prin evoluie in
reelele neuronale (introdusa de Montana de Davis) unde ponderile sunt numere reale.
Folosirea unui spaiu continuu (numere reale) presupune separarea fenotipului de genotip i
introducerea unui echivalent mult mai realist al reprezentrii unei gene. Presupune de asemenea
redefinirea operatorilor genetici i introducerea unor reguli constructiviste pentru a nu crea montri.
4. 2 Codificarea adaptiva
De multe ori motivul pentru care se ajunge la folosirea algoritmilor genetici este lipsa de informaii
despre soluie. Din pcate in schema clasica de codificare decizia cea mai importanta i anume
lungimea cromozomului se ia la nceput iar aceasta lipsa de informaii poate duce la imposibilitatea
gsirii unei soluii din motive de reprezentare!
Pentru a putea genera soluii a cror complexitate nu este cunoscuta apriori este necesar sa putem
construi soluii candidat de lungimi diferite. Aceasta ridica problema alocrii variabile in interiorul
cromozomului a genelor fr ca acestea sa i piard funcionalitatea i semnificaia.
Problema este rezolvata in natura prin faptul ca aciunea genelor este relativ independenta de poziia
lor in cromozom. Folosirea unei codificri adaptive readuce intre operatorii genetici inversiunea.
Codificarea unui cromozom simplu 01001101 trebuie fcuta acum cu precizarea poziie fiecrei
allele i devine ((1,0), (2,1), (3,0), (4,0), (5,1), (6,1),(7,0),(8,1)) mai mult din punctul de vedere al
fenotipului cromozomul ((1,0), (2,1), (4,0), (5,1), (3,0), (6,1),(7,0),(8,1)) este identic cu cel
precedent (si deci are aceiai funcie fitness). Operatorul de inversiune nu a fcut dect sa schimbe
poziia nu i valoarea allele-lor 3 i 5 i nimic mai mult. Dar a schimbat ceva esenial i anume
lungimea definitorie a schemei asociate, ideea fiind de a produce reordonri in care schemele cu
valori peste medie sa aib anse mai mari de supravieuire. Presupunnd ca in ordonarea iniiala
schema 00**01** este foarte importanta atunci dup reordonare obinem o reducere a lungimii
definitorii (noua schema fiind 0010****) i deci o cretere a probabilitii de supravieuire.
4.3 Strategii de selecie
Selecia unei subpopulaii pe baza funciei fitness brute s-a dovedit o problema relativ greu
de rezolvat i cu impact major asupra convergentei algoritmilor genetici.
Metoda iniiala propusa de Holland, permitea unui cromozom sa aib un numr de urmai
proporional cu valoarea sa (valoarea unui cromozom fiind funcia fitness adimensionalizat cu
media funciilor fitness ale populaiei). Aceasta se realizeaz printr-un algoritm numit ruleta i
consta in asignarea, pentru fiecare individ, a unei felii dintr-o roata proporional cu valoarea sa,
rotirea rotii i alegerea acelui individ unde s-a oprit roata. Procedeul se reia de N ori pentru a
genera o subpopulaie de dimensiune ceruta. Pentru dimensiuni mari ale populaiei procedeul
funcioneaz dar pentru dimensiuni mici de multe ori fluctuaiile stohastice elimina cromozomi cu
drept de reproducere. Dei se pot genera algoritmi care sa garanteze realizarea numrului permis
de urmai (de exemplu "stohastic universal sampling"- SUS introdus de Baker in 1987) metodele
bazate pe clasificarea proporionala genereaz probleme datorita dominantei prea timpurii i
restrngerii diversitii genetice.
Un algoritm alternativ a fost propus de Forest in 1985 i dezvoltat de Goldberg 1989.
Denumit scalare sigma algoritmul folosete o adimensionalizare a funcie fitness de forma:
f (i ) f (t )
1+
ExpVal (i, t ) =
2 (t )
1.0
daca (t ) > 0
daca (t ) = 0
unde ExpVal(i,t) este valoare unui individ cu funcia fitness f(i) la generaia t, iar f(t) este valoarea
medie a funciei fitness pentru toata populaia iar (t) este deviaia standard. Avantajul acestui gen
de scalare este pstrarea diversitii genetice atta timp cat deviaia standard este mari.
Pentru a evita pierderea celor mai buni cromozomi, De Jong a introdus noiunea de elitism.
Acesta consta pur i simplu in pstrarea artificiala a celor mai buni cromozomi de la o generaie
la alta in ideea de a nu pierde o eventuala soluie.
Variaia presiunii de selecie dup un anumit program este posibila folosind o scalare
cunoscuta sub numele de scalare Boltzmann. Aceasta metoda introduce noiunea de temperatura.
Cu cat temperatura este mai sczuta cu att presiunea de a selecta indivizi mai buni este mai mare.
Scalarea Boltzmann este data de:
e
ExpVal (i, t ) =
f (i )
f (i )
T
t
Unde f(i) este funcia fitness pentru cromozomul i iar < > denota media populaiei la generaia t.
Selecia prin turnir permite realizarea unui efect asemntor cu un efort de calcul ceva mai
mic. Doi cromozomi sunt alei la ntmplare i se genereaz un numr aleator k (sa zicem intre 0 i
1). Daca acesta este mai mic dect o valoare data r (sa zicem 0.75) atunci cromozomul cu fitness-ul
cel mai mare este ales sa fie printe altfel cel cu fitness-ul mai mic. Cei doi cromozomi sunt
reintrodui in populaia iniial i procedeul se reia. Prin variaia lui r intre 0.5 i 1 se poate varia
presiunea de selecie.
5. Concluzii
In treizeci de ani de existenta algoritmii genetici au evoluat de la stadiul de studii de laborator la cel
de produs industrial. Dei cu o fundaie teoretica nedefinitivata riguros, si-au dovedit calitile in
rezolvarea unor probleme considerate grele. Aparent simplu, implementarea cu succes intr-o
problema particulara data nu este directa. Exista numeroase variante de implementare i o literatura
relativ bogata, dar alegerea optima a diverilor parametrii presupune experimentri i ajustri
iterative. Un numr de probleme ateapt nc clarificarea teoretica iar altele sunt in stadiu
experimental in diverse universiti i laboratoare.
Optimizarea folosind algoritmi genetici se recomanda in general atunci cnd metodele
tradiionale dau gre:
- numr mare de variabile (pana la ordinul miilor sau chiar zecilor de mii)
- parametri sunt discrei, sau un mix discret/continuu
- funcia obiectiv are numeroase minime i maxime locale si/sau este zgomotoasa
- funcia obiectiv este rezultatul unui proces de msura fiind influenta de erori aleatoare
- funcia obiectiv nu este difereniabila sau derivatele pariale nu se pot calcula
- funcia obiectiv este rezultatul unei simulri numerice complexe
Algoritmii genetici vin astfel sa completeze gama tradiional a metodelor de optimizare.
5. Bibliografie