📋📋📋本文目录如下:🎁🎁🎁

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

近年来,深度神经网络在计算机领域应用越来越广泛,然而由于各类深度学习应用对计算能力具有较高的需求,无法运行在计算能力有限的终端设备运行中。若利用云端设备和边缘设备对不同任务进行分工协作,在提高应用响应延迟的同时可以降低终端设备的能量消耗。云端设备具有高计算能力,但数据在传输过程中往往具有较高的时延;边缘计算通过边缘服务器将各类资源下沉至更靠近终端设备侧,为终端设备提供了一定的计算资源的同时,减少网络数据流量压力。本文综合考虑基于DNNs的应用响应时间、计算能耗和租用服务器的价格,使用启发式算法设计四种不同的任务卸载策略即基于终端设备的不卸载策略、基于云服务器的完全卸载策略、基于端云的部分卸载策略和基于端—边—云的多重资源卸载策略,同时综合粒子群算法和模拟退火算法提高算法的计算效率和计算结果的精准度。通过基于模拟退火的粒子群算法使用仿真模拟实验找到在四种不同策略下的最优卸载方案,比较这几种不同卸载策略在处理不同的深度神经网络时的综合适应度值,验证了基于端—边—云的多重卸载策略在处理深度神经网络卸载问题时所具备的优越性。

📚2 运行结果

go 边缘计算 边缘计算算法实现_Power

 

go 边缘计算 边缘计算算法实现_启发式算法_02

 

go 边缘计算 边缘计算算法实现_启发式算法_03

 

go 边缘计算 边缘计算算法实现_启发式算法_04

go 边缘计算 边缘计算算法实现_边缘计算_05

 

go 边缘计算 边缘计算算法实现_启发式算法_06

 

go 边缘计算 边缘计算算法实现_边缘计算_07

 

go 边缘计算 边缘计算算法实现_启发式算法_08

 

go 边缘计算 边缘计算算法实现_go 边缘计算_09

go 边缘计算 边缘计算算法实现_边缘计算_10

 

go 边缘计算 边缘计算算法实现_Power_11

 

go 边缘计算 边缘计算算法实现_边缘计算_12

 

go 边缘计算 边缘计算算法实现_go 边缘计算_13

 

go 边缘计算 边缘计算算法实现_边缘计算_14

 

go 边缘计算 边缘计算算法实现_边缘计算_15

 

go 边缘计算 边缘计算算法实现_Power_16

 

go 边缘计算 边缘计算算法实现_go 边缘计算_17

 

go 边缘计算 边缘计算算法实现_边缘计算_18

 

go 边缘计算 边缘计算算法实现_go 边缘计算_19

 

go 边缘计算 边缘计算算法实现_Power_20

运行时间较长需要耐心等待哦!

部分代码:

