日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

无人机边缘计算中的计算卸载——Stackelberg博弈方法论文复现附matlab代码

發布時間:2023/12/16 循环神经网络 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 无人机边缘计算中的计算卸载——Stackelberg博弈方法论文复现附matlab代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?作者簡介:熱愛科研的Matlab仿真開發者,修心和技術同步精進,matlab項目合作可私信。

🍎個人主頁:Matlab科研工作室

🍊個人信條:格物致知。

更多Matlab仿真內容點擊👇

智能優化算法 ?神經網絡預測 雷達通信? 無線傳感器

信號處理 圖像處理 路徑規劃 元胞自動機 無人機? 電力系統

? 內容介紹

基于物聯網的服務受益于云,云提供了幾乎無限的功能,如存儲、處理和通信。然而,移動用戶在滿足服務質量(QoS)規定的情況下從云接收計算仍然面臨挑戰。在本文中,我們研究了使用邊緣計算的計算卸載,這是一種將計算傳遞到移動用戶附近的普及網絡邊緣的新范式。然而,如果沒有強有力的激勵措施,本地邊緣服務器可能不愿意幫助卸載計算。為了激勵云服務運營商和本地邊緣服務器所有者參與計算卸載,我們將云服務運營方和邊緣服務器所有者之間的交互表述為Stackelberg游戲,以通過獲得最佳支付和計算卸載策略,最大化云服務運營和邊緣服務器擁有者的效用。通過理論分析,我們證明了博弈保證達到唯一的納什均衡。然后,我們設計了兩種計算卸載算法,可以在低延遲和降低復雜性方面量化它們的效率。此外,我們通過考慮邊緣服務器所有者動態加入或離開計算卸載來擴展我們的工作。數值結果表明,我們提出的算法在計算卸載方面表現良好,并有效地激勵邊緣服務器所有者為計算卸載做出貢獻。

? 部分代碼

function [bs_income,uav_income,user_outcome] = stackelberg_price_determined(bs,uav,user,epoch)

global user_num uav_num bs_num D ...

? ? ? ?relay_ok selected_uav_relay ...%need_bs need_uav

? ? ? ?offload_bs offload_uav offload_relay selected_uav selected_bs

% global M_i M_j F_i m_i f_i

M_i = ones(bs_num,user_num);? ? % price to the user i @bs

M_j = ones(bs_num,uav_num);? ? ?% price to hire the uav j @bs

F_i = zeros(bs_num,user_num);? ?% the resource allocate to the user i @bs

m_i = ones(uav_num,user_num);? ?% price to the user i @uav

f_i = zeros(uav_num,user_num);? % reource allocate to the user i @uav

[bs_income,uav_income,user_outcome] = deal(zeros(epoch,bs_num),zeros(epoch,uav_num),zeros(epoch,user_num));

[local,offload_bs,offload_uav,offload_relay]=deal(0.25*ones(user_num,1),0.25*ones(user_num,1),0.25*ones(user_num,1),0.25*ones(user_num,1)); % 卸載比例初始化

[at_local,to_bs,to_uav,by_relay] = deal(zeros(user_num,1),zeros(user_num,1),zeros(user_num,1),zeros(user_num,1));

relay_ok = zeros(bs_num,uav_num); % whether the uav choose to be relay for base station g?

[selected_uav,selected_bs,selected_uav_relay] = deal(zeros(user_num,1),zeros(user_num,1),zeros(user_num,1));

[dis_user_uav,dis_uav_bs,dis_user_bs] = get_distance(uav,user,bs);

[Rate_i_g,Rate_i_j,Rate_j_g_i] = deal(ones(user_num,bs_num),ones(user_num,uav_num),ones(uav_num,bs_num));

[record_1,record_2,record_3,record_4] = deal(zeros(user_num,epoch),zeros(user_num,epoch),zeros(user_num,epoch),zeros(user_num,epoch));

%% The Data trans speed subject to the distance between the objects

for b = 1:bs_num

? ?for i = 1:user_num

? ? ? ?Rate_i_g(i,b) = 1000 / dis_user_bs(i,b);

? ?end

? ?for j = 1:uav_num

? ? ? ?Rate_j_g_i(j,b) = 1000 / dis_uav_bs(j,b);

