Sunteți pe pagina 1din 3

TEMA TIA

Enunt:
Studiati influenta ratei de incrucisare in algoritmi genetici. Utilizati pentru
teste functia:
F(x)= 1/(0.1+x(1)^2);
Rezolvare:
Am creat in matlab un fisier cu numele functie.m cu continutul urmator:
function y= functie(x)
y=1/(0.1+x(1)^2);

Pentru a arata influenta ratei de incrucisare in algoritmi genetici am folosit


parametrul CrossoverFraction. Acest parametru specific rata de ncruciare, adic
probabilitatea cu care indivizii selectai i interschimb materialul genetic. Atunci cnd
schimburile de material genetic sunt intense, cutarea este direcionat, indivizii devenind
apropiai.
Pentru testarea influenei ratei de ncruciare asupra performanelor AG am
utilizat aceeai metod de studiu ca la dimensiunea populaiei, ns am variat rata de
ncruciare de la 0 la 1 cu pasul de 0.1.
Am salvat fiierul benchmark.m cu urma torul continut:
functie_obiectiv= @functie;
nr_var=2;
medie=[];
timp_run=[];
for n=0:0.1:1
valf=0;
timp=0;
for i=1:10
start=cputime;
param= gaoptimset('CrossoverFraction',n);
[x fval]= ga(functie_obiectiv,nr_var,param)
stop=cputime;
timp_rulat=stop-start
valf=valf+fval;
timp=timp+timp_rulat;
fval=0;
end;
valf=valf/10;
medie=[medie;valf];
timp=timp/10;
timp_run=[timp_run;timp];
end
figure(1)
plot(0:0.1:1,medie);
figure(2)
plot(0:0.1:1,timp_run);

REZULTATE:
Rata
Fitness
Timp

0
-0.001367
0.327

0.1
-0.00106
0.334

0.2
-0.00101
0.286

0.3
-0.000872
0.339

0.4
-0.000693
0.42

0.5
-0.00052
0.378

0.6
-0.00033
0.441

0.7
-0.00019
0.525

0.8
-0.00016
0.571

0.9
-0.000077
0.569

Performanele AG n funcie de rata de ncruciare:


4

x 10

-2
-4
-6
-8
-10
-12
-14

0.1

0.2

0.3

0.4

0.5

0.6

a) Valoarea fitness-ului;

0.7

0.8

0.9

1
0
0.333

0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

b) Timpul de calcul.
Pentru funcia Rosenbrock, se observ c o rat de ncruciare n jurul valorii de 0
ar duce la valori mai apropiate de optimul cunoscut.

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