Sunteți pe pagina 1din 25

Algoritmi genetici

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

folosea iniial doar mutaia ca operator.


Dar marele merit al lui Holland este acela de a fi oferit o fundaie teoretica solida
domeniului. Demonstrarea convergentei i stabilitii algoritmilor genetici a deschis drumul ctre
aplicaii rezervate pana nu de mult metodelor "clasice" de optimizare. Mai mult, aceasta
fundamentare teoretica, bazata pe conceptul de ablon ("schema" in original) a constituit vreme de
25 de ani baza tuturor dezvoltrilor ulterioare.
In ultimii ani graniele intre diversele domenii ale calculului evolutiv au devenit oarecum
vagi. Ce se nelege azi prin algoritmi genetici poate sa difere, cate odat substanial, de conceptul
introdus de Holland acum 30 de ani. Folosirea cromozomilor continui, a codajului, a metodelor de
accelerare a convergentei, elitismul i selecia competitiva, algoritmii hibrizi i metodele alternative
de ncruciare, segregaia geografica i migraia, meta GA etc. au schimbat, uneori fundamental, nu
doar algoritmii in sine ci i graniele domeniului i aplicaiile sale. Unele dintre aceste metode, dei
se aseamn cu originalul, au un aer familiar i se nscriu in familia calculului evolutiv au
fundamentri teoretice diferite si, cu greu i printr-o forare de limbaj, se pot numi algoritmi
genetici. In timp, probabil vor cpta o identitate proprie.
Dei in cele ce urmeaz vom folosi algoritmii genetici ca pe o maina eficienta i robusta de
optimizat merita sa reamintim ca nu aceasta a fost menirea lor iniiala. Cartea lui Holland din 1975
prezint o viziune mult mai larga. Mai nou (1993), De Jong dezvolta unele dintre ideile lui Holland
in "Genetic Algorithms are NOT Function Optimizer" (folosirea majusculelor de ctre De Jong este
intenionat) i ajunge la concluzii surprinztoare, cu implicaii filozofice, privind potenialul
algoritmilor genetici in sistemele naturale i artificiale.

1.2. Terminologie

Ca orice domeniu specializat algoritmii genetici au un "jargon" propriu, in mare parte


mprumutat din biologie i genetica, dei de multe ori, entitile la care se refer sunt mult mai
simple dect originalul biologic. nainte de a merge mai departe vom ncercam sa lmurim, foarte
pe scurt, semnificaia unor termeni in contextul calculului evolutiv.
Toate organismele vii (excluznd viruii) sunt formate din celule, fiecare celula coninnd
acelai set de unul sau mai muli cromozomi - iruri de ADN - care servesc ca un "plan de
construcie" pentru organism. Un cromozom poate fi conceptual mprit in gene - fiecare codnd o
anumita proteina. In sistemele biologice fiecare proteina este o secvena de aminoacizi (in natura
exista 20 de aminoacizi diferii). La modul grosier ne putem gndi la o gena ca i o codificare a

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

doua allele sunt posibile pentru acelai locus.


ncruciarea in contextul algoritmilor genetici consta in construirea unui cromozom nou din
doi prini haploizi, folosind pentru fiecare locus material genetic de la unul dintre ei.
Mutaia consta in inversarea uneia sau mai multor gene din cromozom (sau, in cazul unui
alfabet extins in schimbarea valorii unui locus ales aleator cu un nou allele)
Majoritatea aplicaiilor algoritmilor genetici folosesc populaii haploide, in particular un
singur cromozom. Genotip-ul unui individ intr-un algoritm genetic folosind iruri de bii pentru
cromozomi este pur i simplu configuraia de bii a individului respectiv. In marea majoritatea a
cazurilor noiunea de fenotip nu se folosete dei pentru cazurile complexe de codificare
cromozomiala, de exemplu in cazul folosirii algoritmilor genetici pentru antrenamentul reelelor
neuronale exista att nivelul genotip-ului (codificarea binara a reelei) cat i cel al fenotip-ului
(reeaua nsi).
Copiind procesele biologice putem sa ne facem o ideea despre cum arata un algoritm genetic
tipic. El ar trebui sa cuprind urmtoarele ingrediente:
1. Un numr iniial de soluii candidat (alese aleator din spaiul soluiilor posibile) ale
problemei. Aceasta este populaia iniiala.
2. O modalitate de a evalua fiecare soluie (cat de "potrivit" sau "nepotrivit" este fiecare
candidat). Aceasta este funcia fitness.
3. O metoda de a forma soluii noi (speram mai bune!) pornind de la cele existente. Acetia
sunt selecia i doi dintre cei trei operatori genetici: ncruciarea i inversia.
4. O metoda de a menine diversitatea populaiei. Aceasta este mutaia.
Cu doar cteva concepte enunate mai sus putem sa ne facem o idee despre cum arata un
algoritm genetic. Implementarea sa este relativ simpla i nu necesita concepte matematice dificile.
Spre deosebire de problemele clasice de optimizare nu trebuie sa cunoatem derivatele pariale sau
totale ale funciei obiectiv (mai mult aceasta poate sa nu fie continua; poate sa fie definita pe un
spaiu multidimensional discret etc.). Problemele care apar in de robusteea i convergenta
algoritmului, alegerea parametrilor, condiiile de oprire etc.

