• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: Matlab
  • 标签: 智能算法  

资源简介

测试函数用的是Sphere,如果想换可以换别的。 万恶的五十字。。。。。

资源截图

代码片段和文件信息

clc%清屏
clear all;
close all;

format long
%Prarmeters
sizepop=100;%种群规模
maxgen=100;%最大迭代次数
m=10;%空间维数
Umax=0.9500;%最大隶属度值
Umin=0.0111;%最小隶属度值
Wmax=0.9;%最大权重
Wmin=0.1;%最小权重
popmax=15;
popmin=-15;
%初始化种群个体
for i=1:sizepop
    pop(i:)=15*rands(110);
    fitness(i)=sphere(pop(i:));
    %计算适应度
end
%寻找具有最好适应度的个体
[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex:);%全局最佳
gbest=pop;%个体最佳
fitnessgbest=fitness;%个体最佳适应度值
fitnesszbest=bestfitness;
%迭代寻优
Di=0*rand(sizepopm);
Di(1:)=1;
Buchang=0*rand(sizepopm);
Diego=0*rand(sizepopm);
Dialt=0*rand(sizepopm);
Dipro=0*rand(sizepopm);
yy(1)=fitnesszbest;
for t=2:maxgen
    for i=1:sizepop
        W=Wmax-t*(Wmax-Wmin)/maxgen;
        Diego(i:)=sign(gbest(i:)-pop(i:));
        Dialt(i:)=sign(zbest-pop(i:));
        if sphere(gbest(i:))>=sphere(pop(i:))
            Dipro(i:)=-Di(i:);
        else
            Dipro(i:)=Di(i:);
        end
        Di(i:)=sign(W*Dipro(i:)+rand*Diego(i:)+rand*Dialt(i:));
        %^确定经验梯度方向
        [Orderfitnessg

评论

共有 条评论