%% 清空环境
 clc
 clear
 close allfor num=1:20    %进行20次实验测试
     runspped=1715265866.21;
     lab=["vgg11","vgg13","vgg16","vgg19","googlenet","darknet53","fuse"];
     file_name="测试结果"+string(num);
     mkdir(file_name)
     for i=1:6
         
         X=xlsread("./params.xlsx",i);                   %读取的数据(输入修改)
         task_num=size(X(:,9),1);
         execution_time(1:task_num,1)=(X(:,9)/sum(X(:,9)))*1;     %云服务器1执行时间
         execution_time(1:task_num,2)=(X(:,9)/sum(X(:,9)))*1.3;   %边缘服务器2执行时间
         execution_time(1:task_num,3)=(X(:,9)/sum(X(:,9)))*1.4;     %边缘服务器3执行时间
         execution_time(1:task_num,4)=(X(:,9)/sum(X(:,9)))*2;     %本地终端执行时间
         %execution_time(:,:)=execution_time(:,:).*X(1,10);
         execution_time(:,:)=execution_time(:,:).*sum(X(:,9))./(4*runspped*0.001);
         narvs = size(X(:,9),1)+7;       %目标函数的自变量个数
         task_out=X(:,8);
         task_in=X(1,4);
         task=xlsread("./task.xlsx",i);
         floot_num(i)=sum(X(:,9));
         %% 初始化设置
         if narvs<30
             MaxNum = 300;                          % 粒子最大迭代次数
         else
             MaxNum=narvs*10;
         end
         
         %% 不卸载LOPSO
         narvs=task_num+7;
         x=zeros(1, narvs);         % 粒子所在的位置
         LO=object_value(x,task,execution_time,task_num,task_out,task_in);
         disp("不卸载策略结果:");LO
         LO_result_data=object_result_data(x,task,execution_time,task_num,task_out,task_in);
         
         %% 基于云服务器的完全卸载(FOCPSO)
         [FOC,FOC_strategy]=FOCPSO(task,execution_time,task_num,task_out,task_in);
         disp("基于云服务器的完全卸载:");FOC
         FOC_result_data=object_result_data(FOC_strategy,task,execution_time,task_num,task_out,task_in);
         
         %% 基于端云的部分卸载(POPSO)
         [PO,PO_strategy]=POPSO(task,execution_time,task_num,task_out,task_in,LO,MaxNum);
         disp("基于端云的部分卸载:");PO
         PO_result_data=object_result_data(PO_strategy,task,execution_time,task_num,task_out,task_in);
         
         %% 端-云-边多重资源卸载策略(MRPSO)
         [MR,MR_strategy] = MRPSO(task,execution_time,task_num,task_out,task_in,LO,MaxNum);
         disp("端-云-边卸载策略:");MR
         MR_result_data=object_result_data(MR_strategy,task,execution_time,task_num,task_out,task_in);
         
         %% 结果存储
         result(i,:)=[LO FOC PO MR];
         purchase_cost(i,:)=[LO_result_data(1) FOC_result_data(1) PO_result_data(1) MR_result_data(1)];
         completion_time(i,:)=[LO_result_data(2) FOC_result_data(2) PO_result_data(2) MR_result_data(2)];
         Power_Cost(i,:)=[LO_result_data(3) FOC_result_data(3) PO_result_data(3) MR_result_data(3)];
         
         %% 卸载方案存储
         lables=["LOPSO";"FOCPSO";"POPSO";"MRPSO"];
         strategy(1:4,:)=[zeros(1, narvs);FOC_strategy;PO_strategy;MR_strategy];
         strategy=[lables,strategy];
         strategy_name=lab(i);
         xlswrite('./'+file_name+'/'+strategy_name+'.xls',strategy);
         clear strategy;
     end
     
     %% 适应度值对比图
     figure();
     b=bar(result);
     grid on;
     xlabel('DNNs')
     legend('LOPSO','FOCPSO','POPSO','MRPSO')
     set(gca,'XTickLabel',{'vgg11','vgg13','vgg16','vgg19','googlenet','darknet53','fuse'})
     title("适应度值对比图");
     
     %% 云配置价格、执行时间、能耗对比图
     figure();
     b=bar(purchase_cost);
     grid on;
     xlabel('DNNs')
     legend('LOPSO','FOCPSO','POPSO','MRPSO')
     set(gca,'XTickLabel',{'vgg11','vgg13','vgg16','vgg19','googlenet','darknet53','fuse'})
     title("云配置价格对比图");
     
     figure();
     b=bar(completion_time);
     grid on;
     xlabel('DNNs')
     legend('LOPSO','FOCPSO','POPSO','MRPSO')
     set(gca,'XTickLabel',{'vgg11','vgg13','vgg16','vgg19','googlenet','darknet53','fuse'})
     title("执行时间对比图");
     
     figure();
     b=bar(Power_Cost);
     grid on;
     xlabel('DNNs')
     legend('LOPSO','FOCPSO','POPSO','MRPSO')
     set(gca,'XTickLabel',{'vgg11','vgg13','vgg16','vgg19','googlenet','darknet53','fuse'})
     title("能耗对比图");
     
     
     figure();
     b=bar(floot_num);
     grid on;
     xlabel('DNNs')
     set(gca,'XTickLabel',{'vgg11','vgg13','vgg16','vgg19','googlenet','darknet53','fuse'})
     title("浮点运算次数");
     
     
     %% 数据存储
     
     lables1=[" ";"vgg11";"vgg13";"vgg16";"vgg19";"googlenet";"darknet53"];
     lables2=["LOPSO","FOCPSO","POPSO","MRPSO"];
     
     completion_time=[lables2;completion_time];
     completion_time=[lables1,completion_time];
     xlswrite('./'+file_name+'/completion_time.xls',completion_time);
     
     purchase_cost=[lables2;purchase_cost];
     purchase_cost=[lables1,purchase_cost];
     xlswrite('./'+file_name+'/purchase_cost.xls',purchase_cost);
     
     Power_Cost=[lables2;Power_Cost];
     Power_Cost=[lables1,Power_Cost];
     xlswrite('./'+file_name+'/Power_Cost.xls',Power_Cost);
     
     result=[lables2;result];
     result=[lables1,result];
     xlswrite('./'+file_name+'/result.xls',result);
     
     %% 清空环境
     clc
     clear
     close all
 end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]田婷,虞延坤,牛新征.边缘计算环境下基于深度学习的DDos检测[J/OL].计算机测量与控制:1-9.

[2]赵尚维康. 工业物联网中基于边缘计算和强化学习的计算卸载方法研究[D].南京邮电大学,2022.DOI:10.27251/d.cnki.gnjdc.2022.000116.

🌈4 Matlab代码实现