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

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

相關文章

ptmalloc:從內存虛擬化說起

前言 本文并不局限于ptmalloc的原理,而是從linux的內存虛擬化和系統調用原理出發,結合各種語言實現,講明內存分配方面的trade off,力圖事無巨細,追根究底。本文內容包括但不限于:NIO原理、0拷貝原理、內存…

Redis 數據的持久化 RDB、AOF、RDB + AOF、No persistence 各自優缺點

文章目錄 一、RDB (Redis Database)1.1 RDB 優勢1.2 RDB 缺點1.3 RDB 如何工作1.4 RDB配置1.5 開啟/關閉,RDB快照策略,save指令1.6 持久化硬盤文件,dbfilename指令1.7 持久化硬盤文件的存儲地址,dir指令 二、AOF (Append Only Fil…

leetcode:643. 子數組最大平均數 I(滑動窗口)

一、題目 鏈接:643. 子數組最大平均數 I - 力扣(LeetCode) 函數原型: double findMaxAverage(int* nums, int numsSize, int k) 二、思路 滑動窗口: 先計算數組前k個元素總和,作為第一個窗口,默…

vlog如何降低重復率

大家好,今天來聊聊vlog如何降低重復率,希望能給大家提供一點參考。 以下是針對論文重復率高的情況,提供一些修改建議和技巧: vlog如何降低重復率 Vlog作為一種流行的視頻日志形式,常常被人們用于記錄日常生活、分享經…

pta模擬題——7-34 刮刮彩票

“刮刮彩票”是一款網絡游戲里面的一個小游戲。如圖所示: 每次游戲玩家會拿到一張彩票,上面會有 9 個數字,分別為數字 1 到數字 9,數字各不重復,并以 33 的“九宮格”形式排布在彩票上。 在游戲開始時能看見一個位置上…

Lambda表達式規則,用法

Lambda表達式是JDK8新增的一種語法格式 1.作用 簡化匿名內部類的代碼寫法 Lambad用法前提:只能簡化函數式接口(一般加有Funcationallnterface)(有且僅有一個抽象方法)的匿名內部類 匿名內部類:(本質是對…

url轉pdf或者html轉pdf工具 — iText實現url轉pdf

url轉pdf或者html轉pdf工具 — iText實現url轉pdf 參考資料: https://kb.itextpdf.com/itext/can-i-generate-a-pdf-from-a-url-instead-of-from-a- http://www.micmiu.com/opensource/expdoc/itext-pdf-demo/ https://blog.51cto.com/u_16237557/7263784 iText&…

sensitive-word 敏感詞/臟詞開源工具-v.0.10.0-臟詞分類標簽支持

sensitive-word sensitive-word 基于 DFA 算法實現的高性能敏感詞工具。 創作目的 實現一款好用敏感詞工具。 基于 DFA 算法實現,目前敏感詞庫內容收錄 6W(源文件 18W,經過一次刪減)。 后期將進行持續優化和補充敏感詞庫&…

幾種常用的壓力測試工具

1. JMeter 官網: Apache JMeter簡介: Apache JMeter 是一個開源軟件,主要用于性能測試和壓力測試。它可以用來測試靜態和動態資源,如文件、Web服務、REST API等。下載與使用: 訪問官網下載安裝包。解壓安裝包并運行 JMeter。通過創建測試計劃來設置壓力…

2023年終總結-輕舟已過萬重山

自我介紹 高考大省的讀書人 白,隴西布衣,流落楚、漢。-與韓荊州書 我來自孔孟故里山東濟寧,也許是小學時的某一天,我第一次接觸到了電腦,從此對它產生了強烈的興趣,高中我有一個愿望:成為一名計…

設計模式再探——裝飾模式

目錄 一、背景介紹二、思路&方案三、過程1.裝飾模式簡介2.裝飾模式的類圖3.裝飾模式代碼4.裝飾模式,職責父類拆分的奧義5.裝飾模式,部件抽象類的無中生有 四、總結五、升華 一、背景介紹 最近公司在做架構模型的時候,涉及到裝飾模式的研…

html網頁設計 01marquee標簽廣告滾動(1)

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><!-- scrollamount:數字越大&#xff0c;滾動越快direction:滾動方向滾動的類型behaior"slide",文字滾動到邊界后就會…

Python中的lambda匿名函數詳解以及三種經典使用場景

lambda匿名函數 匿名函數&#xff0c;顧名思義就是不需要具體定義函數名的函數。我們首先拋開復雜的定義&#xff0c;看兩個具體例子。 先看一個無參數函數的例子。假設我們需要一個return 1的函數&#xff0c;如果使用普通的函數定義方式&#xff0c;其代碼為&#xff1a; …

vuepress-----20、全文搜索

默認主題自帶的搜索, 只會為頁面的標題、h2、h3 以及 tags構建搜索索引。所以盡量將圍繞知識點的關鍵字體現到標題上。而 tags 更為靈活&#xff0c;可以把相關的能想到的關鍵字都配置到 tags 中&#xff0c;以方便搜索。 默認插件介紹 (opens new window) 默認主體配置 (ope…

電子秤ADC芯片CS1237技術資料問題合集

問題11&#xff1a;實際應用中&#xff0c;多個稱重傳感器應該怎么與ADC連接&#xff1f; 解答&#xff1a;如果傳感器是測量同一物體&#xff08;例如&#xff1a;廚房垃圾處理器&#xff09;&#xff0c;一般建議使用并聯的方式。則相同類型的信號線連接在一起。對于傳感器的…

C語言指針基礎題(一)

目錄 例題一題目解析答案 例題二題目解析答案 例題三題目解析答案 例題四題目解析答案 例題五題目解析答案 例題六題目解析答案 例題七題目解析答案 感謝各位大佬對我的支持,如果我的文章對你有用,歡迎點擊以下鏈接 &#x1f412;&#x1f412;&#x1f412; 個人主頁 &#x…

C++ 教程 - 01 基礎篇

文章目錄 C介紹環境配置第一個cpp程序案例練習 變量常量關系運算符邏輯運算符條件運算符位運算符類型轉換分支循環程序調用綜合案例 C介紹 基于C語言&#xff0c;繼承了C的所有語法&#xff1b; 靜態類型語言&#xff0c;需要先編譯&#xff0c;再執行&#xff1b; 貼近底層硬…

雪花算法:分布式系統的關鍵藝術

導言 在探索分布式系統的奧秘時&#xff0c;我們經常遇到一個看似簡單卻極其關鍵的挑戰&#xff1a;如何高效、可靠地生成唯一的標識符&#xff08;ID&#xff09;。這不僅是技術的問題&#xff0c;更是一種藝術。讓我們深入探討雪花算法&#xff08;Snowflake Algorithm&…

windows下分卷解壓文件

我的文件是這樣的&#xff1a; 存放路徑為&#xff1a;C:\Users\Luli_study\MICCAI_MMAC\fudanuniversity\DDR dataset 首先要進入分卷文件的目錄cd&#xff1a; 第一步&#xff1a;cd /path/o/分卷問文件目錄 第二步&#xff1a; 執行之后的結果(紅色框出來的)&#xff1a; …

?functools --- 高階函數和可調用對象上的操作?

源代碼: Lib/functools.py functools 模塊應用于高階函數&#xff0c;即參數或&#xff08;和&#xff09;返回值為其他函數的函數。 通常來說&#xff0c;此模塊的功能適用于所有可調用對象。 functools 模塊定義了以下函數: functools.cache(user_function) 簡單輕量級未綁…