智能優化算法應用:基于蜣螂算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用:基于蜣螂算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼

文章目錄

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

摘要:本文主要介紹如何用蜣螂算法進行無線傳感器網(WSN)覆蓋優化。

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

本文主要基于0/1模型,進行尋優。在二維平面上傳感器節點的感知范圍是一個以節點為圓心,半徑為 R n R_n Rn?的圓形區域,該圓形區域通常被稱為該節點的“感知圓盤”, R n R_n Rn?稱為傳感器節點的感知半徑,感知半徑與節點內置傳感器件的物理特性有關,假設節點 n n n的位置坐標為 ( x n , y n ) (x_n,y_n) (xn?,yn?)在0-1感知模型中,對于平面上任意一點 p ( x p , y p ) p(x_p,y_p) p(xp?,yp?),則節點 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 d(n,p)=\sqrt{(x_n-x_p)^2+(y_n-y_p)^2} d(n,p)=(xn??xp?)2+(yn??yp?)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 , r } node_i=\{x_i,y_i,r\} nodei?={xi?,yi?,r},表示以節點 ( x i , y i ) (x_i,y_i) (xi?,yi?)為圓心,r為監測半徑的圓,假定監測區域 A r e a Area Area被數字化離散為 m ? n m*n m?n個像素點,像素點的坐標為 ( x , y ) (x,y) (x,y),目標像素點與傳感器節點間的距離為:
d ( n o d e i , p ) = ( x i ? x ) 2 + ( y i ? y ) 2 (3) d(node_i,p)=\sqrt{(x_i-x)^2+(y_i-y)^2}\tag{3} d(nodei?,p)=(xi??x)2+(yi??y)2 ?(3)
目標區域內像素點被傳感器節點所覆蓋的事件定義為 c i c_i ci?。則該事件發生的概率 P c i P{c_i} Pci?即為像素點 ( x , y ) (x,y) (x,y)被傳感器節點 n o d e i node_i nodei?所覆蓋的概率:
P c o v ( x , y , 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,node_i)=\begin{cases}1, if\,d(node_i,p)\leq r\\ 0,\, esle \end{cases}\tag{4} Pcov?(x,y,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 (5) CoverRatio = \frac{\sum P_{cov}}{m*n}\tag{5} CoverRatio=m?nPcov??(5)
那我們的最終目標就是找到一組節點使得覆蓋率最大。

3.蜣螂算法

蜣螂算法原理請參考:https://blog.csdn.net/u011835903/article/details/128280084
該算法是尋找最小值。于是適應度函數定義為未覆蓋率最小,即覆蓋率最大。如下:
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 ) (6) fun = argmin(1 - CoverRatio) = argmin(1-\frac{\sum P_{cov}}{m*n}) \tag{6} fun=argmin(1?CoverRatio)=argmin(1?m?nPcov??)(6)

4.實驗參數設定

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

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

蜣螂算法參數如下:

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

5.算法結果

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

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

6.參考文獻

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

7.MATLAB代碼

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

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

相關文章

STM32基礎教程 p16 窗口看門狗(WWDG)

1 窗口看門狗工作原理 1.1 簡介 WWDG簡介 窗口看門狗通常被用來監測,由外部干擾或不可預見的邏輯條件造成的應用程序背離正常的運 行序列而產生的軟件故障。除非遞減計數器的值在T6位變成0前被刷新,看門狗電路在達到預置 的時間周期時,會產…

定位分析RCU stall問題

使用RCU_CPU_STALL_CPUTIME 在編譯內核時打開CONFIG_RCU_CPU_STALL_CPUTIMEy或者在啟動參數中增加 rcupdate.rcu_cpu_stall_cputime1, 這樣在發生RCU STALL告警時就會有下面附加信息: rcu: hardirqs softirqs csw/systemrcu: number: 624 45 …

聯合基于信息論的安全和隱蔽通信的框架

這個標題很帥 abstractintroductionsystem modelPROPOSED JOINT OPTIMIZATION OF ITS AND COVERT TRANSMISSION RATE信息論安全 (ITS)隱蔽通信需要(CC)Joint Information-Theoretic Secrecy and Covert Communication in the Presence of an Untrusted User and Warden 202…

ffmpeg編解碼——時間基(time base)概念

文章目錄 FFmpeg 編解碼——時間基(Time Base)概念1. 時間基(Time Base)概念1.1 定義與作用1.2 表現形式 2. 時間基在FFmpeg中的應用2.1 時間戳2.2 持續時間 3. 理解FFmpeg中的時間基轉換3.1 av_rescale_q 函數3.2 av_rescale_q_r…

Shell數組函數:數組——數組和循環(四)

使用數組統計&#xff0c;用戶shell的類型和數量 一、腳本編輯 [root192 ~]# vim shell.sh #!/bin/bash declare -A shells while read ii dotypeecho $ii | awk -F: {print $7}let shells[$type] done < /etc/passwdfor i in ${!shells[]} doecho "$i: ${shells[$i]…

多任務學習(Multi-Task Learning)和遷移學習(Transfer Learning)的詳細解釋以及區別(系列1)

