用人口迁移算法求函数的最大值.zip【Matlab智能算法】

用人口迁移算法求函数的最大值.zip【Matlab智能算法】用人口迁移算法求函数的最大值 求目标函数的值 format long N 4 人口规模 l 10 人口流动次数 k 0 01 收缩系数 h 1e 8 人口压力参数 m 10 迭代次数 a 6 搜索空间 b 7 搜索空间 center zy 记录最优值 zyd 记录最优点 d 计算目标函数值 kk 0 X tt 0 步骤 1 开始

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。

%用人口迁移算法求函数的最大值 %求目标函数的值 format long N=4;%人口规模 l=10;%人口流动次数 k=0.01;%收缩系数 h=1e-8;%人口压力参数 m=10;%迭代次数 a=6;%搜索空间 b=7;%搜索空间 center=[]; zy=[];%记录最优值 zyd=[];%记录最优点 d=[];%计算目标函数值 kk=0; X=[]; tt=0; %步骤1开始 while(kk b)

X(i)=b; 

end if(X(i)

X(i)=a; 

end %步骤4结束 %步骤5开始 d(i)=maxf(X(i)); %步骤5结束 end %步骤6开始 [w,i]=min(d); %记录最优函数值和最优点 zy(numel(zy)+1)=w;%记录最优函数值和最优点 zyd(numel(zyd)+1)=X(i);%记录最优函数值和最优点 %步骤6结束 %步骤7开始 tt=tt+1; if(tt>=l)

break 

end end %步骤7结束 %步骤8开始 [w,i]=min(zy);%读取最优值和最优点 yyd=zyd(i); a1=yyd-c;%优惠区域 if(a1>=b)

a1=b-c; 

end if(a1

a1=a; 

end b1=yyd+c;%优惠区域 if(b1>b)

b1=b; 

end if(b1<=a1)

b1=a1+c; 

end X=(rand(1,N)*(b1-a1))+a1;%随机产生新搜索空间的N个点,替换原来的点 %步骤8结束 %步骤9开始 for i=1:1:N center(i)=X(i);%第i个区域的中心 d(i)=maxf(X(i)); %计算各点的函数值 end %步骤9结束 %步骤10开始 [w,i]=min(d); %记录最优函数值和最优点 zy(numel(zy)+1)=w; %记录最优函数值和最优点 zyd(numel(zyd)+1)=X(i); %记录最优函数值和最优点 %步骤10结束 %步骤11开始 while(1) c=(1-k)*c;%收缩优惠区域 %步骤11结束 %步骤12开始 a2=zyd(numel(zyd))-c; if(a2>=b)

a2=b-c; 

end if(a2

a2=a; 

end b2=zyd(numel(zyd))+c;%优惠区域 if(b2>b)

b2=b; 

end if(b2<=a2)

b2=a2+c; 

end X=(rand(1,N)*(b2-a2))+a2;%随机产生新搜索空间的N个点,替换原来的点 %步骤12结束 %步骤13开始 for i=1:1:N center(i)=X(i); d(i)=maxf(X(i)); %计算各点的函数值 end %步骤13结束 %步骤14开始 [w,i]=min(d); %记录最优函数值和最优点 zy(numel(zy)+1)=w ; %记录最优函数值和最优点 zyd(numel(zyd)+1)=X(i) ; %记录最优函数值和最优点 %步骤14结束 %步骤15开始 if(~(c>h))

break 

end end kk=kk+1; end %步骤15结束 %步骤16开始 %步骤16结束 [w,i]=min(d); zuiyouzhi=w zuiyoudian=X(i)

小讯
上一篇 2026-04-18 11:13
下一篇 2026-04-18 11:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/270432.html