遗传算法求解基于移动边缘计算的任务卸载与资源调度优化(提供MATLAB代码)

一、优化模型介绍

移动边缘计算的任务卸载与资源调度优化原理是通过利用配备计算资源的移动无人机来为本地资源有限的移动用户提供计算卸载机会,以减轻用户设备的计算负担并提高计算性能。具体原理如下:

  1. 任务卸载:移动边缘计算系统将用户的计算任务分为两部分:一部分卸载到关联的无人机进行计算,剩余部分在本地进行计算。通过将部分计算任务卸载到无人机上,可以减轻用户设备的计算负担,提高计算效率。

  2. 资源调度:为了最小化所有用户间的最大总时延,需要联合优化无人机的轨迹和用户的调度。轨迹优化指的是确定无人机的飞行路径,使得无人机能够高效地服务所有用户。用户调度指的是确定每个用户的计算任务在何时卸载到无人机上进行计算,以及剩余部分在本地进行计算。

  3. 优化问题:任务卸载与资源调度优化问题是一个混合整数非凸优化问题,具有离散二进制变量和耦合约束。为了有效求解该问题,可以引入一些辅助变量将其转化为数学上易于处理的形式。然后,可以采用惩罚凹凸过程的算法来求解转化后的问题。

移动边缘计算的任务卸载与资源调度是指在移动设备和边缘服务器之间,将部分计算任务从移动设备卸载到边缘服务器,并合理分配资源以提高系统性能和降低能耗,通过移动边缘计算的任务卸载与资源调度优化,可以有效提高移动用户的计算性能,并减轻用户设备的计算负担。
在本文所研究的区块链网络中,优化的变量为:挖矿决策(即 m)和资源分配(即 p 和 f),目标函数是使所有矿工的总利润最大化。问题可以表述为:

