【智能优化算法-差分进化算法】基于多种交叉策略和变异策略的差分进化算法求解单目标优化问题含Matlab源码

简介: 【智能优化算法-差分进化算法】基于多种交叉策略和变异策略的差分进化算法求解单目标优化问题含Matlab源码
+关注继续查看

 ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法 神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

1 内容介绍

单目标优化,多目标优化和约束优化问题在数学和工程领域普遍存在,且变得越来越复杂.进化计算是求解此类问题的有效方法,近年来,差分进化(Differential Evolution,DE)算法在进化计算领域受到越来越多的关注.差分进化算法是一种基于种群优化的随机优化技术,拥有结构简单,易于实现,鲁棒性强等优点.DE算法已被广泛应用于许多领域.

image

image.gif编辑

image

image.gif编辑

image

image.gif编辑

2 部分代码

%根据文章《Differential Evolution Algorithm With Strategy Adaptation for Global Numerical Optimization》的算法:ALGORITHMIC DESCRIPTION OF DE

%测试函数求值用函数testFun(x,FunIndex)

%变异向量用函数mutation(X,bestX,F,mutationStrategy)

%交叉向量用函数crossover(X,V,CR,crossStrategy)

%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.

%crossover

%crossStrategy=1:binomial crossover

%crossStrategy=2:Exponential crossover

clear

close all

maxIteration=1000;%最大迭代次数

Generation=0;%进化代数,或者当前迭代代数

Xmax=30;%搜索上界,可以根据需要改为向量形式

Xmin=-30;%搜索下界

Dim=30;%个体维数

NP=50;%population size,种群规模

F=0.5;%scaling factor 缩放因子

CR=0.3;%crossover rate 交叉概率

FunIndex=3;%测试方程索引,不同值对应不同的测试函数

mutationStrategy=1;%变异策略

crossStrategy=1;%交叉策略

%%

%step1 初始化

%X represent population

%Generation=0;

X=(Xmax-Xmin)*rand(NP,Dim)+Xmin;%X行代表个体i,列代表个体i的维度j

%%

%step2 mutation,crossover,selection

while Generation<maxIteration

%求bestX

    for i=1:NP

        fitnessX(i)=testFun(X(i,:),FunIndex);%fitnessX表示X的适应值

    end

    [fitnessbestX,indexbestX]=min(fitnessX);

    bestX=X(indexbestX,:);%bestX表示最优值对应的位置

%%

%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);

 %%   

%step2.2 crossover

%crossStrategy=1:binomial crossover

%crossStrategy=2:Exponential crossover

%产生为每一个个体Xi,G 产生一个交叉向量Ui,G。G代表进化代数

    U=crossover(X,V,CR,crossStrategy);

%%    

%step2.3 selection

    for i=1:NP

        fitnessU(i)=testFun(U(i,:),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

%%

    Generation=Generation+1;

    bestfitnessG(Generation)=fitnessbestX;

end

%%

%画图

plot(bestfitnessG);

optValue=num2str(fitnessbestX);

Location=num2str(bestX);

disp(strcat('the optimal value','=',optValue));

disp(strcat('the best location','=',Location));

3 运行结果

image

image.gif编辑

4 参考文献

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


相关文章
|
5天前
|
机器学习/深度学习 算法 测试技术
C++前缀和算法的应用:用地毯覆盖后的最少白色砖块 原理源码测试用例
C++前缀和算法的应用:用地毯覆盖后的最少白色砖块 原理源码测试用例
|
5天前
|
算法 测试技术 程序员
C++算法:第N位数的原理、源码及测试用例
C++算法:第N位数的原理、源码及测试用例
|
5天前
|
算法 测试技术 C#
C++前缀和算法的应用:从栈中取出 K 个硬币的最大面值和 原理源码测试用例
C++前缀和算法的应用:从栈中取出 K 个硬币的最大面值和 原理源码测试用例
|
4月前
|
机器学习/深度学习 传感器 算法
融合黄金正弦算法和纵横交叉策略的秃鹰搜索算法(GSCBES)-附matlab代码
融合黄金正弦算法和纵横交叉策略的秃鹰搜索算法(GSCBES)-附matlab代码
|
5月前
|
机器学习/深度学习 传感器 编解码
路径规划算法:基于纵横交叉优化的机器人路径规划算法- 附matlab代码
路径规划算法:基于纵横交叉优化的机器人路径规划算法- 附matlab代码
|
5月前
|
机器学习/深度学习 传感器 算法
智能优化算法-纵横交叉算法附matlab代码
智能优化算法-纵横交叉算法附matlab代码
|
机器学习/深度学习 传感器 算法
基于变因子加权学习与邻代维度交叉策略的改进乌鸦算法求解单目标优化问题含Matlab代码
基于变因子加权学习与邻代维度交叉策略的改进乌鸦算法求解单目标优化问题含Matlab代码
|
机器学习/深度学习 算法 TensorFlow
TF之LSTM:利用LSTM算法对mnist手写数字图片数据集(TF函数自带)训练、评估(偶尔100%准确度,交叉熵验证)
TF之LSTM:利用LSTM算法对mnist手写数字图片数据集(TF函数自带)训练、评估(偶尔100%准确度,交叉熵验证)
TF之LSTM:利用LSTM算法对mnist手写数字图片数据集(TF函数自带)训练、评估(偶尔100%准确度,交叉熵验证)
[leetcode/lintcode 题解] 阿里算法面试真题:交叉字符串
[leetcode/lintcode 题解] 阿里算法面试真题:交叉字符串
[leetcode/lintcode 题解] 阿里算法面试真题:交叉字符串
热门文章
最新文章
相关产品
机器翻译
推荐文章
更多