1.3 Spaiul soluiilor


Ideea de a ajunge la un optim prin ncercarea unor soluii candidat este att de rspndita in
informatica nct a cptat propriul ei nume: cutare in spaiul soluiilor. Termenul de "spaiul

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.

Fig. 1 Un relief de fitness simplu pentru functia


portanta. In mod ideal solutia optima este data de
pozitia "varfului"
Un astfel de grafic este denumit relief din cauza formei pe care funcia fitness o are,
prezentnd dealuri, vrfuri, vai i alte aspecte similare reliefului fizic. Wright asociaz evoluia unei
populaii cu micrile de-a lungul unor anumite "drumuri" in relief . In acest context adaptarea
poate fi privita ca deplasarea ctre maxime ("vrfuri") locale. Condiiile de mediu, ecosistem etc.
afecteaz att populaia cat i funcia de mediu nsi, un vrf local putndu-se transforma intr-o
vale sau o zona plata. Procesul de adaptarea la mediu va "muta" populaia ctre un nou "vrf"
(optim local).
Sa consideram de exemplu cazul unui profil aerodinamic generat de o funcie cu doi
parametri (notai aici generic cu a i b). Spaiul soluiilor candidat este in acest caz infinit i aparine
lui R2 fiind un dreptunghi de forma [amin..amax]x[bmin..bmax]. Daca ncercam un numr mare de
combinaii (a, b) i trasam graficul in coordonate carteziene (a pe axa x, b pe axa y i portanta pe
axa z) obinem o reprezentare a funciei fitness pe spaiul soluiilor candidat. O astfel de
reprezentare este data in Fig. 1. Pentru probleme mai complicate, cu mai multe dimensiuni (cum
este de obicei cazul) sau daca nu putem definii o relaie de ordine stricta pe spaiul soluiilor
situaia devine mai greu de vizualizat. Concepte de spaiu al soluiilor i cel de relief de fitness
rmn valabile atta timp cat putem definii o distanta intre soluii i putem evalua fiecare candidat.
In particular spaiul soluiilor poate fi chiar infinit dimensional.
Astfel de "peisaje" pot fi surprinztor de complexe cu numeroase maxime i minime locale,
discontinuiti etc. Vrful cel mai nalt este denumit optimul global, daca ne referim la valorile
soluiei sau maximul global daca ne referim la valorile funcie fitness. Vrfurile mai mici sunt
referite ca optim local sau maxim local. In general, scopul oricrui algoritm de optimizare este

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.

Fig. 2 Chiar i pentru probleme bidimensionale


relieful poate fi complex
Spre deosebire de acetia, algoritmii genetici sunt iniializai cu o populaie de soluii
candidat. Aceasta este aleasa de obicei aleator si, de preferat, astfel nct sa acopere uniform spaiul
soluiilor candidat. Un algoritm genetic tipic va folosi apoi selecia i doi operatorii genetici
(ncruciarea i mutaia) pentru a "mana" populaia pe parcursul unor pai distinci numii generaii
ctre optimul global.
De remarcat ca dei in procesele biologice apare i un al treilea operator genetic -

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.

2.2 Un exemplu simplu

Dei la prima vedere algoritmul este simplu exista mai muli parametrii care trebuie luai in
considerare pentru a aplica algoritmii genetici unei probleme date:

o metode de codificare a cromozomilor (binar, valori reale, valori simbolice etc.)

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.

cum se aplica mutaia i cat de des (probabilitatea de mutaie)

un criteriu de convergenta.
Pentru a putea urmrii evoluia procesului de optimizare sa consideram o funcie simpla:
f(x)=x2 ;

cu x ntreg, 0 <= x <= 4095

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.

