智能優化算法應用:基于人工蜂群算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用:基于人工蜂群算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

文章目錄

  • 智能優化算法應用:基于人工蜂群算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼
    • 1.無線傳感網絡節點模型
    • 2.覆蓋數學模型及分析
    • 3.人工蜂群算法
    • 4.實驗參數設定
    • 5.算法結果
    • 6.參考文獻
    • 7.MATLAB代碼

摘要:本文主要介紹如何用人工蜂群算法進行3D無線傳感器網(WSN)覆蓋優化。

1.無線傳感網絡節點模型

本文主要基于0/1模型,進行尋優。在二維平面上傳感器節點的感知范圍是一個以節點為圓心,半徑為 R n R_n Rn?的圓形區域,該圓形區域通常被稱為該節點的“感知圓盤”, R n R_n Rn?稱為傳感器節點的感知半徑,感知半徑與節點內置傳感器件的物理特性有關,假設節點 n n n的位置坐標為 ( x n , y n , z n ) (x_n,y_n,z_n) (xn?,yn?,zn?)在0-1感知模型中,對于平面上任意一點 p ( x p , y p , z p ) p(x_p,y_p,z_p) p(xp?,yp?,zp?),則節點 n n n監測到區域內點 p p p的事件發生概率為:
P r ( n , p ) = { 1 , d ( n , p ) ≤ R n 0 , e s l e (1) P_r(n,p)=\begin{cases}1, \,d(n,p)\leq R_n\\ 0,\, esle \end{cases}\tag{1} Pr?(n,p)={1,d(n,p)Rn?0,esle?(1)
其中 d ( n , p ) = ( x n ? x p ) 2 + ( y n ? y p ) 2 + ( z n ? z p ) 2 d(n,p)=\sqrt{(x_n-x_p)^2+(y_n-y_p)^2 + (z_n-z_p)^2} d(n,p)=(xn??xp?)2+(yn??yp?)2+(zn??zp?)2 ?為點和之間的歐式距離。

2.覆蓋數學模型及分析

現假定目標監測區域為二維平面,在區域 A r e a Area Area上投放同型結構傳感器節點的數目為N,每個節點的位置坐標值假設已被初始化賦值,且節點的感知半徑r。傳感器節點集則表示為:
N o d e { x 1 , . . . , x N } (2) Node\{x_1,...,x_N\} \tag{2} Node{x1?,...,xN?}(2)
其中 n o d e i = { x i , y i , z i , r } node_i=\{x_i,y_i,z_i,r\} nodei?={xi?,yi?,zi?,r},表示以節點 ( x i , y i , z i ) (x_i,y_i,z_i) (xi?,yi?,zi?)為圓心,r為監測半徑的球,假定監測區域 A r e a Area Area被數字化離散為 m ? n ? l m*n*l m?n?l個空間點,空間點的坐標為 ( x , y , z ) (x,y,z) (x,y,z),目標點與傳感器節點間的距離為:
d ( n o d e i , p ) = ( x i ? x ) 2 + ( y i ? y ) 2 + ( z i ? z ) 2 (3) d(node_i,p)=\sqrt{(x_i-x)^2+(y_i-y)^2 + (z_i-z)^2}\tag{3} d(nodei?,p)=(xi??x)2+(yi??y)2+(zi??z)2 ?(3)
目標區域內點被傳感器節點所覆蓋的事件定義為 c i c_i ci?。則該事件發生的概率 P c i P{c_i} Pci?即為點 ( x , y , z ) (x,y,z) (x,y,z)被傳感器節點 n o d e i node_i nodei?所覆蓋的概率:
P c o v ( x , y , z , n o d e i ) = { 1 , i f d ( n o d e i , p ) ≤ r 0 , e s l e (4) P_{cov}(x,y,z,node_i)=\begin{cases}1, if\,d(node_i,p)\leq r\\ 0,\, esle \end{cases}\tag{4} Pcov?(x,y,z,nodei?)={1,ifd(nodei?,p)r0,esle?(4)
我們將所有的傳感器節點在目標監測環境中的區域覆蓋率 C o v e r R a t i o CoverRatio CoverRatio定義為傳感器節點集的覆蓋面積與監測區域的面積之比,如公式所示:
C o v e r R a t i o = ∑ P c o v m ? n ? l (5) CoverRatio = \frac{\sum P_{cov}}{m*n*l}\tag{5} CoverRatio=m?n?lPcov??(5)
那我們的最終目標就是找到一組節點使得覆蓋率最大。

3.人工蜂群算法

人工蜂群算法原理請參考:https://blog.csdn.net/u011835903/article/details/108292748
人工蜂群算法是尋找最小值。于是適應度函數定義為未覆蓋率最小,即覆蓋率最大。如下:
f u n = a r g m i n ( 1 ? C o v e r R a t i o ) = a r g m i n ( 1 ? ∑ P c o v m ? n ? l ) (6) fun = argmin(1 - CoverRatio) = argmin(1-\frac{\sum P_{cov}}{m*n*l}) \tag{6} fun=argmin(1?CoverRatio)=argmin(1?m?n?lPcov??)(6)

4.實驗參數設定

無線傳感器覆蓋參數設定如下:

%% 設定WNS覆蓋參數,
%% 默認輸入參數都是整數,如果想定義小數,請自行乘以系數變為整數再做轉換。
%% 比如范圍1*1,R=0.03可以轉換為100*100,R=3;
%區域范圍為AreaX*AreaY*AreaZ
AreaX = 100;
AreaY = 100;
AreaZ = 100;
N = 20 ;%覆蓋節點數
R = 15;%通信半徑

人工蜂群算法參數如下:

%% 設定人工蜂群優化參數
pop=30; % 種群數量
Max_iteration=30; %設定最大迭代次數
lb = ones(1,3*N);
ub = [AreaX.*ones(1,N),AreaY.*ones(1,N),AreaZ.*ones(1,N)];
dim = 3*N;%維度為3N,N個坐標點

5.算法結果

在這里插入圖片描述
在這里插入圖片描述

從結果來看,覆蓋率在優化過程中不斷上升。表明人工蜂群算法對覆蓋優化起到了優化的作用。

6.參考文獻

[1] 史朝亞. 基于PSO算法無線傳感器網絡覆蓋優化的研究[D]. 南京理工大學.

7.MATLAB代碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215242.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215242.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215242.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java智能異常處理

標題:優雅處理異常:Java智能異常處理的最佳實踐 摘要:在軟件開發中,異常處理是一項至關重要的任務。本文將介紹Java中的智能異常處理技術,通過合理的異常處理規范和最佳實踐,幫助開發者優雅地處理異常情況…

從零構建屬于自己的GPT系列5:模型部署1(文本生成函數解讀、模型本地化部署、文本生成文本網頁展示、代碼逐行解讀)

🚩🚩🚩Hugging Face 實戰系列 總目錄 有任何問題歡迎在下面留言 本篇文章的代碼運行界面均在PyCharm中進行 本篇文章配套的代碼資源已經上傳 從零構建屬于自己的GPT系列1:數據預處理 從零構建屬于自己的GPT系列2:模型訓…

2023年國賽高教杯數學建模A題定日鏡場的優化設計解題全過程文檔及程序

2023年國賽高教杯數學建模 A題 定日鏡場的優化設計 原題再現 構建以新能源為主體的新型電力系統,是我國實現“碳達峰”“碳中和”目標的一項重要措施。塔式太陽能光熱發電是一種低碳環保的新型清潔能源技術[1]。 ??定日鏡是塔式太陽能光熱發電站(以下…

ES6-import后是否有{}的區別

在ES6中,import語句用于導入其他模塊中的變量、函數、類等。在使用import語句時,可以選擇是否使用花括號{}來包裹導入的內容,這會影響導入的內容的使用方式。 1.使用花括號{}: 當使用花括號{}時,表示只導入指定的變量…

【Fastadmin】根據Fieldlist鍵值組件做一個等級配置的完整示例

目錄 1.效果展示: ?編輯 2.建表: 3.html頁面 4.controller控制器 5.js 6.model 1.效果展示: 2.建表: 表名:fa_xxfb_config /*Navicat Premium Data TransferSource Server : rootSource Server Type …

深入Docker命令行:探索常用命令和實用技巧

Docker命令行界面是每個容器開發者的得力工具。在這篇文章中,將深入探討一系列常用的Docker命令,以及一些實用技巧,通過更豐富的示例代碼,幫助大家更全面地理解和運用Docker命令行工具。 1. Docker基本命令 1.1 鏡像操作 深入了…

用 CSS 寫一個漸變色邊框的輸入框

Using_CSS_gradients MDN 多漸變色輸入框&#xff0c;群友問了下&#xff0c;就試著寫了下&#xff0c;看了看 css 漸變色 MDN 文檔&#xff0c;其實很簡單&#xff0c;代碼記錄下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta ch…

使用FFMPEG轉碼,轉單聲道,轉標準WAV,轉PCM

本文為使用FFMPEG命令行的方式處理音頻&#xff0c;來獲取想要得到的音頻文件。 零、使用命令行查看編碼封裝信息 格式&#xff1a;ffprobe.exe -show_format inputfile 例子&#xff1a;ffprobe.exe -show_format .\stereo_44_16bit.wav 運行結果為下圖&#xff1a; 如圖可…

C# Channel實現線程間通信

C# Channel實現線程間通信 同步方式實現&#xff1a; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Channels; using System.Threading.T…

【JavaFX】實現計算器小程序

下面是一個簡單的JavaFX計算器示例: import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.…

西南科技大學數字電子技術實驗四(基本觸發器邏輯功能測試及FPGA的實現)預習報告

一、計算/設計過程 說明:本實驗是驗證性實驗,計算預測驗證結果。是設計性實驗一定要從系統指標計算出元件參數過程,越詳細越好。用公式輸入法完成相關公式內容,不得貼手寫圖片。(注意:從抽象公式直接得出結果,不得分,頁數可根據內容調整) (1)D觸發器 特征方程: Q…

往adobe illustrator中添加latex字體

找到如下字體所在路徑 /path/to/miktex/type1\public\amsfonts\cm然后copy相應的字體文件 cmmi10.pfb將相應的pfb文件復制到Adobe illustrator字體文件夾: /path/to/illustrator/Support Files/Required/Fonts然后重啟即可。

ChatGPT/GPT4應用:文本、論文、編程、繪圖等,提高工作效率及科研項目開發能力

2023年隨著OpenAI開發者大會的召開&#xff0c;最重磅更新當屬GPTs&#xff0c;多模態API&#xff0c;未來自定義專屬的GPT。微軟創始人比爾蓋茨稱ChatGPT的出現有著重大歷史意義&#xff0c;不亞于互聯網和個人電腦的問世。360創始人周鴻祎認為未來各行各業如果不能搭上這班車…

排序-選擇排序與堆排序

文章目錄 一、選擇排序二、堆排序三、時間復雜度四、穩定性 一、選擇排序 思想&#xff1a; 將數組第一個元素作為min&#xff0c;然后進行遍歷與其他元素對比&#xff0c;找到比min小的數就進行交換&#xff0c;直到最后一個元素就停止&#xff0c;然后再將第二個元素min&…

【單調棧】【二分查找】LeetCode: 2454.下一個更大元素 IV

作者推薦 【動態規劃】【廣度優先】LeetCode2258:逃離火災 本文涉及的基礎知識點 二分查找算法合集 單調棧 題目 給你一個下標從 0 開始的非負整數數組 nums 。對于 nums 中每一個整數&#xff0c;你必須找到對應元素的 第二大 整數。 如果 nums[j] 滿足以下條件&#xff…

音視頻技術開發周刊 | 323

每周一期&#xff0c;縱覽音視頻技術領域的干貨。 新聞投稿&#xff1a;contributelivevideostack.com。 Meta牽頭組建開源「AI復仇者聯盟」&#xff0c;AMD等盟友800億美元力戰OpenAI英偉達 超過50家科技大廠名校和機構&#xff0c;共同成立了全新的人工智能聯盟。以開源為旗號…

RocketMQ的架構是什么樣的?

RocketMQ&#xff0c;作為一款強大的分布式消息中間件&#xff0c;廣泛應用于各種大規模分布式系統中&#xff0c;為異步消息通信提供了可靠的解決方案。本文將深入探討RocketMQ的核心組件&#xff0c;包括Producer、Broker、Consumer和NameServer&#xff0c;以及它們在整個架…

高中物理電學總結之穩恒電流篇

高中物理電學總結之穩恒電流篇 電流電流的定義對電流的微觀分析 電阻歐姆定律電阻的串并聯電阻定律 電源的電動勢電源電動勢 閉合電路歐姆定律閉合電路閉合電路歐姆定律 電流做功與焦耳定律電流做功電功率焦耳定律電源效率 電表改裝 電流 電流的定義 電解質溶液中的自由電荷是…

ACwing算法備戰藍橋杯——Day30——樹狀數組

定義&#xff1a; 樹狀數組是一種數據結構&#xff0c;能將對一個區間內數據進行修改和求前綴和的這兩種操作的最壞時間復雜度降低到O(logn); 實現所需變量 變量名變量數據類型作用數組a[]int存儲一段區間數組tr[]int表示樹狀數組 主要操作 函數名函數參數組要作用lowbit()int…

Linux-RedHat系統-安裝 中間件 Tuxedo

安裝步聚 一、中間件安裝包&#xff1a; tuxedo121300_64_Linux_01_x86 Tuxedo下載地址&#xff1a; Oracle Tuxedo Downloads 二、新建用戶&#xff1a; &#xff08;創建Oracle用戶時&#xff0c;需要root權限操作&#xff09; 創建用戶&#xff1a; # useradd oracle …