Sunteți pe pagina 1din 18

Componentele algoritmilor evolutivi.

I. Componentele EA

Reprezentarea (definirea membrilor populaiei) Funcia de evaluare (fitness) Populaia Mecanismul de selectare a prinilor Operatorii de variaie (recombinarea i mutaia) Mecanismul de selectare a membrilor generaiei urmtoare

Definirea modulului de iniializare (determinarea populaiei iniiale)


Definirea condiiei terminale.

II. Componentele EA. Reprezentarea

Reprezentarea - stabilirea unei conexiuni ntre contextul problemei particulare de rezolvat i spaiul n care evolueaz tehnica PS considerat. Fenotipuri : soluiile posibile n contextul problemei de rezolvat Genotipuri (cromozomi): reprezentarea fenotipurilor n context EA; un genotip conine valori (alele), plasate n poziii numite variabile sau gene. Scopul: stabilirea corespondenei ntre mulimea fenotipurilor i cea a genotipurilor. Reprezentarea desemneaz:
transformarea aplicat spaiului fenotipurilor astfel nct s fie obinut spaiul genotipurilor: codificare/decodificare structura de date utilizat pentru definirea spaiul genotipurilor

II. Componentele EA. Reprezentarea


D D D D D D D D

II. Componentele EA. Reprezentarea

II. Componentele EA. Reprezentarea


function [y,m]=repr_sir_bin(x,a,b,nz); nr=(b-a)*(10^nz); m=fix(log2(nr))+1; z=fix((x-a)*(2^m-1)/(b-a)); y=bitget(z,m:-1:1); end

% obtinerea fenotipului corespunzator function [t]=repr_reale(y,m,a,b); x=0; for i=1:m x=bitset(x,m-i+1,y(i)); end; t=a+x*(b-a)/(2^m-1); end

III. Componentele EA. Funcia de evaluare

IV. Componentele EA. Populaia

V. Componentele EA. Selecia prinilor

Rolul: de a distinge ntre indivizii populaiei pe baza calitii acestora; permite celor mai buni indivizi s se reproduc, deci s participe la generarea populaiei urmtoare. Mecanism probabilist de selectare a prinilor : alegerea unui individ pentru a se reproduce depinde direct proporional de calitatea lui Foreaz mbuntirea calitii globale a populaiei de la o generaie la alta. Indivizii slabi (cu valori mici ale funciei de evaluare) nu sunt eliminai din procesul de selectare pentru reproducere, ci doar au asociate probabiliti mici, dar nenule, de selecie:
Algoritmul de cutare nu este de tip greedy Riscul de a identifica o valoare de optim local este diminuat

VI. Componentele EA. Operatori de variaie

Operatorul mutaie: este operato unar. Aplicat unui genotip rezult o variant mutant, numit progenitur sau copil. Operatorul mutaie este ntotdeauna stochastic: rezultatul depinznd de o serie de alegeri aleatoare. Rolul mutaiei depinde de tipul de algoritm implementat: n cazul GA, mutaia are rolul de a mprospta structura genetic a unei populaii. Optimul global al funciei obiectiv poate fi obinut n situaia n care operatorii de variaie utilizai asigur obinerea oricrui genotip soluie potenial a problemei de optim. Cea mai simpl cale de a asigura ndeplinirea acestei codiii este de a utiliza un operator mutaie care s permit modificarea oricrei alele dintrun cromozom cu orice variant posibil, cu o probabilitate nenul.

VI. Componentele EA. Operatori de variaie

Operatorul de recombinare: operator binar ce produce unul sau dou genotipuri copil prin combinarea informaiei din dou genotipuri printe.

