資源簡介
matlab運用GA求解
clc
clear
%%遺傳算法的參數
maxgen=100; %迭代次數
sizepop=50; %種群規模
pcross=0.75; %交叉概率
pmutation=0.25; %變異概率
n=5; %n表示基因的個數
p=10; %p表示權限的個數
代碼片段和文件信息
clc
clear
%%遺傳算法的參數
maxgen=100;????????????%迭代次數
sizepop=20;????????????%種群規模
pcross=0.7;????????????%交叉概率
pmutation=0.02;????????%變異概率
%%初始化種群
[xy]=meshgrid([-2:2]);
len1=1;
len2=1;
len=len1+len2;
D=2;%有兩個變量
%隨機產生初始化種群,rand()是產生0-1的隨機數
for?i=1:sizepop
?????population(i1)=rand()*4-2;
?????population(i2)=rand()*4-2;
end
bestfitness=[];
bestind=[];
%%迭代過程
for?k=1:maxgen
????%%計算適應度
????for?i=1:sizepop
????????x=population(i1);
????????y=population(i2);
????????individual.fitness(i)=x*cos(2*pi*y)+y*sin(2*pi*x);????????????%適應度函數
????end
????%%
????sumfitness=sum(individual.fitness);???%當代種群適應度之和
????for?i=1:sizepop
????????chooseproportion(i)=individual.fitness(i)/sumfitness;???%選擇概率
????end
????sumproportion(1)=chooseproportion(1);???????????????????????
評論
共有 條評論