智能優化算法應用:基于蝗蟲算法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/107694862
蝗蟲算法是尋找最小值。于是適應度函數定義為未覆蓋率最小,即覆蓋率最大。如下:
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/210765.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210765.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210765.shtml

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

相關文章

【數據挖掘】國科大蘇桂平老師數據庫新技術課程作業 —— 第二次作業

1 設 F { A B → C , B → D , C D → E , C E → G H , G → A } F\{AB\rightarrow C,B\rightarrow D, CD\rightarrow E, CE\rightarrow GH, G\rightarrow A \} F{AB→C,B→D,CD→E,CE→GH,G→A},用推理的方法證明 F ∣ A B → G F\;|AB\rightarrow G F∣AB→…

持續集成交付CICD:使用Maven命令上傳Nexus制品

目錄 一、實驗 1.使用Maven命令上傳Nexus制品(第一種方式) 2.使用Maven命令上傳Nexus制品(第二種方式) 一、實驗 1.使用Maven命令上傳Nexus制品(第一種方式) (1)指定一個 hoste…

說說React jsx轉換成真實DOM的過程?

在React中,JSX(JavaScript XML)是一種語法糖,用于描述用戶界面的結構和組件關系。當你編寫React組件并包含JS JSX解析:React中的JSX代碼首先會被解析成JavaScript對象。這個過程通常是通過Babel等工具進行的&#xff0…

Flutter視頻播放器在iOS端和Android端都能實現全屏播放

Flutter開發過程中,對于視頻播放的三方組件有很多,在Android端適配都挺好,但是在適配iPhone手機的時候,如果設置了UIInterfaceOrientationLandscapeLeft和UIInterfaceOrientationLandscapeRight都為false的情況下,無法…

pytorch 筆記:dist 和 cdist

1 dist 1.1 基本使用方法 torch.dist(input, other, p2) 計算兩個Tensor之間的p-范數 1.2 主要參數 input輸入張量other另一個輸入張量p范數 input 和 other的形狀需要是可廣播的 1.3 舉例 import torchxtorch.randn(4) x #tensor([ 1.2698, -0.1209, 0.0462, -1.3271…

基于PaddleOCR銀行卡識別實現(四)之uni-app離線插件

目的 在前三篇文章中完成了銀行卡識別整個模型訓練等工作,通過了解PaddleOCR的端側部署,我們也可以將銀行卡號檢測模型和識別模型移植到手機中,做成一款uni-app手機端離線銀行卡號識別的應用。 準備工作 為了不占用過多篇幅,這…

Nginx的性能優化、安全以及防盜鏈配置

目錄 一、nginx的日志分割 二、nginx性能優化之啟用epoll模型 三、nginx性能優化之設置worker進程數并與cpu進行綁核 四、nginx性能優化之調整worker的最大打開文件數和最大處理連接請求數量 五、nginx性能優化之啟用gzip壓縮,提高傳輸,減少帶寬 六…

字節iconpark基于vue使用

1.安裝 npm i icon-park/vue 2.導入 說明:導入并在main.js使用。 import { install } from icon-park/vue/es/all; import icon-park/vue/styles/index.css; Vue.use(install) 3.打開官網 ByteDance IconPark 4.復制 說明:點擊官方圖標庫&#xff0c…

Java-JDBC操作MySQL

Java-JDBC操作MySQL 文章目錄 Java-JDBC操作MySQL一、Java-JDBC-MySQL的關系二、創建連接三、登錄MySQL四、操作數據庫1、返回型操作2、無返回型操作 練習題目及完整代碼 一、Java-JDBC-MySQL的關系 #mermaid-svg-B7qjXrosQaCOwRos {font-family:"trebuchet ms",verd…

國產Type-C PD芯片—接口快充取電芯片

常用USB PDTYPE-C受電端,即設備端協議IC芯片(PD Sink,也叫PD誘騙芯片),誘導取電芯片。 產品介紹 LDR6328: ◇ 采用 SOP-8 封裝 ◇ 兼容 USB PD 3.0 規范,支持 USB PD 2.0 ◇ 兼容 QC 3.0 規范&#x…

