Sunteți pe pagina 1din 14

13

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

14
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
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

15
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
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

i n cazul unei mbuntiri este


nlocuit cu cea nou obinut. Parametrul joac rolul pasului din
fiecare component conform lui

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

16
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
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

a fost irul de bii. ntr-o

accepiune strict, noiunea de algoritm genetic se refer la modelul


studiat de Holland i de studentul su De Jong. ntr-un sens mai larg,
algoritm genetic este orice model bazat pe ideea de populaie i care
folosete operatori de selecie i recombinare pentru a genera noi
puncte n spaiul de cutare.
O alt direcie o constituie programarea evolutiv. Iniial, ea
a avut ca obiectiv dezvoltarea unor structuri automate de calcul printrun proces de evoluie n care operatorul principal este cel de mutaie.

17
Bazele domeniului au fost puse de ctre Fogel [28]. Ulterior,
programarea evolutiv a fost orientat ctre rezolvarea problemelor de
optimizare avnd aceeai sfer de aplicabilitate ca i strategiile
evolutive.
Calculul evolutiv folosete algoritmi ale cror metode

de

cutare au ca model cteva fenomene naturale: motenirea genetic


i lupta pentru supravieuire. Cele mai cunoscute tehnici din clasa
calculului evolutiv sunt cele amintite anterior: algoritmii genetici,
strategiile evolutive, programarea genetic i programarea evolutiv.
Exist i alte sisteme hibride care ncorporeaz diferite proprieti ale
paradigmelor de mai sus; mai mult, structura oricrui algoritm de
calcul evolutiv este, n mare msur, aceeai.
Calculul evolutiv este un domeniu al calculului inteligent n
care rezolvarea unei probleme este vzut ca un proces de cutare n
spaiul tuturor soluiilor posibile. Aceast cutare este realizat prin
imitarea unor mecanisme specifice evoluiei n natur. n scopul
gsirii soluiei, se utilizeaz o populaie de cutare. Elementele acestei
populaii reprezint soluii poteniale ale problemei. Pentru a ghida
cutarea ctre soluia problemei, asupra populaiei se aplic
transformri specifice, inspirate din evoluia natural, precum:
Selecia. Elementele populaiei care se apropie de soluia
problemei sunt considerate adecvate i sunt favorizate n sensul c au

