Contents
clear all
close all
clc
Paso 1 inicialización
Ng=50;
Np=10;
Ne=0;
pc=0.9;
pm=0.1;
L=[20 20];
v_min=[-1 -1];
v_max=[1 1];
Aop=zeros(Ng,1);
Paso 2 generación de la pobración inicial
p_real=f_pobini(Np,v_min,v_max);
Paso 3 codificacion de la pobración inicial
p_bin=f_codifica(p_real,L,v_min,v_max);
Paso 4 Evaluacion de la p_inicial
adap=f_evaluacion(p_real);
Ordenación de la población inicial
[p_real,p_bin,adap]=f_ordenacion(p_real,p_bin,adap);
figure,fsurf(@rastringin,[-1 1 -1 1]);
view(0,90);xlabel('x'),ylabel('y');
title('Generacion 1');
hold on;
h=plot3(p_real(:,1),p_real(:,2),41*ones(length(p_real(:,1))),'ro','linewidth',4);
drawnow;
for ng=2:Ng
p_bin_nueva=f_pobnueva(p_bin,Ne);
for ni=1:(Np-Ne)/2
[padre,madre]=f_seleccion(p_bin,'torneo');
[hijo,hija]=f_cruce(padre,madre,pc);
[hijo_mutado,hija_mutada]=f_mutacion(hijo,hija,pm);
p_bin_nueva=f_insercion(hijo_mutado,hija_mutada,p_bin_nueva)
end
p_real_nueva=f_descodifica(p_bin_nueva,L,v_min,v_max)
adap=f_evaluacion(p_real_nueva);
[p_real,p_bin,adap]=f_ordenacion(p_real_nueva,p_bin_nueva,adap);
Aop(ng)=adap(1);
set(h,'xdata',p_real(:,1));
set(h,'ydata',p_real(:,2));
title(['Generacion=',num2str(ng)]);
drawnow;pause(0.1);
end
ind_optimo=p_real(1,:);
adap_optimo=Aop(end);
minimo=rastringin(ind_optimo(1),ind_optimo(2))
figure;
plot(1:Ng,Aop);
xlabel
p_bin_nueva =
2×40 char array
'1111011100000010110111110101101111110010'
'1010000111100010010011001100110000010011'
p_bin_nueva =
4×40 char array
'1111011100000010110111110101101111110010'
'1010000111100010010011001100110000010011'
'1111011100000010110111110101101000010011'
'1110100111010010111101111100010000011000'
p_bin_nueva =
6×40 char array
'1111011100000010110111110101101111110010'
'1010000111100010010011001100110000010011'
'1111011100000010110111110101101000010011'
'1110100111010010111101111100010000011000'
'1110011111100001111011111000011000010011'
'1111011100000010110111110101101110001011'
p_bin_nueva =
8×40 char array
'1111011100000010110111110101101111110010'
'1010000111100010010011001100110000010011'
'1111011100000010110111110101101000010011'
'1110100111010010111101111100010000011000'
'1110011111100001111011111000011000010011'
'1111011100000010110111110101101110001011'
'0010000010001111000111001010110011100000'
'1111010100010010001111110101000010001101'
p_bin_nueva =
10×40 char array
'1111011100000010110111110101101111110010'
'1010000111100010010011001100110000010011'
'1111011100000010110111110101101000010011'
'1110100111010010111101111100010000011000'
'1110011111100001111011111000011000010011'
'1111011100000010110111110101101110001011'
'0010000010001111000111001010110011100000'
'1111010100010010001111110101000010001101'
'1110100111010010111101110101000010001101'
'0010000010000010001111111100010000011000'
l =
1
p_real_nueva =
0.9298 0.9199
0.2647 0.5996
0.9298 0.9190
0.8268 -0.0293
0.8116 0.9405
0.9298 0.9197
-0.7456 0.5844
0.9146 0.9143
0.8268 -0.0857
-0.7460 0.9708
p_bin_nueva =
2×40 char array
'1111011100000010110111110101101000010011'
'1110011111100001111011111000011000010011'
p_bin_nueva =
4×40 char array
'1111011100000010110111110101101000010011'
'1110011111100001111011111000011000010011'
'1111011100000010110111110101101000010011'
'1111011100000010110111110101101110001011'
p_bin_nueva =
6×40 char array
'1111011100000010110111110101101000010011'
'1110011111100001111011111000011000010011'
'1111011100000010110111110101101000010011'
'1111011100000010110111110101101110001011'
'1111011100000010110111110101101110011000'
'1110100111010010111101111100010000001011'
Error using vertcat
Dimensions of arrays being concatenated are not consistent.
Error in f_insercion (line 2)
poblacion_insertada=[poblacion ; hijo_mutado ; hija_mutada];
Error in A_GENETICO (line 51)
p_bin_nueva=f_insercion(hijo_mutado,hija_mutada,p_bin_nueva)