You are on page 1of 2

function [deger] = dif()

clear all;
cr = 0.1; %aprazlama oran

ff = 0.5;
T = 100;
birey = 100; %birey says en az 4 olmal

SINIR_DEGERLER = [ 0.1 1000;


0.01 2.05];

degiskenler = SINIR_DEGERLER;
istek = 1; %% 0 ise minimumu bulsun, 1 ise max

boyut = length(degiskenler);
icindekiler = zeros(boyut,birey);

for i=1:birey % snr aralklarnda rand say ret


for j=1:boyut
alt = degiskenler(j,1);
ust = degiskenler(j,2);
icindekiler(j,i) = alt + rand * (ust - alt);
end
end
yeni = zeros(boyut,1);
%% ilk birinci birey hedef olsun
for iter=1:T
for hedef=1:birey
flagim = 1;
flag = 1;
while flag %% hedef seciliyor , ayns seilmemesi iin dngye konularak
ilem tekrarlanr
r = randperm(birey);
for j=1:3
if (r(j) == hedef)
flagim = 0;
break;
end
end
if (flagim == 1)
flag = 0;
end
flagim = 1;
end

fark = (icindekiler(:,r(1)) - icindekiler(:,r(2))) * ff + icindekiler(:,r(3));


%mutasyon ilemi
%% aadaki for iinde alt ve st snrlar amas durumunda yeni
%% deerleri fark iinde atyoruz
for d = 1:boyut
alt = degiskenler(d,1);
ust = degiskenler(d,2);
if(fark(d,1) < alt)
fark(d,1) = alt;
elseif(fark(d,1) > ust)
fark(d,1) = ust;
end
end
for k=1:boyut
if ( rand <= cr )%aprazlama
yeni(k,1) = fark(k,1);
else
yeni(k,1) = icindekiler(k,hedef);
end
end
%% istek durumuna gre min veya max deerine gre yeni birey belirlenir

if (fnc(yeni') > fnc(icindekiler(:,hedef)'))%seim


icindekiler(:,hedef) = yeni;
end

end
end
index = 1;
%% istek durumuna gre max veya min degeri bulunur
if(istek == 0)
min = fnc(icindekiler(:,1),fonk);
for i=2:birey
if (fnc(icindekiler(:,i),fonk) < min)
min = fnc(icindekiler(:,i),fonk);
index = i;
end
end
else
max = fnc(icindekiler(:,1));
for i=2:birey
if (fnc(icindekiler(:,i)) > max)
max = fnc(icindekiler(:,i));
index = i;
end
end
end
%% son aamada deikenler ve onlarn oluturduu sonuclar ekrana
%% yazyoruz
%degiskenlerim = icindekiler(:,index)
deger = fnc(icindekiler(:,index));
deg = icindekiler(:,index)
% deger = fnc(icindekiler(:,index));
%sprintf('%15.180f \n',fnc(icindekiler(:,index)))

% zaman = cputime-zaman

You might also like