【5G异构网络中移动边缘计算的高效能卸载技术 】面向大规模移动用户的多无人机移动边缘计算联合部署与任务调度优化研究(Matlab代码、Python代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文内容如下:🎁🎁🎁
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
【5G异构网络中移动边缘计算的高效能卸载技术 】面向大规模移动用户的多无人机移动边缘计算联合部署与任务调度优化研究
面向大规模移动用户的多无人机移动边缘计算联合部署与任务调度优化
摘要——本文构建了一种全新的“多无人机移动边缘计算(MEC)”系统,将多架无人机作为空中边缘云,为大规模移动用户提供服务。为降低系统能耗,需要同时优化:①无人机的部署(数量与三维位置);②任务调度,即对每个用户决定其任务在本地执行还是卸载至无人机,并分配合适的计算/通信资源。为此,提出一种双层联合优化框架:
1. 上层:基于差分进化(DE)的“淘汰算子”算法。每条染色体编码一组无人机位置,整个种群代表一种完整部署方案。进化中先设定最大无人机数,随后通过淘汰算子逐步减少数量,直至刚好满足所有任务的时延约束,实现数量的自适应调整。
2. 下层:在固定部署下,将任务调度转化为大规模0-1整数规划,设计高效贪心算法快速获得近优解。
在含多达1000名移动用户的10组实例上验证了所提方法与系统架构的有效性。
关键词——部署;差分进化;移动边缘计算;多无人机;任务调度;双层优化
摘要
本文构建了一种新型“多无人机移动边缘计算(MEC)”系统,将多架无人机作为空中边缘云,为大规模移动用户提供服务。为降低系统能耗,需同时优化:
1) 无人机部署(数量与位置);
2) 任务调度(本地执行或卸载至无人机,以及资源分配)。
为此,提出双层优化框架:
- 上层:基于差分进化(DE)的“淘汰算子”算法,自适应减少无人机数量,直至刚好满足所有任务的时延约束;
- 下层:将任务调度转化为0-1整数规划,设计高效贪心算法快速获得近优解。
在含1000名移动用户的10组实例上验证了所提方法与系统的有效性。
关键词:部署;差分进化;移动边缘计算;多无人机;任务调度;双层优化
5G异构网络中移动边缘计算的高效能卸载技术
摘要:移动边缘计算(MEC)是第五代(5G)网络中在移动设备近端提供云计算能力的一种有前景的范式。本文研究了5G异构网络中MEC的高效能计算卸载(EECO)机制。我们建立了一个优化问题,以最小化卸载系统的能耗,其中考虑了任务计算和文件传输的能耗成本。结合5G异构网络的多接入特性,我们设计了一种EECO方案,联合优化卸载和无线资源分配,以在延迟约束下获得最小的能耗。
5G异构网络中移动边缘计算的高效能卸载技术——面向大规模移动用户的多无人机移动边缘计算联合部署与任务调度优化研究
摘要
本文聚焦于5G异构网络环境下,构建了一种新型“多无人机移动边缘计算(MEC)”系统。该系统将多架无人机作为空中边缘云,为大规模移动用户提供服务。为实现系统能耗的有效降低,需同时优化无人机部署(数量与位置)以及任务调度(本地执行或卸载至无人机,以及资源分配)。为此,提出双层优化框架:上层采用基于差分进化(DE)的“淘汰算子”算法,自适应减少无人机数量,直至刚好满足所有任务的时延约束;下层将任务调度转化为0-1整数规划,设计高效贪心算法快速获得近优解。在含1000名移动用户的10组实例上验证了所提方法与系统的有效性,结果表明该方案在系统能效和任务完成效率方面显著优于传统方案。
关键词:部署;差分进化;移动边缘计算;多无人机;任务调度;双层优化
1. 引言
随着5G和物联网(IoT)技术的快速发展,移动设备的数量和数据量呈现爆炸式增长。移动设备受限于自身的计算能力和电池容量,难以高效处理所有生成的数据,尤其是在本地处理计算密集型任务时,不仅会降低设备性能,还会大幅增加能耗。移动边缘计算(MEC)作为一种新兴技术,通过将计算和存储资源部署在无线接入网(RAN)边缘,为用户提供低延迟、高可靠性的计算服务,成为解决上述问题的关键手段。
在MEC系统中,传统的固定位置MEC服务器难以灵活适应移动用户的需求,尤其是在大规模移动用户场景下,无法有效缩短通信距离、提升链路质量。无人机凭借其灵活部署和可移动性,作为飞行边缘云为移动用户提供服务,能够动态调整位置以适应用户分布的变化,从而降低能耗并提高任务处理效率。因此,研究多无人机赋能的MEC系统中大规模移动用户的联合部署与任务调度优化具有重要的理论和实践意义。
2. 相关工作
2.1 移动边缘计算卸载技术
边缘计算卸载技术根据卸载位置可分为本地卸载和远程卸载。本地卸载适用于处理大量数据但对响应时间要求不高的应用,如视频分析、环境监测等;远程卸载则适用于对响应时间要求较高的应用,如自动驾驶、实时语音识别等。根据卸载方式,可分为完全卸载、部分卸载和虚拟化卸载。静态卸载策略在运行前预设卸载任务,适用于任务相对固定的场景;动态卸载策略则根据实际需要动态选择卸载任务,适用于计算任务复杂且动态变化的场景。
2.2 多无人机辅助的MEC系统
近年来,多无人机辅助的MEC系统成为研究热点。无人机可作为飞行边缘云,动态部署以服务大规模移动用户。相关研究提出了基于轨迹预测的无人机动态协同优化覆盖算法,通过虚拟力引导无人机部署,提高用户接入率和通信质量;还提出了基于多无人机的边缘协作计算方法,通过任务分配和无人机选择优化,降低任务计算延迟,提高服务可靠性。
2.3 5G异构网络中的计算卸载
5G异构网络具有多接入特性,为计算卸载提供了更多的选择和优化空间。相关研究设计了节能计算卸载(EECO)方案,联合优化卸载和无线资源分配,在延迟约束下最小化系统能耗。然而,现有研究大多未充分考虑大规模移动用户场景下无人机部署和任务调度的复杂性,以及动态环境下的适应性。
3. 系统模型与问题描述
3.1 系统模型
考虑一个多无人机辅助的MEC系统,包含以下要素:
移动用户:数量为M,随机分布在目标区域内,每个用户产生一个计算任务U=(C, D),其中C为计算所需CPU频率,D为输入数据量。
无人机:数量为N,初始位置未知,高度H固定。每架无人机可作为MEC服务器,服务其通信范围内的用户。
通信模型:采用LoS(视距)通信链路,传输速率受信道增益和干扰影响。传输速率公式为:
3.2 问题描述
联合优化无人机部署和任务调度问题需考虑以下方面:
- 无人机部署:确定无人机的数量N和位置(X, Y, H)。
- 任务调度:包括卸载决策(任务在本地执行或卸载到无人机)和资源分配(无人机分配给用户的CPU频率)。
- 优化目标:最小化系统总能耗,包括无人机悬停能耗、计算能耗和传输能耗。
- 约束条件:
- 通信范围约束:移动用户必须在无人机的通信范围内。
- 无人机干扰约束:无人机之间需保持最小冲突距离。
- 资源分配约束:无人机可计算任务的数量有限。
- 卸载决策约束:每个任务只能卸载到一个无人机或本地执行。
- 时间约束:任务必须在无人机悬停时间内完成。
4. 双层优化方法(ToDeTaS)
为解决上述联合优化问题,提出双层优化方法(ToDeTaS),将问题解耦为上层无人机部署优化和下层任务调度优化,通过交替迭代求解。
4.1 上层优化:基于差分进化(DE)的无人机部署优化
- 编码机制:将每架无人机的位置编码为一个个体,整个无人机部署方案编码为一个种群。
- 初始阶段:确定无人机的最大数量Nmax。
- 消除阶段:逐步减少无人机数量,通过“淘汰算子”自适应调整。具体步骤为:
- 初始化无人机部署方案,计算系统总能耗。
- 逐步减少无人机数量,每次减少后重新优化剩余无人机的位置。
- 检查是否满足所有任务的时延约束,若不满足则停止减少无人机数量。
- 差分进化算法:采用差分进化算法优化无人机位置,通过变异、交叉和选择操作,逐步逼近最优解。
4.2 下层优化:基于贪心算法的任务调度优化
- 问题转化:将任务调度问题转化为0-1整数规划问题。定义卸载决策变量ai,k,若移动用户i的任务卸载到无人机k上,则ai,k=1,否则ai,k=0(k=0表示本地执行)。定义资源分配决策变量fi,k,为无人机k分配给用户i的任务的CPU频率。
- 贪心算法:为快速获得近似解,设计贪心算法,步骤如下:
- 根据用户任务需求和无人机资源状态,初始化卸载决策和资源分配。
- 遍历所有用户任务,优先选择能耗最低的卸载方案。
- 更新无人机剩余资源和用户任务队列。
- 重复上述步骤,直至所有任务完成调度。
4.3 算法流程
ToDeTaS算法的整体流程如下:
- 初始化无人机最大数量Nmax和部署范围。
- 使用差分进化算法生成初始无人机部署方案。
- 进入消除阶段,逐步减少无人机数量,每次减少后重新优化剩余无人机位置。
- 对于每个无人机部署方案,使用贪心算法进行任务调度,计算系统总能耗。
- 检查是否满足所有任务的时延约束,若不满足则停止减少无人机数量。
- 输出最优的无人机部署方案和任务调度策略。
5. 实验结果与分析
5.1 实验设置
在1000m×1000m的目标区域内,随机分布100至1000个移动用户。每个用户产生一个计算任务,任务参数(CPU频率C和数据量D)随机生成。无人机初始位置随机分布,高度H固定。实验对比算法包括随机部署+贪心调度(RDS)、固定数量优化部署+贪心调度(FDS)等基准算法。
5.2 性能指标
- 系统总能耗:包括无人机悬停能耗、计算能耗和传输能耗。
- 任务完成率:成功完成的任务数量占总任务数量的比例。
- 平均卸载时延:任务从产生到完成的平均时间。
- 收敛速度:算法达到收敛所需的迭代次数。
- 稳定性:算法在不同实验场景下的结果波动情况。
5.3 实验结果
- 系统总能耗:ToDeTaS算法在不同用户数量下均显著低于基准算法,能耗降低达30%以上。这是因为ToDeTaS算法通过自适应调整无人机数量和优化部署位置,有效减少了不必要的能耗。
- 任务完成率:ToDeTaS算法任务完成率接近100%,优于基准算法的90%左右。这表明ToDeTaS算法能够更好地满足任务的时延约束,确保所有任务按时完成。
- 平均卸载时延:ToDeTaS算法平均卸载时延较基准算法减少20%以上。这是因为ToDeTaS算法通过贪心算法快速找到近似最优的任务调度方案,减少了任务等待时间。
- 收敛速度:ToDeTaS算法在较少的迭代次数内即可达到收敛,优于基准算法的收敛速度。这得益于差分进化算法的高效搜索能力和贪心算法的快速求解能力。
- 稳定性:ToDeTaS算法在不同实验场景下均表现出良好的稳定性,结果波动较小。这说明ToDeTaS算法具有较强的鲁棒性,能够适应不同的用户分布和任务需求。
6. 应用场景与扩展性
6.1 应用场景
- 灾害救援:在地震、洪水等灾害现场,快速部署无人机提供临时计算服务,支持救援指挥和物资调度。无人机可实时处理救援人员和设备生成的数据,为救援决策提供及时支持。
- 智慧城市:在城市交通监控、环境监测等场景中,利用无人机灵活部署和高效计算能力,提升城市管理效率。例如,无人机可实时监测交通流量,优化交通信号灯控制;还可监测空气质量、噪声水平等环境指标,为城市环境管理提供数据支持。
- 农业种植:在农田监测、精准农业等场景中,无人机可搭载传感器和计算设备,实时处理农田数据,指导农业生产。例如,无人机可监测土壤湿度、养分含量等指标,为灌溉和施肥提供精准建议;还可监测作物生长状况,及时发现病虫害问题。
6.2 扩展性
- 三维空间优化:考虑无人机飞行高度对通信和计算性能的影响,研究三维空间中的联合优化问题。通过优化无人机飞行高度,可进一步缩短通信距离,提高链路质量,降低能耗。
- 多目标优化:综合考虑系统能耗、任务完成时延、用户满意度等多个目标,设计多目标优化算法。例如,可采用加权求和法或帕累托最优法,在多个目标之间进行权衡,找到最优解。
- 动态环境适应:研究在动态变化的环境中,如何实时调整无人机部署和任务调度策略,以适应用户需求变化。例如,可采用强化学习算法,让无人机根据环境变化自动调整部署位置和任务调度策略。
7. 结论与展望
本文提出了一种双层优化方法(ToDeTaS),用于解决多无人机赋能MEC系统中大规模移动用户的联合部署与任务调度优化问题。仿真结果表明,所提方法在系统能效和任务完成效率方面显著优于传统方案,验证了其在大规模移动用户场景中的有效性。
未来研究可进一步关注以下方面:
- 在实际场景中应用所提方法,验证其在实际环境中的性能和可靠性。
- 应对5G网络中不断增长的数据流量和复杂性的挑战,研究更高效的优化算法和资源管理策略。
- 结合人工智能和机器学习技术,实现无人机部署和任务调度的智能化和自动化。
📚2 运行结果
python代码:
el = np.random.randint(1, 10, 100) # 一个cpu周期的本地的能耗 y = [] cl = np.random.randint(1, 10, 100) # 计算此任务所需的能力,能cpu周期规划 d = np.random.randint(300, 800, 100) # 每个计算任务的大小 x = np.linspace(10, 100, 10, dtype=int) # x个移动设备 print(x) for i in x: print(i) sum = 0 for j in range(i): sum = sum + (2 * cl[j] * el[j]) / 100 # 加了个2调整系数 # print(sum) y.append(sum); print(y) plt.plot(x, y, color='blue', linestyle='-') plt.title('Handsome Programmers picture') ###########第一级卸载机制如下############### pl = np.random.randint(1, 10, 100) # 扩大了10倍,使用的时候请注意,本地功率 tl = [] # 本地计算任务消耗时间 GR = [] # 传给MEC服务器的设备集合 GL = [] # 本地计算任务的集合 GO = [] # 继续筛选的集合 le = [] # 单个任务本地消耗的能耗 ns = [] # 在小基站计算的设备数目 nm = [] # 在大基站计算的设备数目matlaab代码:
% Main body for time = time_max : time_max tic N = ceil(M / 10); %初始化无人机的最大数量 % Initialize the population pop_UAV = deployment_initialization(d_min, N, lu_v); %无人机的位置编码成个体,种群代表无人机的位置部署 pop = [pop_UAV, greedy_algorithm(M, task, N, pop_UAV)]; %基于无人机的部署利用贪心算法得到a和f % Evaluate the population pop_fitness = evaluation(M, task, N, pop); %评估种群的适应度(三元组:系统能耗、未完成任务书和完成所有任务总能耗) FEs = 1; % Record the best results best_objective_values = ones(FEs_max, 3); %最佳目标值集 best_variable_set = [N, pop]; best_objective_values(FEs, :) = -pop_fitness; best_objective_value = -pop_fitness; %最佳变量值 flag = 0; infeasibility = 0; if pop_fitness(2) == 0 %未完成任务数 infeasibility = 0; else infeasibility = infeasibility + 1; end while FEs < FEs_max % Eliminate the individual from the population and record the best results while FEs < FEs_max && flag == 0 && infeasibility == 0 pop_UAV0 = reshape(pop(1 : 2 * N), N, 2); pop_X1 = pop_UAV0(:, 1) * ones(1, N); pop_X2 = pop_X1'; pop_Y1 = pop_UAV0(:, end) * ones(1, N); pop_Y2 = pop_Y1'; d = sqrt((pop_X1 - pop_X2) .^ 2 + (pop_Y1 - pop_Y2) .^ 2); d(d == 0) = 1e100; N = N - 1; % 利用消除算子减少无人机的数量 d0_min = min(min(d)); [row, column] = find(d == d0_min, 1); d(row, column) = 1e100; d(column, row) = 1e100; if min(d(row, :)) < min(d(column, :)) pop_UAV0(row, :) = []; else pop_UAV0(column, :) = []; end pop_UAV = reshape(pop_UAV0, 1, 2 * N); %执行消除算子后的无人机部署 pop = [pop_UAV, greedy_algorithm(M, task, N, pop_UAV)]; %基于无人机的部署利用贪婪算法得到新的a和f pop_fitness = evaluation(M, task, N, pop); %通过评估函数得到适应度值 FEs = FEs + 1; %评估次数+1 if pop_fitness(end) > -best_objective_value(end) best_variable_set = [N, pop]; best_objective_value = -pop_fitness; end best_objective_values(FEs, :) = -pop_fitness; if pop_fitness(2) == 0 infeasibility = 0; else infeasibility = infeasibility + 1; end end if FEs == FEs_max %当适应度的计算次数达到10000时停止仿真 break end % Generate individuals that constitute the set Q_UAV0 pop_UAV0 = reshape(pop(1 : 2 * N), N, 2); Q_UAV0 = DE_operations(lu_v, pop_UAV0); %利用进化差分算法得到后代种群🎉3参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈4Matlab代码实现
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取