? ?end

end

for i = 1:user_num

? ? for j = 1:uav_num

? ? ? ? Rate_i_j(i,j) = 1000 / dis_user_uav(i,j);

? ? end

end

%% The User associate to the bs & uav nearby

for u = 1:user_num

? ? [~,selected_bs(u)] = min(dis_user_bs(u,:));

? ? [~,selected_uav(u)] = min(dis_user_uav(u,:));

? ? selected_uav_relay(u) = selected_uav(u);

%? ? ?need_bs(selected_bs(u)) = 1;need_uav(selected_uav(u)) = 1;

end

%% Game Iteration

for episode = 1:epoch

? ? now = episode;

? ? %% Game of Leader layer: Base station

? ? for b = 1:bs_num

? ? ? ? % alter the price for user i: M_i && the suitable resource: F_i

? ? ? ? for i = 1:user_num

? ? ? ? ? ? F_i(b,i) = (offload_bs(i)+offload_relay(i)) * D(i);

? ? ? ? ? ? M_i(b,i) = 250;%D(i) / Rate_i_g(i,b);

? ? ? ? end

? ? ? ? % alter the price for uav j : M_j

? ? ? ? for j = 1:uav_num

? ? ? ? ? ? M_j(b,j) = 50 / Rate_j_g_i(j,b);

? ? ? ? end

? ? ? ? % compute the profit of the base station b

? ? ? ? bs_income(episode,b) = utility_base_station(M_i(b,:),M_j(b,:),F_i(b,:),b);

? ? end

? ? %% Game of Vice-leader Layer : UAVs? ?

? ? for u = 1:uav_num

? ? ? ? % alter the price for user i: m_i

? ? ? ? for i = 1:user_num

? ? ? ? ? ? f_i(u,i) = offload_uav(i) * D(i);

? ? ? ? ? ? m_i(u,i) = 70;% D(i) / Rate_i_j(i,u);

? ? ? ? end

? ? ? ? % compute the profit of the uav j

? ? ? ? uav_income(episode,u) = utility_uav(m_i(u,:),f_i(u,:),Rate_j_g_i(u,:),M_j(:,u),u);

? ? end

? ? %% Game of follower layer: Users

? ? for i = 1:user_num

? ? ? ? [at_local(i),to_bs(i),to_uav(i),by_relay(i)] = ...

? ? ? ? utility_user(M_i(:,i),m_i(:,i),F_i(:,i),f_i(:,i),Rate_i_g,Rate_i_j,Rate_j_g_i,i);

? ? ? ? % allocate the compute task

? ? ? ? [local(i),offload_bs(i),offload_uav(i),offload_relay(i)] ...

? ? ? ? ? ? = offload_allocate(at_local(i),to_bs(i),to_uav(i),by_relay(i),D,i);

? ? ? ? [record_1(i,now),record_2(i,now),record_3(i,now),record_4(i,now)]=...

? ? ? ? ? ? deal(local(i),offload_bs(i),offload_uav(i),offload_relay(i));

? ? ? ? if offload_relay(i) ~= 0

? ? ? ? ? ? relay_ok(selected_bs(i),selected_uav_relay(i)) = 1;

? ? ? ? else

? ? ? ? ? ? relay_ok(selected_bs(i),selected_uav_relay(i)) = 0;

? ? ? ? end

? ? ? ? user_outcome(episode,i) = ...

? ? ? ? local(i) * at_local(i) + offload_bs(i) * to_bs(i) + offload_uav(i) * to_uav(i) + offload_relay(i) * by_relay(i);

? ? end

save stackelberg_RL

end

end

? 運行結果

? 參考文獻

?[1] Yang L ,? Xu C ,? Zhan Y , et al. Incentive mechanism for computation offloading using edge computing: A Stackelberg game approach[J]. Computer Networks, 2017, 129(DEC.24):399-409.

? Matlab代碼關注

??部分理論引用網絡文獻,若有侵權聯系博主刪除

?? 關注我領取海量matlab電子書和數學建模資料

總結

以上是生活随笔為你收集整理的无人机边缘计算中的计算卸载——Stackelberg博弈方法论文复现附matlab代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。