Sunteți pe pagina 1din 10

Tehnici de Inteligenţă

Artificială

Laborator nr. 3
Algoritmi genetici

Conţinutul laboratorului
z Noţiuni fundamentale în AG
z Elemente de limbaj Matlab pentru AG
z Exemple şi simulări

1
Ce sunt algoritmii genetici?

z metode de căutare în spaţiul soluţiilor ce se bazează pe


principiile evoluţiei darwiniste, conform căreia individul cel
mai adaptat la mediul înconjurător supravieţuieşte

z utilizează fenomene similare celor din viaţa reală:


selecţia, moştenirea genetică, încrucişarea şi mutaţia

z lucrează cu o populaţie de soluţii candidate, astfel


acoperind mai bine spaţiul de căutare, spre deosebire de
tehnicile clasice de optimizare.

Terminologie
z Funcţia de performanţă (fitness)= funcţia de optimizat, în general egală cu
funcţia obiectiv;
z Individ= punctul în care se calculează funcţia de performanţă; valoarea
rezultată s.n. scorul individului;
exp: f(x1,x2)=x1*x2
[x1,x2]- individ

z Populaţie= mulţime de indivizi


exp: dimensiunea populaţiei=3
[x11,x12]
[x21,x22]
[x31,x32]
z Generaţie= valorile unei populaţii în cadrul unei iteraţii

2
Cum funcţionează algoritmii genetici?
Algoritm.
START

Generarea populaţiei iniţiale

Selectarea indivizilor şi trecerea


acestora în baza de reproducere

Încrucişarea indivizilor selectaţi

Efectuarea eventualelor mutaţii

Inserarea urmaşilor în generaţia următoare

nu
Condiţie de oprire îndeplinită?

da

STOP

Cum funcţionează algoritmii genetici?


Algoritm.
START

Generarea populaţiei iniţiale

Selectarea indivizilor şi trecerea


acestora în baza de reproducere

Încrucişarea indivizilor selectaţi

Efectuarea eventualelor mutaţii

Inserarea urmaşilor în generaţia următoare

nu
Condiţie de oprire îndeplinită?

da

STOP

3
Observaţie
z La crearea urmaşilor pot apărea următoarele
fenomene:

Elitism

Încrucişare

Mutaţie

Selecţia

z Presupune alegerea celor mai performanţi indivizi din


cadrul unei populaţii pentru a forma o nouă
generaţie;

z Are rol hotărâtor în procesul de dirijare a căutării;

z În această etapă indivizii selectaţi pentru


supravieţuire sunt stocaţi în baza de încrucişare;

z Există o multitudine de metode de selecţie: metoda


roţii de ruletă, regula turnirului, elitistă, etc.

4
Metoda roţii de ruletă

Probabilitatea ca un
individ să fie selectat este
direct proporţională cu
funcţia de performanţă a
fiecărui individ

Încrucişarea

z Încrucişarea este operatorul genetic ce asigură schimbul de


informaţie între indivizii unei populaţii, prin care iau naştere
urmaşii;

z Este de aşteptat ca doi părinţi performanţi să dea naştere la


urmaşi performanţi;

z Are loc de-a lungul evoluţiei în funcţie de valoarea unui parametru


prestabilit, numit probabilitate de încrucişare;

z S-au dezvoltat multiple tipuri de încrucişare: într-un punct, în mai


multe puncte, cu mască, aritmetică etc.

5
Încrucişarea într-un punct

Părinte 1Părinte 2 Urmaş 1 Urmaş 2

Mutaţia
z Mutaţia este utilizată pentru păstrarea diversităţii populaţiei de la o generaţie
la alta;

z Presupune modificarea uneia sau mai multor gene ale unui individ din baza
de încrucişare înainte de a fi transferat în noua generaţie;

z Mutaţia evită convergenţa către optime locale, prin împiedicarea indivizilor


din populaţie să devină prea asemănători unii cu alţii, ceea ce ar duce la
stagnarea evoluţiei;

z Ca şi în procesele evolutive naturale, mutaţia apare foarte rar, apariţia


acesteia fiind controlată cu ajutorul unui parametru prestabilit, numit
probabilitatea mutaţiei. Acesta are valori foarte mici, de ordinul 1-2%;

z Există numeroase tipuri de mutaţie: întoarcerea unui bit, înlocuirea unui bit
cu o valoare prestabilită, mutaţia neuniformă, mutaţia la frontieră etc.

6
Întoarcerea unui bit

1 0 0 1 1 1 0 0

1 0 0 1 1 0 0 0

Elemente de limbaj Matlab


pentru AG
z Apelarea funcţiei AG din Toolbox se face prin instrucţiuni având sintaxa:
[x fval]=ga(@functie_fitness,nr_var)

Parametrii de intrare:
@functie_fitness: referinţa către un fişier .m în care se calculează funcţia
pentru problema de rezolvat;
nr_var: numărul de variabile independente din funcţia obiectiv (lungimea unui
individ)

Parametrii de ieşire:
x: punctul final (individul cel mai performant găsit prin AG);
fval: valoarea funcţiei de performanţă în punctul x.

7
Elemente de limbaj Matlab
pentru AG (cont.)
z Parametri de ieşire opţionali:
[x fval cauza info_perf pop scoruri]=ga(@fcn,nv)

cauza: motivul pentru care s-a oprit algoritmul;


info_perf: structură conţinând informaţii despre performanţele
algoritmului la fiecare iteraţie;
pop: populaţia finală;
Scoruri: scorurile finale (ale indivizilor din populaţia finală).

EXEMPLE
Funcţia lui Rastrigin: Minim global
n n
Ras ( x) = 10 ⋅ n + ∑ xi − 10 ⋅ ∑ cos 2 ⋅ π ⋅ xi
2

i =1 i =1

Problemă de minimizare

Minime locale

8
Funcţia lui Rastrigin - cod
Matlab
z Calculul funcţiei de fitness se face într-un
fişier rastrigin.m
function y= rastrigin(x)
y = 10.0 * size(x,2) + sum(x .^2 - 10.0 * cos(2 * pi .* x),2);

z Apelul AG se face în linia de comandă sau


într-un fişier .m prin: (pt n=2)
[x fval cauză info]= ga(@rastrigin,2)

Funcţia lui Rastrigin – cod


Matlab
z Utilizarea AG cu diferite setări pentru
parametri se face într-un fişier .m prin:
ObjectiveFunction= @rastrigin;
nvars=10;
ptime=cputime;
options= gaoptimset('PopulationSize',30);
options=gaoptimset(options,'Generations',400);
options = gaoptimset('CrossoverFraction',0.9)
options=gaoptimset(options, 'PlotFcns', {@gaplotbestf});
[x fval reason output]= ga(ObjectiveFunction,nvars,options)
ltime=cputime;
caltime=ltime-ptime

9
Exemple şi simulări Matlab…

10

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