max ⁡ m , p , f F miner  = ∑ i ∈ N ′ F i miner   s.t.  C 1 : m i ∈ { 0 , 1 } , ∀ i ∈ N C 2 : p min ⁡ ≤ p i ≤ p max ⁡ , ∀ i ∈ N ′ C 3 : f min ⁡ ≤ f i ≤ f max ⁡ , ∀ i ∈ N ′ C 4 : ∑ i ∈ N ′ f i ≤ f total  C 5 : F M S P ≥ 0 C 6 : T i t + T i m + T i o ≤ T i max ⁡ , ∀ i ∈ N ′ \begin{aligned} \max _{\mathbf{m}, \mathbf{p}, \mathbf{f}} & F^{\text {miner }}=\sum_{i \in \mathcal{N}^{\prime}} F_{i}^{\text {miner }} \\ \text { s.t. } & C 1: m_{i} \in\{0,1\}, \forall i \in \mathcal{N} \\ & C 2: p^{\min } \leq p_{i} \leq p^{\max }, \forall i \in \mathcal{N}^{\prime} \\ & C 3: f^{\min } \leq f_{i} \leq f^{\max }, \forall i \in \mathcal{N}^{\prime} \\ & C 4: \sum_{i \in \mathcal{N}^{\prime}} f_{i} \leq f^{\text {total }} \\ & C 5: F^{M S P} \geq 0 \\ & C 6: T_{i}^{t}+T_{i}^{m}+T_{i}^{o} \leq T_{i}^{\max }, \forall i \in \mathcal{N}^{\prime} \end{aligned} m,p,fmax s.t. Fminer =iNFiminer C1:mi{0,1},iNC2:pminpipmax,iNC3:fminfifmax,iNC4:iNfiftotal C5:FMSP0C6:Tit+Tim+TioTimax,iN
其中:
C1表示每个矿工可以决定是否参与挖矿;
C2 指定分配给每个参与矿机的最小和最大传输功率;
C3 表示分配给每个参与矿工的最小和最大计算资源;
C4表示分配给参与矿机的总计算资源不能超过MEC服务器的总容量;
C5保证MSP的利润不小于0;
C6 规定卸载、挖掘和传播步骤的总时间不能超过最长时间约束。
在所研究的区块链网络中,我们假设 IoTD 是同质的,并且每个 IoTD 都具有相同的传输功率范围和相同的计算资源范围。
上式中:
F i m i n e r = ( w + α D i ) P i m ( 1 − P i o ) − c 1 E i t − c 2 f i , ∀ i ∈ N ′ R i = B log ⁡ 2 ( 1 + p i H i σ 2 + ∑ j ∈ N ′ \ i m j p j H j ) , ∀ i ∈ N ′ T i t = D i R i , ∀ i ∈ N ′ T i m = D i X i f i , ∀ i ∈ N ′ E i m = k 1 f i 3 T i m , ∀ i ∈ N ′ P i m = k 2 T i m , ∀ i ∈ N ′ F M S P = ∑ i ∈ N ′ ( c 2 f i − c 3 E i m ) − c 3 E 0 P i o = 1 − e − λ ( T i o + T i s ) = 1 − e − λ ( z D i + T i t ) , ∀ i ∈ N ′ F_i^{miner}=(w+\alpha D_i)P_i^m(1-P_i^o)-c_1E_i^t-c_2f_i,\forall i\in\mathcal{N'}\\R_{i}=B \log _{2}\left(1+\frac{p_{i} H_{i}}{\sigma^{2}+\sum_{j \in \mathcal{N}^{\prime} \backslash i} m_{j} p_{j} H_{j}}\right), \forall i \in \mathcal{N}^{\prime}\\T_{i}^{t}=\frac{D_{i}}{R_{i}},\forall i\in\mathcal{N}^{\prime}\\T_{i}^{m}=\frac{D_{i}X_{i}}{f_{i}},\forall i\in\mathcal{N}'\\E_i^m=k_1f_i^3T_i^m,\forall i\in\mathcal{N}'\\P_i^m=\frac{k_2}{T_i^m},\forall i\in\mathcal{N}^{\prime}\\F^{MSP}=\sum_{i\in\mathcal{N}^{\prime}}\left(c_2f_i-c_3E_i^m\right)-c_3E_0\\\begin{aligned} P_{i}^{o}& =1-e^{-\lambda(T_{i}^{o}+T_{i}^{s})} \\ &=1-e^{-\lambda(zD_{i}+T_{i}^{t})},\forall i\in\mathcal{N}^{\prime} \end{aligned} Fiminer=(w+αDi)Pim(1Pio)c1Eitc2fi,iNRi=Blog2(1+σ2+jN\imjpjHjpiHi),iNTit=RiDi,iNTim=fiDiXi,iNEim=k1fi3Tim,iNPim=Timk2,iNFMSP=iN(c2fic3Eim)c3E0Pio=1eλ(Tio+Tis)=1eλ(zDi+Tit),iN

二、遗传算法求解上述问题

遗传算法是一种模拟自然进化过程的优化算法,它通过模拟生物进化的过程来搜索最优解。遗传算法的基本原理是通过对候选解进行编码,然后使用选择、交叉和变异等操作来生成新的解,并通过适应度评价来确定解的质量。下面是遗传算法的基本描述:

  1. 编码:将问题的解表示为染色体,染色体由基因组成。基因可以是二进制、整数、浮点数等形式,根据问题的特点选择适当的编码方式。

  2. 初始化种群:随机生成一组初始解,称为种群。种群中的每个个体都是一个可能的解。

  3. 适应度评价:根据问题的目标函数,对种群中的每个个体进行适应度评价,评估个体的适应度值。

  4. 选择操作:根据个体的适应度值,选择一部分个体作为父代,用于产生下一代个体。常用的选择方法有轮盘赌选择、锦标赛选择等。

  5. 交叉操作:从父代个体中选择两个个体,通过交叉操作生成新的个体。交叉操作可以是单点交叉、多点交叉、均匀交叉等。

  6. 变异操作:对新生成的个体进行变异操作,以增加种群的多样性。变异操作可以是位变异、插入变异、交换变异等。

  7. 更新种群:将新生成的个体加入到种群中,替换掉原有的个体。

  8. 终止条件:根据问题的要求,设置终止条件,例如达到最大迭代次数、找到满足要求的解等。

通过不断迭代上述步骤,遗传算法能够逐渐优化种群,找到问题的最优解或近似最优解。

2.1部分MATLAB代码

close all
clear 
clc
dbstop if all error
t=1;
for NP=100:50:400
para = parametersetting(NP);
para.MaxFEs =10000;%最大迭代次数
Result(t)=Compute(NP,para);
t=t+1;
end
QQ=100:50:400;
LenG={};
StrCor={'r-','g--','b-.','c-','m--','k-.','y-'};
figure
for i=1:t-1
    plot(Result(i).FitCurve,StrCor{i},'linewidth',3)
    hold on
    LenG{i}=['N=' num2str(QQ(i))];
    Data(i)=Result(i).FitCurve(end);
end
legend(LenG)
xlabel('FEs')
ylabel('Token')

figure
bar(Data)
hold on
plot(Data,'r-o','linewidth',3)
set(gca,'xtick',1:1:t-1);
set(gca,'XTickLabel',LenG)
ylabel('Token')












2.2部分结果

当矿工数量为 100 150 200 250 300 350 400时:所有矿工的利润随迭代次数的变化如下图所示

在这里插入图片描述

在这里插入图片描述

当矿工数量为100 时,差分进化算法得到的最优策略

1.98830309910329	0.0368744752605259
1.99789989805757	0.196030173248667
1.99556620546526	0.118054965148164
1.99848165728379	0.0465059356635910
1.99770228908093	0.133783839334423
1.99849225798018	0.0270667948088655
1.99854350706185	0.102400312526601
1.92567160465965	0.0663462612348080
1.98675469901800	0.301527372176780
1.99822084610072	0.254915947065578
1.99868238783581	0.203487079559107
1.99267775418748	0.0643311267134825
1.99885434076187	0.280207320985087
1.99590363364205	0.232709695225270
1.99874870993430	0.833491777560683
1.98894574265138	0.0774576740668982
1.99755839969063	0.0368744752605259
1.99935799364301	0.0874375415427740
1.99936767223698	0.157930690392893
1.99956357445451	0.0417828734987172
1.99301550442425	0.433746315052426
1.99534629090217	0.232539223270195
1.99644582286506	0.0544439603364655
1.99413523150339	0.335977761439005
1.99969510073345	0.0201835278734370
1.99656020403975	0.320308211995574
1.99413523150339	0.134361434538323
1.99934367655544	0.0201249110784999
1.99874870993430	0.270716146348502
1.99534629090217	0.102400312526601
1.97368896602713	0.371655055535514
1.99578188316381	0.0774940732798153
1.99969510073345	0.0468435295717144
1.99757976798587	0.0795357376799481
1.99874870993430	0.0270667948088655
1.99908254835188	0.0201249110784999
1.99901789285075	0.109377814355817
1.99822084610072	0.121755301131560
1.99714641902603	0.0503388571811252
1.99874870993430	0.588125414869038
1.99578970976323	0.0624028286868884
1.99453375151492	0.0502311649006714
1.99368403747621	0.144959248996597
1.99530505249736	0.142976390514748
1.99936767223698	0.688408236814422
1.99968759180720	0.682331893787363
1.99629997476397	0.257708833202925
1.95666226555343	0.0517226581461815
1.99885434076187	0.280343787849047
1.98696957422240	0.0795357376799481
1.99871160479981	0.0560083413675843
1.99413523150339	0.196030173248667
1.99936767223698	0.302287721251326
1.99821203517964	0.210471561895837
1.99673352778040	0.0270667948088655
1.99770228908093	0.534361278905725
1.99667496022971	0.0201835278734370
1.99994322640323	0.0214449423378752
1.99874870993430	0.571333070982819
1.99932180476190	0.474161729301239
1.99960149345994	0.558602790353225
1.98151005378595	0.106575961496704
1.99908987765549	0.0452462031097515
1.99934367655544	0.370835620674462
1.99964879692112	0.0795357376799481
1.99743954565661	0.0795357376799481
1.99646741013112	0.241095903277170
1.99714641902603	0.0617329473058759
1.99792458594989	0.370835620674462
1.99534629090217	0.265822895382043
1.99885434076187	0.0802479700917529
1.98709068293192	0.305054485652411
1.99667496022971	0.246917356548499
1.99936767223698	0.600930869273378
1.99868238783581	0.0874375415427740
1.99868238783581	0.435679032923550
1.99667496022971	0.0368744752605259
1.99874870993430	0.0634907391022695
1.99667496022971	0.458584335766774
1.99580757777432	0.114188412539821
1.99899193971503	0.0384694039832775
1.99822084610072	0.0675960127715352
1.99274414486599	0.232539223270195
1.99834287058174	0.0795357376799481
1.98993038279350	0.134361434538323
1.99268983346204	0.0617329473058759
1.99936089509187	0.134361434538323
1.99578632367924	0.296828570877277
1.99936767223698	0.383894175029782
1.99765898223133	0.127430521430784
1.99580757777432	0.242346762848598
1.99284871542524	0.0617329473058759
1.99628449628698	0.0368744752605259
1.99714641902603	0.0554002880030898
1.99906797861904	0.143256566118214
1.99792458594989	0.0366444533929836
1.99587283202319	0.460502940865315
1.99946842653564	0.0663462612348080
1.99196576356948	0.0163638412976285
1.93636065228286	0.0112915301178178

三、完整MATLAB代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/355566.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SV-7042C 标准TCP协议网络有源音柱

SV-7042C 标准TCP协议网络有源音柱 一、描述 SV-7042C是深圳锐科达电子有限公司的一款壁挂式网络有源音柱,具有10/100M以太网接口,可将网络音源通过自带的功放和喇叭输出播放,其采用防水设计,功率可以从20W到40W。SV-7042C作为网…

小土堆pytorch学习笔记003 | 下载数据集dataset 及报错处理

目录 1、下载数据集 2、展示数据集里面的内容 3、DataLoader 的使用 例子: 结果展示: 1、下载数据集 # 数据集import torchvisiontrain_set torchvision.datasets.CIFAR10(root"./test10_dataset", trainTrue, downloadTrue) test_set …

深入了解Redis:选择适用于你的场景的持久化方案

自然语言处理的发展 文章目录 自然语言处理的发展强烈推荐前言:Redis提供了几种主要的持久化方案:RDB快照持久化:工作原理: AOF日志文件持久化:混合持久化: 总结强烈推荐专栏集锦写在最后 强烈推荐 前些天…

第五篇:express路由路径方式(字符串,字符串模式,和正则)

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 引言: &#x1f4…

JVM篇----第十篇

系列文章目录 文章目录 系列文章目录前言一、JAVA 强引用二、JAVA软引用三、JAVA弱引用四、JAVA虚引用五、分代收集算法前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧…

CVPR——Latex模版下载

CVPR官网 -> AuthorGuidelines 链接:AuthorGuidelines

备战蓝桥杯---数据结构与STL应用(基础3)

今天我们主要介绍的是pair,string,set,map pair:我们可以把它当作一个结构体&#xff1a; void solve(){pair<int int> a;//创建amake_pair(1,2);//添加元素cout<<a.first<<endl<<a.second<<endl;}//输出 当然&#xff0c;它也可以嵌套&#…

Qt/C++音视频开发64-共享解码线程/重复利用解码/极低CPU占用/画面同步/进度同步

一、前言 共享解码线程主要是为了降低CPU占用&#xff0c;重复利用解码&#xff0c;毕竟在一个监控系统中&#xff0c;很可能打开了同一个地址&#xff0c;需要在多个不同的窗口中播放&#xff0c;形成多屏渲染的效果&#xff0c;做到真正的完全的画面同步&#xff0c;在主解码…

60、Flink CDC 入门介绍及Streaming ELT示例(同步Mysql数据库数据到Elasticsearch)-完整版

Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点&#xff0c;并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分&#xff0c;比如术语、架构、编程模型、编程指南、基本的…

Java项目:基于SSM框架实现的企业员工岗前培训管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm821基于ssm框架实现的企业员工岗前培训管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格…

智能巡检系统:企业管理创新的一个新方向

智能巡检系统是一个重要的工具&#xff0c;它可以帮助企业实现更高效、更准确和更安全的管理。在谈论智能巡检时&#xff0c;我们主要关注的是以下几个方面的创新和改进。 数据处理能力&#xff1a;智能巡检系统通过云端处理技术&#xff0c;可以实现大规模数据的快速处理和分析…

接口参数校验之路径变量:@PathVariable(二):多个路径变量校验

一、引言 在上一篇文章《接口参数校验之路径变量&#xff1a;PathVariable》中&#xff0c;我们深入探讨了Spring MVC框架中的一个重要特性——路径变量的使用和校验。文章详细阐述了如何通过PathVariable注解从请求URL中提取路径变量&#xff0c;并对单个路径变量进行合法性校…

贝锐蒲公英全新网页认证,保障企业访客无线网络安全

随着企业规模的不断扩大、人员的增长、无线终端数量/类型的增加&#xff0c;传统WiFi无线网络会暴露出越来越多的问题&#xff0c;导致无线网络管理困难。 比如&#xff1a;采用弱密码、安全防护不到位的默认设置、员工缺乏信息安全意识、未经授人员权访问无线网络…… 这些问…

Kafka(九)跨集群数据镜像

目录 1 跨集群镜像的应用场景1.1 区域集群和中心集群1.2 高可用(HA)和灾备(DR)1.3 监管与合规1.4 云迁移1.5 聚合边缘集群的数据 2 多集群架构2.1 星型架构2.2 双活架构2.2 主备架构2.2.1 如何实现Kafka集群的故障转移2.2.1.1 故障转移包括的内容1. 灾难恢复计划2. 非计划内的故…

使用SQL来操作DataFrame?我们给pandas找了个新搭子

对有一定SQL基础的人来说&#xff0c;pandas中的查询会有点繁琐。 在这篇文章&#xff0c;我们将给Pandas找个搭子&#xff0c;在用SQL方便的地方&#xff0c;我们用SQL&#xff1b;在用原生查询方便的地方&#xff0c;我们就用原生查询。 这个搭子会是谁呢&#xff1f; data…

李国武老师解读SPC:提升生产效率与品质的秘诀

近年来&#xff0c;企业对于生产效率和品质的要求越来越高。而SPC&#xff08;统计过程控制&#xff09;作为一种重要的质量管理工具&#xff0c;受到了广泛的关注和应用。在这篇文章中&#xff0c;我们将跟随天行健咨询的李国武老师&#xff0c;深入探讨SPC的核心理念、应用方…

适用智能锁等触摸电子产品-单键/多键触摸触控芯片

智能化产品已成为我们日常生活中不可或缺的一部分&#xff1b;其中&#xff0c;智能锁等触摸电子产品在家居安全领域中扮演着重要的角色&#xff1b;而这些产品的核心技术之一就是单键/多键触摸触控芯片。 单键/多键触摸触控芯片是一种集成了触摸控制功能的芯片&#xff0c;通…

数字化转型是个趋势,对企业来说,数字化转型需要重点关注哪几个方面?

数字化转型确实是企业的一个重要趋势&#xff0c;其成功需要涵盖业务各个方面的全面方法。企业在数字化转型过程中应重点关注以下几个方面&#xff1a; 1.战略愿景和领导力&#xff1a; 制定与总体业务目标相一致的清晰数字战略。确保领导层对数字化转型之旅的承诺和支持。 …

DAY10_SpringBoot—SpringMVC重定向和转发RestFul风格JSON格式SSM框架整合Ajax-JQuery

目录 1 SpringMVC1.1 重定向和转发1.1.1 转发1.1.2 重定向1.1.3 转发练习1.1.4 重定向练习1.1.5 重定向/转发特点1.1.6 重定向/转发意义 1.2 RestFul风格1.2.1 RestFul入门案例1.2.2 简化业务调用 1.3 JSON1.3.1 JSON介绍1.3.2 JSON格式1.3.2.1 Object格式1.3.2.2 Array格式1.3…

第4章 python深度学习——(波斯美女)

第4章 机器学习基础 本章包括以下内容&#xff1a; 除分类和回归之外的机器学习形式 评估机器学习模型的规范流程 为深度学习准备数据 特征工程 解决过拟合 处理机器学习问题的通用工作流程 学完第 3 章的三个实例&#xff0c;你应该已经知道如何用神经网络解决分类问题和回归…