TailwindCSS 支持文本文字超長溢出截斷、文字文本省略號

前言 文本文字超長截斷并自動補充省略號,這是前端日常開發工作中常用的樣式設置能力,文字超長截斷主要分為單行超長截斷和多行超長截斷。本文通過介紹基本CSS樣式、tailwindcss 類設置兩種基礎方式來實現文字超長截斷。 TailwindCSS 設置 單行文字超長…

WPF仿網易云搭建筆記(2):組件化開發

文章目錄 前言專欄和Gitee倉庫依賴屬性實戰:縮小,全屏,關閉按鈕依賴屬性操作封裝主窗口傳遞this本身給TitleView標題控件主要代碼MainWindow.xmalMainWindow.cs依賴屬性方法封裝TitleView.csTitleViewModelTitleViewModel實現效果 前言 這次…

基于以太坊的智能合約開發Solidity(函數繼承篇)

參考教程:【實戰篇】1、函數重載_嗶哩嗶哩_bilibili 1、函數重載: pragma solidity ^0.5.17;contract overLoadTest {//不帶參數function test() public{}//帶一個參數function test(address account) public{}//參數類型不同,雖然uint160可…

發送、接收消息,界面不及時刷新

發送、接收消息后 UI 沒展示,不及時刷新,大概率 是 SDK 的 UI 刷新功能被干擾,參考下面排查: 檢查 initWithAppkey 和 connectWithToken 使用的是否是 IMKit 核心類 RCIM 的方法,如果不是,請換成 RCIM 的。…

【刷題】位運算

2 n 2^n 2n 1<<n判斷某一位是否為1 s&1<<k將上面兩個組合&#xff0c;可以得到判斷一個集合中哪些內容包含&#xff0c;遍歷所有情況。 100140. 關閉分部的可行集合數目 一個公司在全國有 n 個分部&#xff0c;它們之間有的有道路連接。一開始&#xff0c;…

CentOS 7 離線安裝達夢數據庫8.0

前期準備工作 確認操作系統的版本和數據庫的版本是否一致 ## 查看系統版本&#xff1a;cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)關閉防火墻和Selinux # 查看selinux是不是disabled / enforce cat /etc/selinux/config## 查看防火墻狀態 firewall-cmd …

數據結構之歸并排序及排序總結

目錄 歸并排序 歸并排序的時間復雜度 排序的穩定性 排序總結 歸并排序 歸并排序大家只需要掌握其遞歸方法即可&#xff0c;非遞歸方法由于在某些特殊場景下邊界難控制&#xff0c;我們一般很少使用非遞歸實現歸并排序。那么歸并排序的遞歸方法我們究竟是怎樣實現呢&#xff…

PHP醫院手術麻醉系統源碼,laravel、vue2 、mysql技術開發,自主知識產權,二開快捷

醫院手術麻醉系統全套源碼&#xff0c;有演示&#xff0c;自主知識產權 技術架構&#xff1a;PHP、 js 、mysql、laravel、vue2 手術麻醉臨床信息管理系統是數字化手段應用于手術過程中的重要組成部分&#xff0c;用數字形式獲取并存儲手術相關信息&#xff0c;既便捷又高效。…

每日一練2023.12.10—— 倒數第N個字符串【PTA】

題目鏈接&#xff1a;L1-050 倒數第N個字符串 題目要求&#xff1a; 給定一個完全由小寫英文字母組成的字符串等差遞增序列&#xff0c;該序列中的每個字符串的長度固定為 L&#xff0c;從 L 個 a 開始&#xff0c;以 1 為步長遞增。例如當 L 為 3 時&#xff0c;序列為 { a…

Qt Creator設置IDE的字體、顏色、主題樣式

Qt是一款開源的、跨平臺的C開發框架&#xff0c;支持Windows、Linux、Mac系統&#xff0c;從1995發布第一版以來&#xff0c;發展迅猛&#xff0c;最開始是用于Nokia手機的Symbian(塞班)系統和應用程序開發&#xff0c;現在是用于嵌入式軟件、桌面軟件(比如WPS、VirtualBox)、A…