من برنامه را به زبان مطلب نوشتم
close all
clear all
clc
%%initial setting
pm=.2;
n=8; % N is number of queens
popsize=80; % size of population
pop=round(rand(popsize,n)*(n-1)+1);
for k=1
opsize
x=pop(k,
;
fitness(k)=comfitness(x,n);
end
[bestfitness ind]=min(fitness);
bestchromosome=pop(ind,
;
while (bestfitness<0)
%%crossover operation
index=1;
for k=1
opsize/2
index1=round(rand*(popsize-1)+1);
index2=round(rand*(popsize-1)+1);
while(index1==index2)
index2=round(rand*(popsize-1)+1);
end
x=pop(index1,
;
y=pop(index2,
;
[newpop(index,
newpop(index+1,
]=onepoint(x , y , n);
index=index+2;
end
%% mutaion operation
for k=1
opsize
if(rand<pm)
pointindex=round(rand*(n-1)+1);
newpop(k,pointindex)=round(rand*(n-1)+1);
end
end
%% compute fitness
for k=1
opsize
x=newpop(k,
;
newfitness(k)=comfitness(x,n);
end
[val ind]=min(fitness);
bestchromosome=pop(ind,
;
[val ind]=max(newfitness);
newpop(ind,
=bestchromosome;
pop=newpop;
fitness=newfitness;
[bestfitness ind]=min(fitness);
end
[bestfitness ind]=min(fitness);
bestchromosome=pop(ind,
;
فقط یک فانکشن واسش بنویسید
اگه خواستید خبر کنیید تا فانکشن را هم واستون بنویسم