Documente Academic
Documente Profesional
Documente Cultură
Cap 01
Cap 01
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
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
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
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:
aleatoare;
19
exact.
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
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
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
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.
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).