编程语言
首页 > 编程语言> > matlab解决差分进化算法解决一元函数的最优值的问题

matlab解决差分进化算法解决一元函数的最优值的问题

作者:互联网

差分进化算法是一种全局最优算法,在差分演化算法当中需要注意的几个点为变异率F、交叉率Cr、基向量的选择r0,r1,r2的选择等问题。在研究差分演化算法的过程之中有许多的改进,对基向量的改进、变异概率、交叉概率的改进。这里提供的是经典的差分演化算法,利用经典差分演化算法解决一元函数的最优值问题。
经典的差分演化算法步骤:
(1)初始化:x[i][j]=xmin+(xmax-xmin)*rand(D,Np);
xmin–变量的上界;xmax–变量的下界;D–种群数;Np–个体数;
(2)变异:v[i][j]=x[r0][j]+(x[r1][j]-x[r2][j])*F
通常F取0.5–09;但是对于函数的不同去<0.5也可以;
(3)交叉:u[i][j]=v[i][j]----Cr<rand()
u[i][j]=x[i][j]-----else
(4)选择:x[i][j]=u[i][j]—f(u)<f(x);
xg[i][j]=x[i][j]—else;g指的是子代数
-----这里是决定选最大值还是最小值
下面给出利用差分演化算法求解一元函数最小值的案列:

% DE算法的应用---</

标签:xmin,一元函数,差分,演化,算法,matlab,解决,最优
来源: https://blog.csdn.net/weixin_51631044/article/details/112923612