差分进化算法实现 Schwefel’s函数

本文介绍了如何运用差分进化算法来求解优化问题中的经典函数——Schwefel’s函数。通过提供的代码示例,展示了算法的实现过程,并可能包括了算法的参数设置与优化策略。
摘要由CSDN通过智能技术生成

代码如下:

function DE(Gm,F0)  
  
t0 = cputime;  
%差分进化算法程序  
%F0是变异率 %Gm 最大迭代次数  
Gm = 10000;  
F0 = 0.5;  
Np = 100;  
CR = 0.9;  %交叉概率  
G= 1; %初始化代数  
D = 10; %所求问题的维数  
Gmin = zeros(1,Gm); %各代的最优值  
best_x = zeros(Gm,D); %各代的最优解  
value = zeros(1,Np);  
  
%产生初始种群  
xmin = -500;
xmax = 500;
function y = f(v)  
    %Schwefel’s 函数  
y = -sum(v.*sin(abs(v).^(1/2)));
end  
  
X0 = (xmax-xmin)*rand(Np,D) + xmin;  %产生Np个D维向量  
XG = X0;  
  
%%%%%%%%%%%%%----这里未做评价,不判断终止条件----%%%%%%%%%%%%%%%%%%%%%%%%  
  
XG_next_1= zeros(Np,D); %初始化  
XG_next_2 = zeros(Np,D);  
XG_next = zeros(Np,D);  
  
while G <= Gm   
G   
%%%%%%%%%%%%%%%%%%%%%%%%----变异操作----%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
    for i = 1:Np  
        %产生j,k,p三个不同的数  
        a = 1;  
        b = Np;  
        dx = randperm(b-a+1) + a- 1;  
        j = dx(1);  
        k = dx(2);  
   
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值