Recombinarea este stochastic: alegerea acelor pri ale prinilor care vor fi combinate i tipul de recombinare sunt bazate pe extrageri aleatoare.
n cadrul GA este cel mai utilizat operator de variaie n dezvoltri de tip EA pot fi folosii i operatori de recombinare de aritate mai mare dect 2 Aplicarea EA determin crearea de urmai direci prin ncruciri aleatoare, fiind acceptat ideea c unii dintre acetia pot avea nsuiri nedorite, majoritatea pot fi calitativ similari sau chiar inferiori prinilor i doar o mic parte dintre ei pot avea caracteristici superioare prinilor.

VII. Componentele EA. Trecerea la o nou generaie

Rolul: difereniaz indivizii n funcie de calitatea lor. Din acest punct de vedere este similar procesului de selecie a prinilor dar este utilizat ntr-o etap diferit a evoluiei unui EA. Mecanismul este aplicat dup generarea progeniturilor indivizilor populaiei curente i revine la aplicarea unei funcii de decizie fiecrui individ aparinnd populaiei curente sau mulimii progeniturilor.

Funcia de decizie este de obicei construit pe baza funciei de evaluare, lund n calcul calitatea fiecrui individ i, n unele situaii, factorul vrst.
Exemple:
ordonarea indivizilor multisetului obinut prin reuniunea populaiei curente cu multisetul progeniturilor i selectarea celor mai buni indivizi (funcie de decizie bazat exclusiv pe funcia de evaluare) selectarea indivizilor exclusiv din multisetul urmailor direci (funcie de decizie bazat pe factorul vrst).

VIII. Componentele EA. Iniializarea. Condiia terminal

Iniializarea: crearea populaiei iniiale este realizat n general prin generare aleatoare de fenotipuri i apoi obinerea multisetului de genotipuri asociat.

Condiia terminal:

atingerea unui numr maxim de iteraii (generaii); atingerea unui numr maxim de evaluri ale calitii indivizilor; pentru o anumit perioad de timp (un numr de iteraii specificat sau un numr de evaluri specificat) calitatea populaiei curente nu este semnificativ mbuntit (este sub un prag dat); diversitatea populaiei scade sub un prag dat.

IX. Evoluia cutare direct-cutare stochastic

Evoluia cutare direct-cutare stochastic: metodele de tip hill climbing i simulated annealing. Metodele de tip hill climbing

tehnic de iterativitate mbuntit, aplicat unui singur punct din spaiul de cutare. la o iteraie este selectat un nou punct aflat ntr-o vecintate a punctului curent procesat. dac acest punct determin o valoare mai bun (din punct de vedere al criteriului de optim considerat) pentru funcia obiectiv, el devine punct curent. altfel, este selectat o alt vecintate a punctului curent, procesul desfurnduse ulterior similar. algoritmul se ncheie cnd nici un punct vecin celui curent nu aduce mbuntiri valorilor funciei obiectiv. sunt obinute de obicei la valori de optim local, depinznd de punctul de start. Pentru a crete performanele unor astfel de modele, acestea se utilizeaz pentru un numr mare de punct de start.

X. Algoritmul hill climbing

XI. Maximizarea unei funcii de 2 variabile

for i=1:2*m ny(i,1:2*m)=y(1:2*m); ny(i,i)=not(y(i)); vn(1)=repr_reale(ny(i,1:m),m,a,b); vn(2)=repr_reale(ny(i,m+1:2*m),m,a,b); ny(i,2*m+1)=f_obiectiv(vn(1),vn(2)); end; nys=sortrows(ny,2*m+1); if(nys(2*m,2*m+1)>valc) vc(1)=repr_reale(nys(2*m,1:m),m,a,b); vc(2)=repr_reale(nys(2*m,m+1:2*m),m,a,b); valm=nys(2*m,2*m+1); else local=1; end; end; %while (local==0) if(valm>val) val=valm; v=vc; timp=t; end; V=[V;vc]; end; %for i=1:MAX disp(v); disp(val); disp(timp);plot_obiectiv(V,timp,a,b); end

La un apel hillclimbing(-2,2,5,75); pot fi obinute rezultatele: x=-1.9102, y=-1.6250, valoarea maxim: 3.4989.

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