差分进化算法求解基于移动边缘计算 (MEC) 的无线区块链网络的联合挖矿决策和资源分配(提供MATLAB代码)

一、优化模型介绍

在所研究的区块链网络中,优化的变量为:挖矿决策(即 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

二、差分进化算法求解

2.1部分代码

close all
clear 
clc
dbstop if all error
NP = 100;%矿工数量
para = parametersetting(NP);
para.MaxFEs =5000;%最大迭代次数
Result=Compute(NP,para);
figure(1)
plot(Result.FitCurve,'r-','linewidth',2)
xlabel('FEs')
ylabel('Token')
figure(2)
plot(Result.ConCurve,'g-','linewidth',2)
xlabel('FEs')
ylabel('Con')

2.2部分结果

当矿工数量为100时:所有矿工的利润随迭代次数的变化如下图所示
在这里插入图片描述算法得到的资源分配:

1.99763301712028	0.222528597636855
1.98480090600989	0.232003797981878
1.99810737020089	0.516878075461127
1.99450954175327	0.121004799048830
1.98894335292950	0.457573161395314
1.98141441375851	0.764801153373885
1.99123792611056	0.0618336115864624
1.99957268156257	0.121004799048830
1.99869990696838	0.0545812896345451
1.99958167059988	0.555322442727203
1.99842776886770	0.0425674932800246
1.99782546212753	0.556999423219330
1.99781790486039	0.196587806899822
1.99507786088204	0.115226131066544
1.99052235611421	0.245674972808444
1.99670598640193	0.0505531222716088
1.99482731112569	0.570493296084591
1.99736278961552	0.483094177861634
1.98894335292950	0.262561711571175
1.98784689496156	0.0324778719744346
1.98851683245790	0.171964220456218
1.98796386190418	0.110054645825889
1.98418972990049	0.0724358226961023
1.99516235341290	0.0341179120870288
1.99873738363101	0.489382783726158
1.99697974388302	0.0173712437086769
1.98964833679332	0.0320026913839283
1.99751719786278	0.147890074497164
1.99751719786278	0.434936315273999
1.99748331769841	0.232003797981878
1.99960825876476	0.483665232586750
1.99763301712028	0.631745087572258
1.99703599779628	0.358292746434059
1.99528222092061	0.514944354258863
1.99655084169003	0.753834027257007
1.99842776886770	0.940560567187612
1.99836116767571	0.221230559879615
1.99981576341436	0.184249732087410
1.99836116767571	0.0324778719744346
1.99654201611710	0.335915952413277
1.99237903891650	0.155001423906853
1.99760611708088	0.375017552592607
1.99978704361437	0.561786832194378
1.98578574172372	0.0236239899979008
1.99866761178096	0.0324778719744346
1.99763301712028	0.472369465588862
1.99721838438050	0.700915679954801
1.99428564716577	0.157199586550231
1.99655135483398	0.105209390328771
1.94788362094720	0.0258755419701254
1.99449453062393	0.132251896484895
1.99700992290778	0.0898397719008559
1.99965518095321	0.596537124037070
1.99278786910748	0.0256042543513514
1.99957848431148	0.894961847587823
1.99175299365895	0.0890674637434230
1.99750797157559	0.607592532504797
1.99748331769841	0.0724358226961023
1.99260527116064	0.631745087572258
1.99928439965780	0.127930497832236
1.99817708666189	0.104282160660561
1.99421206141539	0.803656147079701
1.98359960108601	0.118868109287597
1.99899700099444	0.518357001275729
1.99528222092061	0.0324778719744346
1.99877098644022	0.665529673319171
1.99763301712028	0.334090268607101
1.99860560539076	0.0866379799536027
1.99979684848517	0.377299990245342
1.99855631180132	0.389679849807951
1.99731236573268	0.434936315273999
1.99696360320736	0.570493296084591
1.99993018378939	0.391296247028955
1.99965327995029	0.287460195344814
1.99979684848517	0.450997212108626
1.99751719786278	0.287460195344814
1.99763301712028	0.155001423906853
1.99783983352391	0.103569288167448
1.99654201611710	0.127930497832236
1.98747116264687	0.0330088002325308
1.99655135483398	0.0797018166113099
1.99108222250111	0.0866379799536027
1.99718273730151	0.662248213795699
1.99869990696838	0.191058236556442
1.99652919147221	0.215505887700011
1.99459957647011	0.140056664895674
1.99806054285466	0.120547231379614
1.98593862830166	0.0916486389328984
1.97931641143295	0.462734428071515
1.99855631180132	0.101120011114003
1.99421206141539	0.258443908859530
1.99781790486039	0.543516910843497
1.99720522726900	0.0737173931186571
1.98303440848516	0.152622777636722
1.99900862513681	0.674526132004626
1.99866761178096	0.358292746434059
1.99783983352391	0.491305146804456
1.99960825876476	0.122579254402338
1.96710953562570	0.0513811784835662
1.99842776886770	0.0112006869294710

三、完整MATLAB代码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gin中使用限流中间件

限流又称为流量控制(流控),通常是指限制到达系统的并发请求数,本文列举了常见的限流策略,并以gin框架为例演示了如何为项目添加限流组件。 限流 限流又称为流量控制(流控),通常是指…

如何在美国硅谷高防服务器上运行自定义的脚本和应用程序

在美国硅谷高防服务器上运行自定义的脚本和应用程序需要一定的技术和知识。下面我们将介绍一些关键步骤,帮助您顺利地在这些服务器上运行自定义应用程序和脚本。 确保您有对服务器的访问权限,并且已经通过SSH等方式连接到服务器。接下来,您可…

不就业,纯兴趣,应该自学C#还是JAVA?

不就业,纯兴趣,应该自学C#还是JAVA? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「JAVA的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家&#xff…

微信小程序(十四)分包和分包预加载

注释很详细,直接上代码 新增内容: 1.分包的配置 2.分包预加载的写法 先说说为什么需要分包: 小程序追求小而快,主包的大小控制是小程序上线的硬性要求,分包有利于小程序优化加载速度 分包的注意事项: 单个分…

网络原理-初识(1)

目录 网络发展史 独立模式 网络互连 局域网LAN 广域网WAN 网络通信基础 IP地址 概念 格式 端口 概念 格式 认识协议 概念 作用 五元组 网络发展史 独立模式 独立模式:计算机之间相互独立; 网络互连 随着时代的发展,越来越需要计算机之间相互通信,共享软件和数…

【AI的未来 - AI Agent系列】【MetaGPT】6. 用ActionNode重写技术文档助手

文章目录 0. 前置推荐阅读1. 重写WriteDirectory Action1.1 实现WriteDirectory的ActionNode:DIRECTORY_WRITE1.2 将 DIRECTORY_WRITE 包进 WriteDirectory中 2. 重写WriteContent Action2.1 思考重写方案2.2 实现WriteContent的ActionNode2.3 改写WriteContent Act…

UV紫外激光打标机的优缺点是什么

​ UV紫外激光打标机具有以下优点: 1. 精度高:紫外激光打标机的光束质量好,聚焦光斑小,可以实现在各种材料上进行超精细打标。 2. 速度快:由于紫外激光的独特特性,打标速度非常快,提高了生产效…

冷链温湿度监控解决方案,实时监测,助力运输安全

为了确保药品、生鲜等在冷链运输过程中的安全监管,需要对冷链、仓库等环节的温湿度信息进行实时自动检测和记录,有效防范储运过程中可能影响产品质量安全的各类风险,确保储存和运输过程的产品质量。 冷链温湿度监控系统解决方案,利用智能温湿…

【目标跟踪】多相机环视跟踪

文章目录 一、前言二、流程图三、实现原理3.1、初始化3.2、输入3.3、初始航迹3.4、航迹预测3.5、航迹匹配3.6、输出结果 四、c 代码五、总结 一、前言 多相机目标跟踪主要是为了实现 360 度跟踪。单相机检测存在左右后的盲区视野。在智能驾驶领域,要想靠相机实现无…

springboot120企业级工位管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的企业级工位管理系统 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 …

SpringMVC 注解配置SpringMVC

文章目录 1、创建初始化类,代替web.xml2、创建SpringConfig配置类,代替spring的配置文件3、创建WebConfig配置类,代替SpringMVC的配置文件4、测试功能 使用配置类和注解代替web.xml和SpringMVC配置文件的功能 1、创建初始化类,代替…

Vue3实战:显示后台获取的用户数据

文章目录 一、实战概述二、实战步骤(一)创建数据库与表(二)编写后端程序1、创建Spring Boot项目2、配置数据源3、创建用户实体类4、创建用户仓库接口5、创建用户服务类6、创建用户控制器7、启动应用,查看结果 &#xf…

蓝牙BLE基础知识

目录 一、初识蓝牙BLE 1.课程介绍 2.为什么需要蓝牙技术 3.蓝牙发展历史 4.蓝牙技术优势 5.蓝牙技术简介 6.学习补充 二、物理层(Physical layer) 1.模拟调制 2.数字调制 3.射频信道 4.学习补充 三、链路层(link layer&#xff0…

Jmeter 设置全局请求 重点cook

原因 在使用jmeter 过程中为了方便 ,会设置很多公众信心 比如请求头 请求cook 还会设置多个线程组 在同一个线程组中 我们只需要设置一个请求请求cook 就可以了 但是 有逆骨 就是喜欢多个线程组所以出现问题了 解决方案 设置一个全局变量 步骤 在测试计划中设…

图形用户界面(GUI)开发教程

文章目录 写在前面MATLAB GUI启动方式按钮(Push Button)查看属性tag的命名方式回调函数小小的总结 下拉菜单(Pop-up Menu)单选框(Radio Button)和复选框(Check Box)静态文本&#xf…

12.前端--CSS-背景属性

1.背景颜色 样式名称: background-color 定义元素的背景颜色 使用方式: background-color:颜色值; 其他说明: 元素背景颜色默认值是 transparent(透明)      background-color:transparent; 代码演示: 背景色…

硬件基础:组合逻辑电路

什么是组合逻辑电路 组合逻辑电路是由一些基本的逻辑门电路组成的,没有反馈,输出仅取决于输入。 组合逻辑电路是数字逻辑电路中一种重要的电路类型,它是由多个逻辑门(例如与门、或门、非门等)组成的电路。组合逻辑电路…

APUE学习之信号(Signal)

目录 一、信号 1、基本概念 2、用户处理信号的方式 3、查看信号 4、可靠信号和不可靠信号 5、信号种类 6、终止进程信号的区别 二、进程对信号的处理 1、signal()函数 2、sigaction()函数 3、代码演示 4、运行结果…

k8s---HPA 命名空间资源限制

目录 HPA相关知识 HPA(Horizontal Pod Autoscaling)Pod 水平自动伸缩,Kubernetes 有一个 HPA 的资源,HPA 可以根据 CPU 利用率自动伸缩一个 Replication Controller、 Deployment 或者Replica Set 中的 Pod 数量。 (1…

LTD261次升级 | 小程序支持抖音客服、支持抖音登录 • 短信发送需实名认证 • 表单提交成功收邮件提醒

1、 抖音小程序新增抖音IM客服功能; 2、 抖音小程序支持一键登录、支持快捷授权手机号 3、 表单新增发送邮件到提交者邮箱; 4、 表单支持配置不自动推送客户管理; 5、 短信发送需实名认证签署承诺书; 6、 其他已知问题修复与优化&…