18
mai multe anse de a supravieui n generaia urmtoare precum i de a
participa la generarea de descendeni.
ncruciara. La fel ca n nmulirea din natur, pornind de la dou
sau mai multe elemente ale populaiei (numite prini), se genereaz
noi elemente (numite descendeni). n funcie de calitatea acestora
(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

strilor i gsirea celor mai bune soluii;

n timp ce metodele clasice de cutare acioneaz la un moment

dat asupra unui singur punct din spaiul de cutare, algoritmii


evolutivi menin o mulime (numit populaie) de soluii posibile;

algoritmii evolutivi nu acioneaz direct asupra spaiului de

cutare ci asupra unei codificri a lui;

19

sunt mai robuti dect algoritmii clasici de optimizare i dect

metodele de cutare dirijat;

sunt simplu de utilizat i nu cer proprieti importante ale funciei

obiectiv precum continuitate, derivabilitate, convexitate, ca n cazul


algoritmilor clasici;

furnizeaz, cu o mare probabilitate, o soluie apropiat de cea

exact.

1.2 Noiuni de baz


Principalele noiuni care permit analogia ntre rezolvarea
problemelor de cutare i evoluia natural sunt urmtoarele:
Cromozomul este o mulime ordonat de elemente, numite gene, ale
cror valori determin caracteristicile unui individ. n genetic,
poziiile pe care se afl genele n cadrul cromozomului se numesc loci,
iar valorile pe care le pot lua se numesc alele. n calculul evolutiv
cromozomii sunt, de obicei, vectori ce conin codificarea unei soluii
poteniale i sunt numii indivizi. Astfel, genele nu sunt altceva dect
elementele acestor vectori.
Populaia. O populaie este constituit din indivizi care triesc ntr-un
mediu la care trebuie s se adapteze. n calculul evolutiv, un individ
este de cele mai multe ori identificat cu un cromozom i reprezint un
element din spaiul de cutare asociat problemei de rezolvat.

20
Genotipul este ansamblul tuturor genelor unui individ sau chiar a
ntregii populaii. n calculul evolutiv genotipul reprezint codificrile
corespunztoare tuturor elementelor populaiei.
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

o populaie se transform n alt

populaie atunci generaia este o iteraie n cadrul acestui proces.


Selecia. Procesul de selecie natural are ca efect supravieuirea
indivizilor cu grad ridicat de adecvare la mediu (fitness mare). Acelai
scop l are i mecanismul de selecie de la algoritmii evolutivi i
anume de a favoriza supravieuirea elementelor cu grad mare de
adecvare. Aceasta asigur apropierea de soluia problemei ntruct se
exploateaz informaiile furnizate de ctre cele mai bune elemente ale
populaiei. Unul dintre principiile teoriei evoluioniste este acela c
selecia este un proces aleator i nu unul determinist. Acest lucru este
ntlnit n majoritatea mecanismelor de selecie utilizate de ctre
algoritmii evolutivi.
Reproducerea este procesul prin care, pornind de la populaia curent,
se construiete o nou populaie. Indivizii noii populaii (generaii)
motenesc caracteristici de la prinii lor, dar pot dobndi i
caracteristici noi ca urmare a unor procese de mutaie care au un

21
caracter ntmpltor. n cazul n care n procesul de reproducere
intervin cel puin doi prini, caracteristicile motenite de descendeni
se obin prin combinarea (ncruciarea) caracteristicilor prinilor.
Mecanismele de ncruciare i mutaie asigur explorarea spaiului
soluiilor prin descoperirea de noi configuraii.
Fitnessul

sau adecvarea. n evoluia natural fiecare individ al

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

22
este independent de evaluarea altor iruri. Adecvarea unui ir este,
ns, definit n raport cu ali membri ai populaiei curente; de
exemplu, prin

fi
, unde f i este evaluarea asociat irului i iar f
f

este evaluarea medie a tuturor irurilor populaiei.


Funcia de evaluare i codificarea sunt, de obicei, singurele
componente ale algoritmilor evolutivi care depind de problema de
rezolvat. Un algoritm evolutiv, folosit pentru rezolvarea unei probleme
de optimizare, poate fi privit ca o ''cutie neagr'' cu o serie de butoane
de control reprezentnd diveri parametri. Ieirea cutiei negre este
valoarea unei funcii indicnd n ce msur o anumit distribuie a
parametrilor rezolv problema dat. n termeni tradiionali, dorim s
minimizm (maximizm) o funcie F x1 , x 2 , , x n . De cele mai
multe ori este imposibil de tratat independent fiecare parametru.
Apariia interaciunilor face necesar considerarea efectelor combinate
ale parametrilor n vederea optimizrii cutiei negre. n limbajul
algoritmilor genetici, interaciunea dintre variabile este numit
epistasis.
Variabilele reprezentnd parametrii sunt, de obicei, codificate
prin iruri binare, dar exist i alte codificri: numere ntregi, numere
reale, codul Gray, codificare alfabetic, arbori. Condiiile pe care
trebuie s le ndeplineasc o reprezentare bun sunt: independena

23
relativ a genelor, includerea a ct mai multe restricii ale problemei
direct n reprezentare, complexitate sczut a decodificrii/codificrii
cromozomilor. Rezolvarea problemelor de codificare este considerat,
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 )

24
evaluare P (t )
while (not condiie terminare) do
begin
t : t 1
selectare P (t ) din P (t 1)
modificare P (t )
evaluare P (t )
end
end.

1.3. Domenii de aplicabilitate


Sistemele evolutive se utilizeaz atunci cnd nu exist alt
strategie de rezolvare a problemei i este acceptat un rspuns
aproximativ. Se utilizeaz n special atunci cnd problema poate fi
formulat ca una de optimizare, ns nu numai. Algoritmii evolutivi
sunt utilizai n diverse domenii, precum:
Planificare. Majoritatea problemelor de planificare (de
exemplu, alegerea traseelor optime ale unor vehicule, rutarea
mesajelor ntr-o reea de telecomunicaii, planificarea unor activiti,
etc.) pot fi formulate ca probleme de optimizare cu sau fr restricii.
Multe din acestea sunt de tip NP, necunoscndu-se algoritmi de
rezolvare care s aib complexitate polinomial. Pentru astfel de

25
probleme algoritmii evolutivi ofer posibilitatea obinerii, n timp
rezonabil, a unor soluii sub-optimale de calitate acceptabil.
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)

26
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
evolutivi sunt aplicai cu succes n clasificarea imaginilor, n biologie
(pentru determinarea structurii proteinelor) sau n medicin (pentru
clasificarea electrocardiogramelor).

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