基于差分进化算法的移动边缘计算 (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.96811552438660	0.953006101348509
1.96466685390698	0.271902260303373
1.98787052377883	0.474153524868700
1.96819942207163	0.346379035947841
1.99091543574949	0.200876712644815
1.75343624634699	0.334356132462864
1.98500749778468	0.307444848291752
1.84892091516342	0.298750104087243
1.97627537784477	0.136707719799701
1.98247708944478	0.825715938835666
1.82415247169822	0.592341764056851
1.95255969969755	0.266870044692269
1.55784064472313	0.198677986588129
1.99905703081220	0.864360471110543
1.99966672978573	0.208510255774389
1.99688659497769	0.0918824246788308
1.98550616407992	0.338463477789463
1.93993936287256	0.125644327388094
1.99699497232442	0.647475988987162
1.96398401982365	0.465688977142535
1.99091543574949	0.743184799966985
1.96990281764298	0.714108040841893
1.97038900311126	0.589313007134188
1.99476384052921	0.165976864334375
1.88837922907041	0.407249404947350
1.90123564522443	0.0259150669487571
1.96990281764298	0.865499536534992
1.98251610689349	0.423166248324710
1.79062121977309	0.134536527173266
1.86555117077209	0.433716644319901
1.99699497232442	0.527866317534775
1.99476384052921	0.688760982663683
1.97674256927618	0.287210638597892
1.76141326412447	0.433716644319901
1.98550616407992	0.494479004505169
1.93568365938428	0.210270205638780
1.76141326412447	0.134536527173266
1.99318790325672	0.463178386123276
1.95682912764954	0.873704345638409
1.96819942207163	0.684964734475016
1.98247708944478	0.461790633870382
1.97627537784477	0.787640320359472
1.96819942207163	0.465688977142535
1.81951497310007	0.709782769737031
1.91717991800798	0.307444848291752
1.64596073389228	0.239159634095697
1.99826774684560	0.402723342616452
1.97330988977545	0.420841090504728
1.99688659497769	0.367195541000771
1.97889615328010	0.843193159989458
1.99699497232442	0.523768689297030
1.92148215776128	0.663367007870150
1.97511494395285	0.770648130067366
1.96819942207163	0.327375030890668
1.90398161302827	0.839744341831028
1.89043943861968	0.289783983459719
1.99699497232442	0.533319780807194
1.95116437441300	0.700957227852864
1.99121369063535	0.754607214742589
1.87983995904930	0.609769452627303
1.84892091516342	0.539298593105581
1.99977128699058	0.788773855758191
1.98739282034646	0.469029773060142
1.99977128699058	0.738806842279465
1.99318790325672	0.861732699602560
1.89528705623385	0.751248427333978
1.99318790325672	0.606673004912089
1.88837922907041	0.0950878414681128
1.95986020059497	0.420841090504728
1.99620036364745	0.367759263664120
1.84149233878646	0.0312600209994546
1.97052417907742	0.614595104101977
1.95930654638147	0.252309411754703
1.99767004536831	0.471008106969735
1.99476384052921	0.121831563328420
1.91023269675185	0.891251163847819
1.99826774684560	0.697077892570419
1.94737447735811	0.223823307777294
1.96466685390698	0.530942973106581
1.98251610689349	0.709782769737031
1.80244505169201	0.903799290199773
1.97330988977545	0.511557550448898
1.99897629369323	0.401063559063827
1.99476384052921	0.669326947551257
1.99476384052921	0.209953433257302
1.99476384052921	0.473000128326441
1.96819942207163	0.884127095870242
1.99699497232442	0.974541259533987
1.99584133362082	0.525442981913958
1.96575023838394	0.0623933694916289
1.93792710962256	0.855551087118804
1.99740286694205	0.735027403529296
1.98550616407992	0.314664453608669
1.99620036364745	0.506153103638960
1.96811552438660	0.0309570286681788
1.97798566131583	0.189970375715465
1.98526170939456	0.118404965890552
1.99740286694205	0.879091954485326
1.99476384052921	0.983286613303637
1.65047014229422	0.0102537270833978

三、完整MATLAB代码

你可能感兴趣的:(MATLAB,优化算法,算法,边缘计算,matlab,人工智能)