m云计算任务调度优化matlab仿真,输出成本,时间,负荷优化结果,对比ACO,PSO,WOA三种优化算法

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

       鲸鱼算法(Whale Optimization Algorithm,WOA)[1]。鲸鱼优化算法(WOA)是 2016 年由澳大利亚格里菲斯大学的 Mirjalili 等提出的一种新的群体智能优化算法,因算法简练易于实现,且对目标函数条件要求宽松,参数控制较少等种种优点受到一批又一批学者的亲睐,且经过不断的改进WOA已应用于许多领域。WOA算法设计的既精妙又富有特色,它源于对自然界中座头鲸群体狩猎行为的模拟, 通过鲸鱼群体搜索、包围、追捕和攻击猎物等过程实现优时化搜索的目的。在原始的WOA中,提供了包围猎物,螺旋气泡、寻找猎物的数学模型。

       WOA算法的初始阶段中,座头鲸并不知道食物所在的位置,他们都是通过群体合作来获得食物的位置信息,因此,距离食物最近的鲸鱼相当于当前的一个局部最优解,其他鲸鱼个体都会朝这个位置靠近,从而逐步包围食物,因此使用下列的数学模型表示:

2.2气泡攻击

   本阶段模仿座头鲸进行气泡攻击,通过收缩包围和螺旋更新位置来设计鲸鱼捕食吐出气泡的行为,从而达到鲸鱼局部寻优的目的。

 (1)螺旋更新位置

   座头鲸个体首先计算与当前最优鲸鱼的距离,然后再以螺旋方式游走,在进行食物的搜索时候,螺旋游走方式的数学模型为:

2.3寻觅食物阶段

       座头鲸通过控制|A|向量游走获取食物,当|A|>1的时候,座头鲸个体向着参考座头鲸的位置靠近,鲸鱼个体朝着随机选取的座头鲸更新位置,这种方式保证了座头鲸个体能够进行全局搜索,获得全局最优解,其数学模型表示如下:

 

优化目标函数概述: 

 优化目标函数做如下的设计:

即成本,时间,负荷 

 

2.仿真效果预览

matlab2022a仿真如下:

 

 

3.MATLAB核心程序

Num          = 50;  %搜索数量
Iters        = 200; %迭代次数
D            = M*N; %搜索空间维数
woa_idx      = zeros(1,D);
woa_get      = inf; 

%初始化种群的个体
for i=1:Num
    for j=1:D
        xwoa(i,j)=randn; %随机初始化位置
    end
end 


for t=1:Iters
    t
    for i=1:Num
        %目标函数更新
        [pa(i),pa1(i),pa2(i),pa3(i)]  = fitness(xwoa(i,:));
        Fitout                        = pa(i);
        %更新
        if Fitout < woa_get  
            woa_get = Fitout; 
            woa_idx = xwoa(i,:);
        end
    end
    %调整参数
    c1 = 2-t*((1)/300); 
    c2 =-1+t*((-1)/300);
    %位置更新
    for i=1:Num
        r1         = rand();
        r2         = rand();
        K1         = 2*c1*r1-c1;  
        K2         = 2*r2;             
        l          =(c2-1)*rand + 1;  
        rand_flag  = rand();   
        
        for j=1:D
            if rand_flag<0.5   
               if abs(K1)>=1
                  RLidx    = floor(Num*rand()+1);
                  X_rand   = xwoa(RLidx, :);
                  D_X_rand = abs(K2*X_rand(j)-xwoa(i,j)); 
                  xwoa(i,j)= X_rand(j)-K1*D_X_rand;     
               else
                  D_Leader = abs(K2*woa_idx(j)-xwoa(i,j)); 
                  xwoa(i,j)= woa_idx(j)-K1*D_Leader;    
               end
            else
                distLeader = abs(woa_idx(j)-xwoa(i,j));
                xwoa(i,j)  = distLeader*exp(6*l).*cos(l.*2*pi)+woa_idx(j);
            end
        end
    end
    [pb,pb1,pb2,pb3]  = fitness(woa_idx);
    Pbest(t)  = pb;
    Pbest1(t) = pb1;
    Pbest2(t) = pb2;
    Pbest3(t) = pb3;
end
 


figure;
subplot(221);
plot(Pbest,'b');
legend('加权收敛目标');
grid on
%输出三个指标的收敛曲线
subplot(222);
plot(Pbest1,'b');
legend('归一化成本值');
grid on
subplot(223);
plot(Pbest2,'b');
legend('归一化时间值');
grid on
subplot(224);
plot(Pbest3,'b');
legend('归一化负荷值');
grid on


%输出调度结果
[aij,fobj,fobj1,fobj2,fobj3] = fitness_results(woa_idx);

%显示各个资源的三个指标的利用率
%处理能力利用率
for i = 1:M
    tmps = aij(:,i);
    indx = find(tmps==1);
    SE(i)= sum(Et(indx))/En(i);
end
%内存利用率
for i = 1:M
    tmps = aij(:,i);
    indx = find(tmps==1);
    SS(i)= sum(St(indx))/Sn(i);
end
%带宽利用率
for i = 1:M
    tmps = aij(:,i);
    indx = find(tmps==1);
    SC(i)= sum(Ct(indx))/Cn(i);
end
 
02_056m

4.完整MATLAB

V

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ga遗传算法是一种启发式搜索算法,模拟了生物进化中的遗传和适应性思维,通过逐代演化进化的方式不断搜索最优解。该算法通过使用选择、交叉和变异等操作对种群进行演化,并且利用适应度函数来评估个体的适应性,以进一步指导进化过程。ga遗传算法有很强的全局搜索能力和较优解搜索能力,适用于解决复杂优化问题。 aco蚁群算法是通过模拟蚂蚁在搜索食物时留下的信息素和选择路径的行为来解决优化问题的一种算法。该算法通过不断调整蚂蚁的路径选择,以信息素浓度为引导,从而使得整个蚁群在搜索过程中逐步收敛到最优解。aco蚁群算法适用于求解具有离散或连续参数的组合优化问题,尤其在TSP问题等方面有较为广泛的应用。 pso粒子群优化算法模拟了鸟群或鱼群等群体的协同行为,将每个个体视为粒子,并利用当前个体的历史最优和群体最优来指导搜索。该算法通过不断更新粒子在解空间的位置和速度,以寻找最优解。pso粒子群优化算法具有收敛速度快、全局搜索能力强等特点,广泛应用于多目标优化、参数优化等问题。 这三种优化算法都是启发式搜索算法,根据不同的问题特点选择合适的算法进行求解。每种算法都有其独特的特点和适用范围,通过不断迭代和优化,可以找到问题的较优解或者近似最优解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱C编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值