8. Reluam de la pasul 2 i repetam pentru un numr de generai.


Sa urmrim acum in detaliu cum evolueaz procesul de optimizare. Pentru procesul de
ncruciare avem de exemplu (caracterul / specifica poziia unde am decupat cromozomi):
prini
000/100011100
111/001101010

copii
000001101010
111100011100

ntorcndu-ne la exemplul nostru sa consideram populaia iniiala:

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

Funcia de fitness ne permite selectarea cromozomilor 1, 3, 6 i 7. tergnd restul de


cromozomului obinem o populaie redusa pregtita pentru ncruciare.

Numrul

Cromozomul

valoarea lui x

temporar al

valoarea funciei
fitness

cromozomului
1

110101100100

3428

11751184

101111101110

3054

9326916

101101001001

2889

8346321

101011011010

2778

7717284

Urmeaz sa alegem perechi la ntmplare i sa aplicam ncruciarea. In exemplul nostru


caracterul / marcheaz locul in care a avut loc ncruciarea. Cei patru cromozomi selecionai i cei
patru copii astfel creai rentregesc populaia la dimensiunea iniiala (nu vom aplica deocamdat
mutaia):

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.

Fig. 3 Evolutia functiei fitness functie de numarul


generatiei. Se remarca ca in absenta mutatiei
maximul global nu este atins
Dei algoritmul genetic construita funcionat perfect pentru acest exemplu simplu este
evident ca multe probleme au fost ignorate i multe aspecte rmn de clarificat pentru rezolvarea
unui caz real. In particular cum se trateaz problema variabilelor reale, des ntlnite in optimizrile
numerice, care este cea mai buna forma de codare cromozomiala, cum se aleg parametrii
algoritmului etc. Multe din aceste ntrebri capt rspunsuri, cel puin pariale, printr-un studiu
teoretic mai riguros al condiiilor de convergenta.

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

sunt ambele instane ale schemei 1##001.


