基于启发式算法的网络卸载策略

本文对本人对【基于启发式算法的网络卸载策略】的研究过程进行记录

一、问题假设

假设存在1个终端,两个边缘设备,三个云服务器,其运算速度分别假定为0.029210210870350350Mbps),终端与云服务器直接利用WAN传输信息,终端与边缘设备通过LAN传输信息,边缘设备与云服务器通过LAN传输信息(可以认为光缆传输速度极快),WAN和LAN的传输速度分别假定为10、100(Mbps),终端工作、上传、下载能耗分别为0.7、0.1、0.025W。

不难发现终端的卸载方案有三种:

  1. 终端自行处理计算(不卸载策略)
  2. 终端基于云服务器的完全卸载策略,由于终端直接传输到云服务器使用的WAN传输速度极慢,可以认为终端卸载到云服务器应该使用“端—边—云”的卸载方案,即终端卸载任务至边缘设备,通过边缘设备转到云服务器进行计算,这种转载方案可以减轻任务传输途中的速度。
  3. 基于“端—边—云”的多重资源卸载方案,即终端、边缘设备、云服务器智能分配任务,使得任务能够尽快完成的同时能尽量的节约能耗,也就是本次主要研究目标,使用粒子群算法求解。

  • 问题求解

通过启发式算法中的PSO算法,适应度值以能耗、完成时间综合组成

设置位置边界使得每个设备(包括终端、边缘、云端)处理的任务总和需恰巧等于设置的任务总量,且每个设备处理的任务量不得为负。

粒子位置为6维,每一维分别每个设备承担的任务量。

假设任务量为:10000,求解的结果如下(matlab代码见附录)

表示6个设备分配的任务量

其中

pso.m

%% I. 清空环境
clc
clear
close all

%% II. 参数初始化
c1 = 1.49445;
c2 = 1.49445;
task=10000;         %任务量
deadline=200;       %任务执行时长

kmax = 1000;   % 进化次数
popsize = 100;






0; %种群规模

% 控制粒子速度
Vmax = 1;
Vmin = -1;
% 个体位置变化的最大范围
popmax = task;
popmin = 0;

%惯性权重最大值和最小值
Wmax = 0.9;
Wmin = 0.4;

% %压缩因子
% phi = c1+c2;
% lamda = 2 / abs(2 - phi - sqrt(phi^2 - 4*phi));   % 压缩因子
%% III. 产生初始粒子和速度
for i = 1:popsize
    % 随机产生一个种群
    pop(i,1:5) = 1000*rand(1,5);  %初始各个粒子位置
    pop(i,6)=task-sum(pop(i,1:5));
    V(i,:) = rands(1,6);         %初始化各个粒子速度
    % 计算适应度
    fitness(i) = fun1(pop(i,:),deadline,task);   %各个粒子的适应度值
end

%% IV. 个体极值和群体极值
[best_fitness best_index] = min(fitness);
Gbest = pop(best_index,:);     %粒子群体最优位置
Pbest = pop;                   %粒子个体最优位置
fitnessPbest = fitness;        %粒子个体最优适应度值
fitnessGbest = best_fitness;   %粒子群体最优适应度值

