精华内容
下载资源
问答
  • jDE参数自适应差分进化算法简单介绍及matlab实现
    千次阅读
    2020-05-16 14:09:12

    jDE在DE基础上实现参数自适应,DE对于参数较敏感。 

    进化算法不同阶段需要不同的参数以提升算法性能,因为进化算法本身就是动态的。

     

    jDE主要将F以及CR(缩放因子和交叉概率)这两个参数编码进个体,参数可以随着个体进入下一代。

    F_{i}P_{CRi}分别被初始化为0.5和0.9

     

    参数控制规则:

     

    F:

            R1=rand();
            R2=rand(); 
             if R2 <= t1(0.1)
                 F(i) = FL(0.1) + R1*FU(0.9-0.1);

    CR:

        R3=rand();
        R4=rand(); 

        if R4 <= t2(0.1)
            CR(i) = R3;

     

     

    Matlab实现:

    主函数

    
    
    jDE_result=zeros(50*15,200);
    FunIndex=1;%测试函数
    
    while FunIndex<16
    %{%}
    %maxIteration=1500;%最大迭代次数
    Generation=0;%进化代数,或者当前迭代代数
    Xmax=100;%搜索上界,可以根据需要改为向量形式
    Xmin=-100;%搜索下界
    Dim=30;%个体维数
    NP=100;%population size,种群规模
    count=50;%独立运行50次
    Max_Fes=300000;
    i_=0;
    j_=0;
    
    %%
    
    while count>0   
        %%
        %step1 初始化
        %X represent population
        %Generation=0;
        
        nFe=NP;
        Generation=0;%进化代数,或者当前迭代代数
        X=(Xmax-Xmin)*rand(NP,Dim)+Xmin;%X行代表个体i,列代表个体i的维度j
        F=zeros(NP,1);
        F = F+0.5;  
        CR=zeros(NP,1);
        CR = CR+0.9;
        X=[X,F,CR];
        
         for i=1:NP
                fitnessX(i)=cec15_func(X(i,1:Dim)',FunIndex);%fitnessX表示X的适应值
         end
            [fitnessbestX,indexbestX]=min(fitnessX);
            bestX=X(indexbestX,:);%bestX表示最优值对应的位置
            i_=((51-count))+(FunIndex-1)*50;
            
        %%
        %step2 mutation,crossover,selection
        while nFe<Max_Fes
        %求bestX
            Generation=Generation+1;
            [fitnessbestX,indexbestX]=min(fitnessX);
            bestX=X(indexbestX,:);%bestX表示最优值对应的位置
            
    
        %输出当前最优值
            j_=floor(Generation/15);
            if Generation>=15&&(mod(Generation,15)==0)
                fitnessbestX
                jDE_result(i_,j_)=fitnessbestX;
            end
        %%
        %step2.1 mutation
        %mutationStrategy=1:DE/rand/1,
        %mutationStrategy=2:DE/best/1,
        %mutationStrategy=3:DE/rand-to-best/1,
        %mutationStrategy=4:DE/best/2,
        %mutationStrategy=5:DE/rand/2,
        %产生为每一个个体Xi,G 产生一个变异向量Vi,G。 G代表进化代数
    %         V=mutation(X,bestX,F,mutationStrategy);
            %jDE
            V=jDE_mutation(X,X(:,Dim+1:Dim+1));
    
         %%  
        %step2.2 crossover
        %crossStrategy=1:binomial crossover
        %crossStrategy=2:Exponential crossover
        %产生为每一个个体Xi,G 产生一个交叉向量Ui,G。 G代表进化代数
    %         U=crossover(X,V,CR,crossStrategy);
            %jDE
            U=jDE_crossover(X,V,X(:,Dim+2:Dim+2));
            
            %%
            %边界处理
        for i=1:NP
               for j=1:Dim
                  while (U(i,j)>Xmax||U(i,j)<Xmin)
                     U(i,j)=(Xmax-Xmin)*rand+Xmin; 
                  end
               end
         end
      
        %%
        %step2.3 selection
            for i=1:NP
                fitnessU(i)=cec15_func(U(i,1:Dim)',FunIndex);
                if fitnessU(i)<=fitnessX(i)
                    X(i,:)=U(i,:);
                    fitnessX(i)=fitnessU(i);
                    if fitnessU(i)<fitnessbestX
                        bestX=U(i,:);
                        fitnessbestX=fitnessU(i);
                    end
                end
                    
            end
        %%
    nFe=nFe+NP;
    
        end
    
        %%
        optValue=fitnessbestX;
        count = count-1;
        jDE_result(i_,200)=fitnessbestX;
    end
    
    %测试函数+1
    FunIndex = FunIndex+1;
    end
    
    

     

     

    变异:

    %为了保证多样性,在产生新的种群个体的过程中,产生的nrandI个互不相等的随机数,与i皆不相等;
    %即:每产生的第 i 个新个体所用的随机选到的nrandI个旧个体不能是第 i 个旧个体。
      
    function V=jDE_mutation(X,F)
    
    [NP,Dim]=size(X);
    
    FL = 0.1;%jDE
    FU = 0.9;%jDE
    t1=0.1;%jDE
    
    
    for i=1:NP
    
        %在[1 NP]中产生nrandI个互不相等的随机数,且与i皆不相等
        nrandI=5;
        r=randi([1,NP],1,nrandI);%生成1*nrandI的随机矩阵(伪随机整数)
        for j=1:nrandI
            equalr(j)=sum(r==r(j));%逐一比较,若都不想等应为1 1 1 1 1
        end
        equali=sum(r==i);%是否和i相等
        equalval=sum(equalr)+equali;
        while(equalval>nrandI) %若产生的随机数有相等的或与i相等的——需要重新生成随机数
            r=randi([1,NP],1,nrandI);
            for j=1:nrandI
                equalr(j)=sum(r==r(j));
            end
            equali=sum(r==i);
            equalval=sum(equalr)+equali;
        end
        
        
            R1=rand();
            R2=rand(); 
             if R2 <= t1
                 F(i) = FL + R1*FU;
             else
                 F(i) = X(i,Dim-1);
             end
        
            V(i,Dim-1) = F(i);
            
        %jDE
        V(i,1:Dim-2)=X(r(1),1:Dim-2) + F(i).*(X(r(2),1:Dim-2)-X(r(3),1:Dim-2));       
    end   
    
    end

     

     

    交叉

    function U=jDE_crossover(X,V,CR)
    
    t2=0.1;
    [NP,Dim]=size(X);
        %crossStrategy=1:binomial crossover
    for i=1:NP
        R3=rand();
        R4=rand(); 
    
        if R4 <= t2
            CR(i) = R3;
            X(i,Dim) = CR(i);
            U(i,Dim) = CR(i);
         else
             CR(i) = X(i,Dim);
             U(i,Dim) = X(i,Dim);
        end
             U(i,Dim-1) = V(i,Dim-1);
    
           jRand=randi([1,Dim-2]);%jRand∈[1,Dim]
        for j=1:Dim-2
            k=rand();
            if k<= CR(i)||j==jRand %j==jRand是为了确保至少有一个U(i,j)=V(i,j)
                U(i,j)=V(i,j);
            else
                U(i,j)=X(i,j);
            end
    
        end
    
    end
    end
    
    

     

    更多相关内容
  • 提供了自适应差分进化算法的代码,另包含测试函数集 %Reference: A. K. Qin, V. L. Huang, and P. N. Suganthan,“Differential evolution % algorithm with strategy adaptation for global numerical ...
  • 基于自适应差分进化算法寻找非线性系统方程的多个根
  • 2009年A. K. Qin等人发表的自适应差分进化算法代码
  • 参数自适应 差分 进化算法 遗传算法 matlab
  • 此方法采用matlab编程,利用自适应参数的差分进化算法结合可行性规则来解决带约束的单目标优化问题。对于代码的使用,在工作窗口首先输入种群数(通常采用50-100),迭代次数1000以上,type指的是函数文件夹...
  • 差分进化算法框架下,借鉴闭环控制思想,设计状态评价因子,通过计算种群... 基于状态估计反馈的策略自适应差分进化算法. 自动化学报, 2020, 46(4): 752-766http://www.aas.net.cn/cn/article/doi/10.16383/j.aas....

    差分进化算法框架下,借鉴闭环控制思想,设计状态评价因子,通过计算种群个体的进化状态估计值,实现变异策略的自适应切换,指导下一代种群的进化,以提高算法搜索性能。

    王柳静, 张贵军, 周晓根. 基于状态估计反馈的策略自适应差分进化算法. 自动化学报, 2020, 46(4): 752-766

    http://www.aas.net.cn/cn/article/doi/10.16383/j.aas.2018.c170338

    差分进化 (Differential evolution,DE) 算法在优化求解过程中采用个体之间的竞争与合作机制指导种群搜索全局最优解,其特有的记忆功能使其可以根据当前的搜索情况,动态调整搜索方向。DE算法原理简单,易于实现,自Rainer Storn和Kenneth Price于1997年提出至今在多个领域得到了广泛应用。

    DE 算法通过种群的迭代进化实现最优解搜索,其搜索能力很大程度上依赖差分向量对当前候选个体的扰动,随着进化过程中种群个体之间的差异逐渐减小,单一的策略和参数很难在种群的全局探测(Exploration)能力和局部增强(Exploitation)能力之间进行平衡。如何判定个体所处的阶段,进而在此基础上设计阶段特定的策略和参数,是本文提高算法搜索性能的关键。

    现有DE 算法实质上是一个开环优化过程,无法通过输出来动态调整进化算子的策略和参数。本文通过引入反馈环节将种群个体的搜索过程动态划分为全局探测阶段和局部增强阶段,切换特定阶段的全局探测或局部增强变异策略,达到指导种群进化的目的。

    aa21f6ac93b164ca7c61647803ed9254.png

    图1 算法示意图

    状态估计反馈:

    1.基于抽象凸理论,建立进化状态估计模型,该模型特征在于估计值与目标函数值之间的估计误差与采样个体的密度有关,以一维Rastrigin问题进行无偏采样进行说明,采样个体越密集,估计误差就越小。

    1b65b35d6084d9a685cecce822c2caed.gif

    图2 采样个体对估计误差的影响

    2. DE本质上是一个有偏随机采样过程,以种群个体作为采样个体建立进化状态估计模型时,同样以一维Rastrigin问题进行实例说明,某区域生成的个体越多,则该区域中进化状态估计模型的精度越高,估计误差越小。

    21fd3f97391550a44db004d5d08a01fa.gif

    图3 DE采样过程中进化状态估计模型的变化

    3. 估计误差能够表征当前种群个体的进化状态,即估计误差较大,表明当前种群较为分散,则种群个体可能处于全局探测阶段,以进行大范围的寻优;而估计误差较小,表明当前种群聚集于局部陷阱区域,进而可以推断出大部分个体已处于局部增强阶段,从而可以对此种群密集区进行最优解搜索。

    因此,随着进化过程的进行,该模型逐渐收紧,基于估计误差设计状态评价因子,通过该量化指标衡量进化状态,有助于实现种群个体所处阶段的动态判定, 进而切换特定阶段的全局探测或局部增强变异策略,提高算法精度。

    CEC2013测试集和典型测试函数实验结果表明,算法在计算代价、收敛速度和解的质量方面优于主流改进差分进化算法和非差分进化算法。

    作者简介

    1e3abf87da97eab214c5f076661ba63d.png

    王柳静

    浙江工业大学信息工程学院博士研究生. 主要研究方向为智能信息处理, 优化理论及算法设计.

    E-mail: wlj@zjut.edu.cn

    eeed732436e0a73fe89690407798d99f.png

    张贵军

    浙江工业大学信息工程学院教授. 主要研究方向为智能信息处理, 优化理论及算法设计, 生物信息学.

    E-mail: zgj@zjut.edu.cn

    f79d941f299225ce62fd0c1a0b752f79.png

    周晓根

    浙江工业大学信息工程学院博士研究生. 主要研究方向为智能信息处理, 优化理论及算法设计.

    E-mail: zhouxiaogen53@126.com

    期刊动态

    2020年度国家杰青名单公布,《自动化学报》多位专家入选

    《自动化学报》20篇文章入选2019“领跑者5000”顶尖论文

    《自动化学报》多位编委和作者入选2019年中国高被引学者

    【热点综述】2019年综述TOP20

    自动化学报和IEEE/CAA JAS两刊编委获得2019年度国家自然科学基金项目

    《自动化学报》多名编委荣获“杨嘉墀科技奖”等奖项

    《自动化学报》发表文章再度入选中国科协优秀科技论文

    国家科技重大专项&重点研发计划等资助论文精选

    国家自然科学基金资助论文精选(一)

    国家自然科学基金资助论文精选(二)

    《自动化学报》2019上半年合集

    【热点专题】模糊系统

    《自动化学报》入选2019谷歌学术中文期刊TOP100,这些高影响力文章不容错过

    【热点综述】2019年最新文章

    【热点专题】流程工业自动化

    【热点专题】数据驱动控制、学习及优化

    【前沿速递】机器人领域热点综述

    【好文推荐】智能交通文集

    热点文章

    段广仁院士:高阶系统方法— II. 能控性与全驱性

    段广仁院士:高阶系统方法—I. 全驱系统与参数化设计

    JAS入榜自动化学科TOP20!谷歌学术计量最新发布

    JAS最新CiteScore 8.3,位居所属各领域Q1区前列

    自动化学报最新影响因子5.936,再获中国最具国际影响力期刊称号

    IEEE/CAA Journal of Automatica Sinica 被 SCI 收录

    期刊引证报告发布:自动化学报各项主要指标蝉联第1,再获百种中国杰出期刊称号

    《自动化学报》入选“庆祝中华人民共和国成立70周年精品期刊展”

    《自动化学报》20篇文章入选2018“领跑者5000”顶尖论文

    《自动化学报》和《自动化学报》(英文版)订阅信息

    《自动化学报》入编《中文核心期刊要目总览》2017年版

    期刊引证报告发布:自动化学报各项主要指标位列第一,再获中国杰出期刊称号

    JAS影响因子世界排名第7,自动化领域世界学术影响力Q1区唯一的中国期刊!

    自动化学报

    CJCR影响因子 2.793

    《自动化学报》是由中国科学院自动化研究所、中国自动化学会主办的中文期刊,刊载自动化科学与技术领域的高水平科研成果,被EI, 英国科学文摘, 日本科学技术文献速报, 俄罗斯文摘杂志, CSCD等数据库收录,是中国科技核心期刊、中文核心期刊、中国科技期刊卓越行动计划入选期刊。 

    根据中国学术期刊影响因子年报,《自动化学报》最新影响因子为5.936;根据中国科技期刊引证报告,《自动化学报》的核心影响因子为2.793,核心影响因子、总被引频次、综合评价总分、核心权威因子四项主要指标全部排名第1。

    《自动化学报》多年来多次获得 “百强报刊”, “精品科技期刊”、“百种杰出学术期刊”、“中国最具国际影响力学术期刊”等荣誉称号。

    5b8f7de91cd2b3bc76eae413c8edcf7e.png 014d40e25d5fc726bd28793020bec629.png

    JAS《自动化学报》(英文版)   

    5b8f7de91cd2b3bc76eae413c8edcf7e.png 657bdb1eb955379d3deca9d9706b37fc.png

    《自动化学报》服务号 

    5b8f7de91cd2b3bc76eae413c8edcf7e.png 8cb13e35bb57c33348422dad85c76a91.png

    《自动化学报》订阅号 

    联系我们

    Tel:     010-82544653(日常咨询和稿件处理) 

               010-82544677(录用后稿件处理)

    Fax:    010-82544497

    Email: aas@ia.ac.cn(日常咨询和稿件处理)

               aas_editor@ia.ac.cn(录用后稿件处理)

    http://www.aas.net.cn

    这里“阅读原文”,查看更多

    展开全文
  • 提出一种基于logistic 模型的自适应差分进化算法. 该算法在运行过程中可自动调节缩放因子和交叉概率因 子的大小, 能在算法初期保持种群多样性, 提高全局最优值的搜索能力, 而在算法后期, 随着局部最优值搜索能力...
  • 自适应差分进化算法

    2012-10-24 21:49:38
    自适应差分进化
  • 提出一种求解复杂电力系统经济负荷分配问题的快速自适应差分进化算法(FSADE). 从矢量运算角度对变 异算子进行分析, 提出了一种改进的变异算子, 大大提高了算法的收敛速率. 根据个体的进化过程, 引入自学习机制,...
  • 该代码是DE(差分进化算法的改进,是把参数编码到个体中同时进行进化的参数自适应差分算法。 具体算法细节,可以参考文章: Brest J.Greiner S,Boskovic B.et al. Self-adapting control parameters in ...
  • 通过模拟实验研究基于参数自适应差分进化算法的数值模型参数反演的可行性,在此基础上结合工程实例开展开采沉陷预计,并利用差分技术对数值模型进行误差控制。研究结果表明:采用参数自适应差分进化算法进行参数反演...
  • 在基变量选择方差理论分析的基础上,提出一种自适应差分进化算法(ADE). ADE算法通过设计自适应 收敛因子构建自调整的权重质心变异策略,同时在交叉策略中引入发射、收缩两种单纯形操作算子,保证算法 全局搜索能力的...
  • 为了提高搜索速度,同时克服传统算法过早陷入局部最优值的不足,提出了一种改进自适应差分进化算法。改进算法在充分分析经典和改进变异操作算子的属性以及种群统计信息的基础上,按照个体适应度的差异,将个体分成不同的...
  • 实现了自适应差分进化(SaDE)算法,其中的参数(CR,F)由种群自适应生成,提供了灵活的适宜度函数接口,可供实现复杂的优化问题求解。
  • 提出了一种自适应差分进化算法,该算法在计算过程中自适应调整缩放因子,在搜索初期保持种群的多样性和增强全局搜索能力,后期有利于局部搜索提高算法的精度。数值实验结果表明,该算法有效的避免早熟,提高了全局寻...
  • 为了求解间歇反应动态优化问题,提出了一种自适应差分进化算法(Self-Adaptive Dif-ferential Evolution,SADE)。在SADE算法中,每个个体都拥有自己的控制参数。该算法在对原优化问题进行差分进化搜优的同时,以权重大小...
  • 大数据-算法-改进自适应差分进化算法及其应用研究.pdf
  • 大数据-算法
  • 基于DPBX-α算子的自适应差分进化算法:行业论文精品资料 基于DPBX-α算子的自适应差分进化算法 中国地质大学(武汉)计算机学院,武汉,430074摘要:PBX-α算子是遗传算法(GA)中能够较好地平衡算...|下载前务必先预览,...
  • 将基于反射变异策略的子代生成策略和自适应参数方法组合形成了基于反射变异策略的自适应差分进化算法(RMADE)。使用12个函数测试了RMADE的性能并与其他算法进行比较,结果表明RMADE具有较快的收敛速度和较好的全局...
  • 在cec2017会议上发布,单目标实参数优化特别会话部分,性能全球排名第二的差分进化算法
  • 针对标准的差分进化(DE)算法在高维复杂的函数优化中易早熟收敛,进而导致搜索精度低甚至优化失败的问题,提出一种基于单纯形局部搜索的自适应差分进化算法(SSADE).将DE算法的快速全局搜索能力与单纯形的强局部寻优...
  • 行业分类-设备装置-自适应差分进化算法优化的广义率相关P-I迟滞建模方法.zip
  • 基于DPBX-α算子的自适应差分进化算法,汪洋,蔡之华,PBX-α算子是遗传算法(GA)中能够较好地平衡算法勘探性与开采性的一种变异算子. 本文基于PBX-α算子的思想提出一种新型的差分变异算子DPB
  • 自适应差分进化算法优化BP神经网络的时间序列预测.pdf
  • 基于混沌自适应差分进化算法的舰船电力系统网络重构.pdf
  • 为此,提出自适应加速差分进化算法,该算法利用混沌的遍历性产生初始群体,以克服种群体初始化时的盲目性和随机性;其次随着搜索过程的进行随机自适应地调整缩放因子和选取差分进化模式,以减少人为因素影响,增强搜索能力...
  • 针对现有改进差分进化算法易陷入局部最优解的不足,提出一种改进的自适应差分进化算法。该算法对精英个体实施Baldwin学习,使其在不确定代数内保持基因型不变并尝试多种表现型以引导种群中其他个体进化;同时用直觉...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,221
精华内容 888
关键字:

自适应差分进化算法