Invers, un sir poate sa aparin la mai multe scheme, de exemplu 010111 este coninut i in
schema 01#111 i in schema #101## precum i in multe alte scheme posibile.
Schemele sunt un formalism util din mai multe puncte de vedere, cea mai evidenta utilizare
fiind, deocamdat, simplitatea de scriere.
Pentru exemplificare sa revenind la exemplul din capitolul precedent, cu f(x)=x2 pentru x
intre 0 i 4095, cu soluia evidente x=4095. Reprezentarea binara a soluiei este 111111111111.
Numere binare care sa dea o funcie obiectiv apropiata sunt 111100011100, 1111101110,
111100011101 etc. iar cele care dau valori deprtate ale funcie obiectiv sunt 000000000000,
000001000110 etc. Daca ncercam sa mprim spaiul soluiilor in doua in funcie de "distanta" la
soluie (aproape/departe) o reprezentare posibila a numerelor din clasa "aproape" este
11##########.
Pentru un sir dat exista foarte multe posibiliti de definire a unei scheme care sa-l includ.
Revenind la exemple pe patru bii pentru irul 1011 mulimea tuturor schemelor posibile este 101#,
10#1, 1#11, #011, 10## ... pana la ####. In total sunt 24=16 scheme diferite. In general pentru un sir
de lungime L exista 2L scheme posibile. Pentru un sir oarecare fiecare bit poate fi ocupat de unul din
simbolurile din alfabet (0, 1 sau #). Numrul tuturor schemelor de lungime 4 va fi deci 3x3x3x3 =
81. In general numrul tuturor schemelor de lungime L este 3L. De exemplu pentru o problema a
crei codificare necesita 200 de bii pe cromozom vom avea 3200=1095 (pentru comparaie numrul
tuturor particulelor stabile din universul vizibil este 1080!).
In general pentru un alfabet de dimensiune k i o codificare folosind L simboluri avem:
(k+1)L. Teoretic pentru o populaie de dimensiune N avem N(k+1)L scheme posibile. Din fericire

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

3.2 Convergenta folosind reprezentarea schema


Dei pe parcursul evoluiei algoritmului genetic fiecare cromozom poate fi modificat prin
ncruciare, afectat de mutaii sau pur i simplu ters, operaii destul de violente pentru coninutul
sau informaional, este relativ uor de urmrit ce se ntmpla cu numrul de instane ale unei
anumite scheme. Aceasta estimare ne va arata de ce anume algoritmii genetic converg, fr a fi insa
o demonstraie riguroasa a convergentei din cauza naturii stohastice a algoritmului.
Fie numrul de instanieri ale unei scheme particulare S in populaie la generaia g, astfel
nct:

(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)

3.4 Efectul mutaiilor


Probabilitatea ca un singur bit sa supravieuiasc unei mutaii elementare este:
1 Pm
Cu cat este mai mare ordinul schemei cu att mai mare este probabilitatea de perturbaie.
Daca o schema are ordinul o(S) probabilitatea sa de supravieuire va fi:
(1 Pm ) o ( S )
Aplicnd aceasta corecie ecuaiei (3.3) i ignornd termenii de ordinul doi care rezulta din
produsul probabilitilor obinem:

* ( 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

procesului de optimizare. De remarcat ca valori mari ale probabilitilor Pc i Pm (corespunztor


aplicri excesive a operatorilor de ncruciare i mutaie) afecteaz negativ convergenta procesului
evolutiv.

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.

Performantele unui algoritm genetic depind de multe detalii de implementare. ncepnd de la


codificarea cromozomilor, alegerea funciei fitness i forma operatorilor genetici i terminnd cu
dimensiunea populaiei i probabilitile asociate ncruciri i mai ale mutaie exista numeroase
posibiliti de mbuntire (sau nrutire!) a convergentei.
4.1 Codificarea cromozomilor
In orice algoritm de cutare a unei soluii problema codri soluiilor candidat este una de
maxima importanta. Majoritatea implementrilor algoritmilor genetici utilizeaz o schema binara de
lungime fixa foarte asemntoare cu propunerea iniiala a lui Holland. Exista insa clase ntregi de
probleme pentru care acest tip de codare este nu numai nenatural dar i extrem de ineficient. Pentru
aceste cazuri au fost dezvoltate cteva tehnici de codificare alternative.
Cele mai conservative abateri de la codificarea binara naturala rmn tot la o reprezentare

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

Bck, T. - Evolutionary Algorithms in Theory and Practice: Evolution Strategies, Evolutionary


Programming, Genetic Algorithms. Oxford Academic Press, 1996
Brameier M., Banzhaf W. - Linear Genetic Programming, Springer-Verlang, 2007
Coello, C.A., Lamont, G.B. - Applications of multi-objective evolutionary algorithms, World
Scientific Publishing Co. Pte. Ltd., 2004
Coello, C.A., Lamont, G.B., Van Veldhuizen, D.A. - Evolutionary Algorithms for Solving MultiObjective Problems, Springer, 2007
Coley, D. - Introduction to Genetic Algorithms for Scientists and Engineers, World Scientific Press,
1999
Davis, L. - Genetic Algorithms and Simulated Annealing. Morgan Kaufmann, ed. 1987
Davis, L. - Handbook of Genetic Algorithms. Van Nostrand Reinhold, 1987
Fogel, D. B. - Evolutionary Computation: Toward a New Philosophy of Machine Intelligence. IEEE
Press, 1995
Forrest, S. - Proceedings of the Fifth International Conference on Genetic Algorithms. Morgan
Kaufmann, 1993
Goldberg, D. E. - Genetic Algorithms in Search, Optimization, and Machine Learning.
AddisonWesley, 1989
Harel, D., Yishai, F - Algorithmics: the spirit of computing, Pearson Education Limited, 2004
Haupt, R.L., Haupt, S.E. - Practical genetic algorithms, second edition, Wiley 2004
Holland, J. H. - Adaptation in Natural and Artificial Systems. University of Michigan Press, 1975
(Second edition: MIT Press, 1992)
De Jong, K.A., Poli, R. Foundation of Genetic Algorithms, FOGA 7, Naval Research Laboratory,
2000
Michalewicz, Z. - Genetic Algorithms + Data Structures = Evolution Programs. SpringerVerlag,
1992
Mitsuo, G, Runwei, C., Lin, L. - Network Models and Optimization Multiobjective: Genetic
Algorithm Approach, Springer, 2008
Rawlins, G. - Foundations of Genetic Algorithms. Morgan Kaufmann, 1991
Schaffer, J. D. - Proceedings of the Third International Conference on Genetic Algorithms. Morgan
Kaufmann, 1989

Schwartz, R. - Biological Modeling and Simulation, The MIT Press, 2008


Schwefel, H.P. - Evolution and Optimum Seeking. Wiley, 1995
Whitley, D. - Foundations of Genetic Algorithmsc 2. Morgan Kaufmann., 1993
Whitley, D., and Vose, M. - Foundations of Genetic Algorithms 3. Morgan Kaufmann, 1995

S-ar putea să vă placă și