%% V. 迭代寻优
for i = 1:kmax
    %计算动态惯性权重
    w = Wmax - (Wmax - Wmin)*i / kmax;
    
    for j = 1:popsize
        % 速度更新
        V(j,:) = w*V(j,:) + c1*rand*(Pbest(j,:) - pop(j,:)) + c2*rand*(Gbest - pop(j,:));%标准粒子群算法
        %         V(j,:) = lamda*V(j,:) + c1*rand*(Pbest(j,:) - pop(j,:)) + c2*rand*(Gbest - pop(j,:));%压缩粒子群算法
        %         V(j,:) = V(j,:) + c1*rand*(Pbest(j,:) - pop(j,:)) + c2*rand*(Gbest - pop(j,:));%普通粒子群算法
        % 进行速度约束(边界约束)
        V(j,find(V(j,:)>Vmax)) = Vmax;
        V(j,find(V(j,:)<Vmin)) = Vmin;
        
        % 位置更新
        pop(j,:) = pop(j,:) + V(j,:);
        % 进行位置约束(边界约束)
        pop(j,find(pop(j,:)>popmax)) = popmax;
        pop(j,find(pop(j,:)<popmin)) = popmin;
        
        % 适应度值更新
        fitness(j) = fun1(pop(j,:),deadline,task);
    end
    
    for j = 1:popsize
        % 个体最优更新
        if fitness(j) < fitnessPbest(j)
            Pbest(j,:) = pop(j,:);
            fitnessPbest(j) = fitness(j);
        end
        
        % 群体最优更新
        if fitness(j) < fitnessGbest
            Gbest = pop(j,:);
            fitnessGbest = fitness(j);
        end
    end
    Best(i) = fitnessGbest;%用于存储每次迭代产生的最优的适应度值
end

%% VI.输出结果
disp(['当x(1)=',num2str(Gbest(1)),'和','x(2)=',num2str(Gbest(2)),'和','x(3)=',num2str(Gbest(3))]);
disp(['x(4)=',num2str(Gbest(4)),'和','x(5)=',num2str(Gbest(5)),'和','x(6)=',num2str(Gbest(6))]);
disp(['所求函数的最小值是',num2str(fitnessGbest)]);
figure
plot(Best)
title('最优个体适应度','fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);

fun1.m

function y = fun1(x,t,task)
PEN=1e6;              %罚系数
P=[0.7 0.1 0.025];     %功率
R=[0.029 210 210 870 350 350];    %执行速度
B=100;                 %LAN传输带宽
T1=sum(x./R);               %执行时间
T2=2*(sum(x(2:3)/B)+sum(2*x(4:6)/B));       %传输时间(往返双程)
T=T1+T2;               %总时耗
E=P(1)*(x(1)/R(1))+(P(2)+P(3))*sum(x(2:6));    %能耗
if T<t
    y=E;
else
    y=E*(T/t);
end
if sum(x)~=task
    y=y+(PEN*abs(task-sum(x))-1);            %罚函数
end
end

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
启发式算法是一种基于启发式规则和元启发式策略优化方法,可用于优化移动边缘计算卸载。以下是一些可以使用的元启发式算法优化移动边缘计算卸载的示例: 1. 遗传算法(Genetic Algorithm):通过模拟生物进化的过程,使用选择、交叉和变异等操作来搜索最优解。在移动边缘计算卸载中,可以将任务分配和资源分配等问题建模为遗传算法优化问题。 2. 粒子群优化算法(Particle Swarm Optimization):通过模拟鸟群或鱼群等生物个体的行为,利用个体之间的协作和信息交流来寻找最优解。在移动边缘计算卸载中,可以将移动设备和边缘服务器看作粒子,通过迭代更新位置来优化任务分配和资源分配策略。 3. 蚁群算法(Ant Colony Optimization):通过模拟蚂蚁在寻找食物时释放信息素和选择路径的行为,来寻找最优解。在移动边缘计算卸载中,可以将任务请求看作食物,蚂蚁看作移动设备,通过信息素的释放和更新来优化任务分配和资源分配策略。 4. 人工鱼群算法(Artificial Fish Swarm Algorithm):通过模拟鱼群觅食和追逐行为,来寻找最优解。在移动边缘计算卸载中,可以将任务请求看作食物,鱼群看作移动设备,通过觅食和追逐行为来优化任务分配和资源分配策略。 这些元启发式算法可以根据具体的问题和场景进行调整和扩展,结合问题的特点设计合适的启发式规则和策略,以达到优化移动边缘计算卸载的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ACanary

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

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

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

打赏作者

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

抵扣说明:

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

余额充值