文章目錄 前言一、多任務學習&#xff08;Multi-Task Learning&#xff09;是什么&#xff1f;二、多任務學習&#xff08;Multi-Task Learning&#xff09;對數據的要求三、遷移學習是什么&#xff1f;四&#xff0c;遷移學習對數據的要求五&#xff0c;多任務學習與遷移學習的…

DevOps - Spug 自動化運維平臺

關于Spug Spug&#xff1a;麻雀&#xff0c;麻雀雖小&#xff0c;五臟俱全。 Spug是面向中小型企業設計的輕量級無Agent的自動化運維平臺&#xff0c;整合了主機管理、主機批量執行、主機在線終端、文件在線上傳下載、應用發布部署、在線任務計劃、配置中心、監控、報警等一系…

利用jdbc對數據庫進行增刪改查

步驟/過程&#xff1a; 1&#xff0c;導入驅動包 2&#xff0c;加載驅動包 3&#xff0c;輸入信息&#xff0c;進行數據庫連接 4&#xff0c;創建 statement對象 5&#xff0c;執行sql語句 6&#xff0c;如果是查詢操作&#xff0c;利用ResultSet處理數據&#xf…

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

智能優化算法應用&#xff1a;基于鯨魚算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于鯨魚算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.鯨魚算法4.實驗參數設定5.算法結果6.參考文獻7.MA…

Python-pdf工具自制(合并、拆分、刪除)

pdf工具&#xff0c;之前寫的合并工具有點麻煩&#xff0c;使用PyQt5庫重寫合并拆分和刪除指定頁面的程序 實現如圖&#xff1a; 代碼&#xff1a; import sysimport osfrom PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QFileDia…

java 好碼

1【強制】不要在 foreach 循環里進行元素的 remove/add 操作。 remove 元素請使用 Iterator方式&#xff0c;如果并發操作&#xff0c;需要對 Iterator 對象加鎖。 正例&#xff1a; List<String> list new ArrayList<>(); list.add("1");list.add(…

unity 2d 入門 飛翔小鳥 Cinemachine 記錄分數(十二)

1、創建文本 右鍵->create->ui->leagcy->text 2、設置字體 3、設置默認值和數字 4、當切換分辨率&#xff0c;分數不見問題 拖拽這里調整 調整到如下圖 5、編寫得分腳本 using System.Collections; using System.Collections.Generic; using UnityEngine; …

Docker網絡架構介紹

本文主要介紹了Docker容器的單機網絡架構與集群網絡架構&#xff0c;輔以演示&#xff0c;并簡單介紹了網絡管理中的命令。 前文&#xff1a; Docker的安裝與簡單操作命令-CSDN博客 docker網絡原理介紹 與ovs類似&#xff0c;docker容器采用veth-pair linux bridge (虛擬交…

mysql語句練習

1、查詢"01"課程比"02"課程成績高的學生的信息及課程分數 SELECT student.*,s1.s_score,s2.s_score FROM student,score s1,score s2 WHERE student.s_ids1.s_id AND student.s_ids2.s_id AND s1.c_id01 AND s2.c_id02 AND s1.s_score>s2.s_score 2、…

0007Java程序設計-ssm基于微信小程序的在線考試系統

文章目錄 **摘要**目 錄系統實現開發環境 編程技術交流、源碼分享、模板分享、網課分享 企鵝&#x1f427;裙&#xff1a;776871563 摘要 網絡技術的快速發展給各行各業帶來了很大的突破&#xff0c;也給各行各業提供了一種新的管理技術&#xff0c;基于微信小程序的在線考試…

Linux下apisix離線安裝教程

Linux下apisix離線安裝教程 一、首先需要安裝etcd&#xff1a;二、通過rpm離線安裝apisix三、啟動apisix四、安裝apisix-dashboard1、安裝2、更改dashboard登錄賬號名和密碼3、運行 一、首先需要安裝etcd&#xff1a; 解壓縮etcd后執行以下命令&#xff1a; tar -xvf etcd-v3.…

C#注冊表技術及操作

目錄 一、注冊表基礎 1.Registry和RegistryKey類 &#xff08;1&#xff09;Registry類 &#xff08;2&#xff09;RegistryKey類 二、在C#中操作注冊表 1.讀取注冊表中的信息 &#xff08;1&#xff09;OpenSubKey()方法 &#xff08;2&#xff09;GetSubKeyNames()…

內外聯動——記建行江門鶴山支行營業部堵截一起新型騙局

建設銀行廣東省江門市分行&#xff08;以下簡稱“江門建行”&#xff09;認真貫徹落實黨中央、國務院決策部署&#xff0c;緊緊圍繞當地市委工作部署和上級行要求&#xff0c;扛牢國有大行責任&#xff0c;堅守金融工作的政治性、人民性&#xff0c;以深化新金融行動助力江門全…

javascript實現List列表數據結構

書籍推薦 有幸拜讀《數據結構與算法Javascript描述》這本書&#xff0c;先強烈安利一波&#xff01;非常感謝作者大大給我們前端領域帶來這本書。 全書從javascript的角度出發&#xff0c;簡單明了的分析了數據結構在javascript領域的實現過程與實際的應用案例&#xff0c;且…

postgres 登錄及常用命令

登陸 輸入以下命令&#xff0c;嘗試登錄psql: psql -U postgres 報告以下錯誤&#xff1a; psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres" 換成下面…