⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ga.m

📁 本次上传的m文件是关于遗传算法中的一种简单方法
💻 M
字号:
function [maxfitness]=ga(LB,UB,eranum,popsize,pCross,pMutation,precision) 
bits=ceil(log2((UB-LB)/ precision));
[Pop]=InitPop(popsize,bits);
[m,n]=size(Pop);
BestPop=zeros(eranum,n);
maxfitness=zeros(eranum,1);
meanfitness=zeros(eranum,1);
minfitness=zeros(eranum,1);
value=zeros(m,1);
i=1;
while i<=eranum
    for j=1:m
        value(j)=fun(b2f(Pop(j,:),LB,UB));
    end
    [MaxValue,Index1]=max(value);
    [MinValue,Index2]=min(value);
    BestPop(i,:)=Pop(Index1,:);
    maxfitness(i)=max(value);
    meanfitness(i)=sum(value)/m;
    minfitness(i)=min(value);
    if i>1
        Pop(Index2,:)=BestPop(i-1,:);
    end
    [selectpop]=RankSelect(Pop,LB,UB);
    [CrossOverPop]=CrossOver(selectpop,pCross);
    [MutationPop]=Mutation(CrossOverPop,pMutation);
    Pop=MutationPop;    
    for j=1:m
        value(j)=fun(b2f(Pop(j,:),LB,UB));
    end
    [MinValue,Index2]=min(value);
    Pop(Index2,:)=BestPop(i,:);    
    i=i+1;
end
close all;
figure 
t2=-1:0.0001:2;
plot(t2,t2.*sin(10.*pi.*t2)+2);
grid on;
figure
t=1:eranum;
plot(t,maxfitness);
hold on;
plot(t,minfitness);
hold on;
plot(t,meanfitness);
grid on;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -