《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 蛙跳螢火蟲算法及其在無線電頻譜分配中的應用
蛙跳螢火蟲算法及其在無線電頻譜分配中的應用
2015年微型機與應用第5期
李衛軍
(北方民族大學 網絡信息技術中心,寧夏 銀川 750021)
摘要: 螢火蟲算法是一種生物群智能的隨機優化算法,該算法通過模擬螢火蟲在覓食、擇偶中產生熒光而相互吸引、移動、合作等行為來解決最優化問題。雖然該算法具有設置參數少、原理簡單、更新公式清晰等優點,但是存在著種群過早收斂到局部最優解或者種群收斂速度慢等問題。為此本文提出蛙跳螢火蟲算法。該算法利用蛙跳的分群思想來優化螢火蟲算法。利用蛙跳算法對種群進行分群和局部深度優化,不斷地迭代以尋得最優解。在對蛙跳螢火蟲算法研究的基礎上把它應用于無線電頻譜分配中,獲得比較滿意的頻譜分配方式。
Abstract:
Key words :

  摘  要螢火蟲算法是一種生物群智能的隨機優化算法,該算法通過模擬螢火蟲在覓食、擇偶中產生熒光而相互吸引、移動、合作等行為來解決最優化問題。雖然該算法具有設置參數少、原理簡單、更新公式清晰等優點,但是存在著種群過早收斂到局部最優解或者種群收斂速度慢等問題。為此本文提出蛙跳螢火蟲算法。該算法利用蛙跳的分群思想來優化螢火蟲算法。利用蛙跳算法對種群進行分群和局部深度優化,不斷地迭代以尋得最優解。在對蛙跳螢火蟲算法研究的基礎上把它應用于無線電頻譜分配中,獲得比較滿意的頻譜分配方式。

  關鍵詞: 螢火蟲算法;蛙跳算法;蛙跳螢火蟲算法;無線電頻譜

0 引言

  在當今社會的生產生活中,眾多學者利用進化成功的生物的生活方式來解決經典控制理論及優化方法在解決實際問題時所出現的瓶頸問題。其中蟻群優化算法利用了螞蟻群體分工協作的尋徑方式;隨機蛙跳算法模擬一群青蛙在覓食過程中分組交換信息再重新分組的過程。這類算法都源于學習或模擬某些生物的生存本領,因此此類算法多用于尋優或并行處理,因此又被統稱為群智能優化算法。本文將這兩種算法結合起來取長補短,用于無線電頻譜分配中。

1 螢火蟲算法

  1.1 算法的仿生原理

  螢火蟲算法是一種仿生群智能優化算法,是受螢火蟲個體的發光行為啟發而設計的,最早是由印度學者Krishnanand[1]等人于2005年提出的GSO(Glowworm Swarm Optimization),后來劍橋大學的Yang[2]也提出類似的算法,稱為FA(Firefly Algorithm)。

  在熱帶和溫帶地區,夏天的晚上都會出現數量巨大的螢火蟲群,據統計自然界中有大概2000種螢火蟲,大多數都會發出短促而有節奏的閃爍熒光,有的是為了求偶,有的是為了捕食或警戒等,科學家對此進行深入的研究發現其中的規律,構造出了螢火蟲算法。螢火蟲算法是模擬螢火蟲發光行為構造出的一種隨機優化算法,該算法根據其搜索區域尋找提供個體,向較優的螢火蟲移動,從而實現位置優化。

  螢火蟲根據兩個因素更新自己的位置,一是熒光亮度,二是吸引度[3]。越亮的螢火蟲吸引同伴向其移動的概率就越大,以至于最后都聚集在最亮的螢火蟲周圍。螢火蟲算法是一種群體智能優化算法,通過螢火蟲的種群表示搜索空間中的解,衡量螢火蟲所處的位置的優劣程度(即熒光亮度大小)用目標函數來表示,將螢火蟲種群優勝劣汰過程表示為可行解的替換和變換過程。

  1.2 螢火蟲算法的數學描述

  螢火蟲個體之間相互吸引主要由亮度和吸引度決定。亮度體現了螢火蟲所處位置的優劣,位置又決定了螢火蟲的亮度,亮度又決定了吸引度,吸引度進而決定了位置移動的距離大小和方向。由亮度和吸引度的不斷變化完成目標的優化過程。從數學的角度描述[4-5]如下:

  (1)螢火蟲的亮度表達式

  1.png

  式(1)中Ii,j表示螢火蟲i對螢火蟲j的相對亮度即吸引度;Ii表示螢火蟲i在r=0處的熒光亮度,它與相對的目標函數相關,目標函數越優,自身亮點越高;ε表示熒光吸收系數,表示熒光在傳輸過程中隨著傳輸距離的增加而減少的特性。

  (2)螢火蟲i被螢火蟲j吸引后的位置移動更新函數

  2.jpg

  (3)螢火蟲的移動概率

  螢火蟲先確定某個螢火蟲周圍最亮的個體,這個更亮的個體對這個螢火蟲的吸引度,計算這些吸引度的總和,然后根據各個更亮螢火蟲的吸引度占據總吸引度的比例作為螢火蟲移動的概率,計算公式如下:

 3.png

  其中,pij表示螢火蟲個體j向i移動的概率,n表示螢火蟲的個體i周圍比它亮的個體數目。

  1.3 螢火蟲算法流程

  算法流程如下:

  (1)初始化基本參數:螢火蟲數目n,光強吸收系數γ,步長因子β,擾動因子α,最大迭代次數tmax等。

  (2)根據約束條件隨機初始化螢火蟲個數,計算各個螢火蟲的目標函數作為螢火蟲自身的亮度。

  (3)由式(1)計算各個螢火蟲的相對吸引度,根據吸引度的大小決定螢火蟲向其他螢火蟲移動的概率。

  (4)由式(2)計算各個螢火蟲的更新位置,最佳位置的螢火蟲進行隨機擾動。

  (5)根據更新后的位置重新計算亮度,即適應值。

  (6)當滿足搜索精度或達到最大的搜索次數時轉向(7),否則搜索次數加1,跳轉到(3),進行下一輪搜索。

  (7)輸出全局極致個數和最優個體值。

  算法的時間復雜度是O(n2),n為螢火蟲的數目。

  雖然螢火蟲算法有諸多優點,如原理簡單、參數少、更新清晰,但與其他群智算法一樣存在過早收斂到局部最優解或收斂速度過慢的問題,為此本文結合分群的思想進行改進。

2 隨機蛙跳算法

  2.1 算法的仿生學原理

  與螢火蟲算法相似,隨機蛙跳算法[6]也是一種群智優化算法,最初是為了解決組合優化問題,具有高效的計算性能和優良的全局搜索能力。具體思想是[7]:在一片濕地中生活著一群青蛙,它們又分為幾個族群,每個族群內的每個青蛙進行信息共享來一起尋找食物,每個族群在各自尋找食物一段時間以后所有的族群又聚集在一起,以達到共享信息的目的,然后重新分群,各個族群又獨自尋找食物,通過循環這個過程,青蛙共享信息,盡快找到食物。該過程既有局部信息的交流,又有全局的信息交流,算法在執行過程中可以有效防止過早陷入局部最優解,向全局最優解方向移動。

  2.2 算法的數學描述

  (1)初始蛙跳的群體,隨機產生n只青蛙,每只青蛙的位置表示解空間的一個解,X=(x1,x2,…xm),x1,x2,…xm表示解的分量,m表示解得維數。

  (2)根據實際情況狀況計算出每個青蛙的目標值,對目標值優劣進行排序。

  (3)對青蛙進行分子群,若分為p個族群,每族群有q只青蛙,其中p,q滿足p×q=n,第1只青蛙分到第1族群,第2只青蛙分到第2族群,以此類推,第p只青蛙分到第p族群,……,第2p只青蛙分到第p個族群。依次循環直到分配完畢。

  利用式(4)隨機從青蛙種群中選取q個進行分組,并將組進行排序,j表示第j只青蛙,pj表示第j只青蛙被選中的概率。找出最好的族群PB和最差的族群PW,按式(5)和(6)對每個族群進行局部深度搜索。

 456.png


  上面的公式中rand()產生0~1之間的一個隨機數,Dmax表示青蛙的跳動步長,newpw表示更新后青蛙的位置。如果newpw處于可行解空間,計算newpw對應的適應值,如果newpw對應的適應值次于oldpw所對應的適應值,則采用全集最優解PX代替上面公式中的PB更新oldpw。如果更新之后仍然沒有改進,隨機產生的新的青蛙來代替PW,重復上述過程,直到預設的迭代次數完畢。所有的族群完成深度搜索后,將所有的族群進行混合重新排序,之后再將青蛙分成子族群,繼續全局搜索,直到預設的條件滿足為止。

3 蛙跳螢火蟲算法

  蛙跳螢火蟲算法[8]就是把螢火蟲算法和隨機蛙跳算法結合起來,具體結合方式如下:設置好算法各項參數:迭代次數r,族群規模n,分群數目m等,初始化螢火蟲的族群粒子,根據目標函數計算各個螢火蟲粒子的目標值,按照目標值的優劣進行排序,按照蛙跳算法進行分群。分群之后各個子種群按照蛙跳算法獨立進行深度優化,當達到迭代次數后又合為一個種群,對總的種群按照螢火蟲算法進行尋優,達到迭代次數后重新分群,重復以上步驟直到達到要求或者滿足迭代次數。

4 利用蛙跳螢火蟲算法對無線電頻譜進行分配

  傳統的頻譜管理機制限定某一頻段內的頻譜只有該頻段的授權用戶可以使用,造成了這些頻道的頻譜利用率低下且存在大量的頻譜空洞。本文利用蛙跳螢火蟲算法對這一情況將分配方法進行改進。

  4.1 基于蛙跳螢火蟲算法中的基本概念

  (1)螢火蟲

  每一種頻譜分配方案只有一只螢火蟲,用矩陣X表示,X=[x1,x2,…xn]T,其中xj是對信道j的分配向量,xj=[x1j,x2j,…xNj],xij∈{0,1},xij=1表示第i個次級用戶獲得信道j的使用權,反之失敗。同時螢火蟲的位置更新,即每一種方案代表的分配矩陣的元素改變。

  (2)熒光亮度

  每一只螢火蟲所處的位置都會對應一個熒光亮度,即每一種分配方案都能計算出一個與之對應的目標函數值。個體在當前所處的位置的亮度,取決于目標函數值,目標函數值越高自身亮度越亮。

  (3)空間距離rij

  rij為螢火蟲i與j之間的空間距離,螢火蟲的位置用坐標(x1,x2,…xN)表示,其中xj為對于信道j的分配向量。公式(1)計算出螢火蟲i處看到個體j的亮度。

  4.2 算法的主要流程

  (1)輸入螢火蟲算法的各項參數,輸入無線分配的參數等。

  (2)初始化螢火蟲粒子,即各個頻譜分配方案,每個粒子可以按如下的方式初始化:

  7.png

  其中,xij表示第i個次級用戶獲得信道j的使用權。

  (3)對各個粒子進行評價,計算出目標適應值,用蛙跳螢火蟲算法對種群進化尋優,達到迭代次數后按目標適應值大小排序,分群。

  (4)利用隨機蛙跳算法對各個子種群局部深度優化,在尋優的過程中如果出現不符合約束的粒子則直接舍去,重新初始化新粒子代替,達到迭代次數后各種群重新混合。

  (5)迭代次數減1,判讀迭代次數是否為0,若不為0轉到(3),否則選出此時最優解,實驗完畢。

  4.3 實驗仿真

  本文利用MATLAB進行仿真,參數設置如表1。

001.jpg

  系統中參數的設定不同會造成系統性能差異很大,最大迭代次數是一個很重要的參數,增大tmax可以提高算法精度,但也增加計算量,因此選擇合適的tmax至關重要。本文中針對螢火蟲數量分別在60、80、100三種情況下,次級用戶數分別是10,12,14,16,18時,測試收斂的平均迭代次數,測試結果如圖1所示。從圖中可以看出,螢火蟲的數量越多收斂速度越快,并且次級用戶較少時收斂速度也快。除了最大的迭代次數,種群規模也就是螢火蟲的數量n的大小也很重要。n越大算法精度越高,計算量越大,因此選擇一個合適的種群規模對于提高算法整體性能非常重要。

5 結論

  本文主要介紹了螢火蟲算法和隨機蛙跳算法的基本原理,并用數學方法進行描述,對算法的執行流程進行了說明,然后把螢火蟲算法和隨機蛙跳算法兩者結合,形成了蛙跳螢火蟲算法,并且把該算法應用于無線電頻譜分配。實驗表明,蛙跳螢火蟲算法在求解組合優化問題方面是有效的。

  參考文獻

  [1] KRISHNANAND K N, GHOSE D. Glowworm swarm based optimization algorithm for multimodal functions with collective robotics applications[J]. Multiagent and Grid Systems, 2006,2(3):209-222.

  [2] Yang Xinshe. Firefly algorithms for multimodal optimization [J]. Lecture Note in Computer Sciences, 2010(3):169-178.

  [3] KWIECIEN J, FILIPOWICZ B. Firefly algorithm in optimization of queueing system[J]. Bulletin of the Polish Academy of Sciences. Technical Sciences, 2012,60(2):363-368.

  [4] GANDOMi A H, Yang Xinshe, ALAVI A H. Mixed variable structural optimization using firefly algorithm[J]. Computers & Structures, 2011, 89( 23-24):2325-36.

  [5] 莫愿斌,劉付永,馬彥追.模擬生物理想自由分布模型的螢火蟲算法[J].計算機與應用化學,2014,31(2):153-160.

  [6] HENSHALL P, PALMER P. A leapfrog algorithm for coupled conductive and radiative transient heat transfer in participating media[J]. International  Journal of  Thermal Sciences, 2008,47(4):388-398.

  [7] 宋曉華,楊尚東,劉達.基于蛙跳算法的改進支持向量機預測方法及應用[J].中南大學學報(自然科學版),2011,42(9):2737-2740.

  [8] 李洋.蛙跳螢火蟲算法及其在含風電場的電力系統調度中的應用[D].上海:華東理工大學,2013.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美成人a视频| 久久久一区二区| 香蕉乱码成人久久天堂爱免费| 亚洲国产精品国自产拍av秋霞| 国产欧美日韩视频在线观看| 国产精品v欧美精品v日韩| 欧美精品久久一区二区| 蜜桃av一区二区三区| 久久国产精品网站| 午夜久久美女| 亚洲免费在线看| 亚洲午夜av电影| 亚洲精品1234| 亚洲黄色在线观看| 亚洲国产成人在线播放| 久久高清国产| 久久精品色图| 久久成人精品无人区| 欧美一区国产一区| 欧美一级在线视频| 欧美怡红院视频| 久久av二区| 久久精品亚洲精品| 亚洲福利视频在线| 91久久精品一区二区别| 亚洲人成人99网站| 亚洲免费观看| 99国产精品久久久久久久| av成人激情| 一区二区三区精品在线| 亚洲一二三级电影| 亚洲欧美日韩区| 欧美一区二区福利在线| 久久se精品一区精品二区| 欧美专区日韩专区| 久久婷婷av| 欧美成人精品在线播放| 欧美激情中文不卡| 国产精品v日韩精品| 国产女主播在线一区二区| 国产亚洲毛片在线| 在线成人免费观看| 亚洲卡通欧美制服中文| 亚洲午夜精品一区二区| 欧美一区二区性| 亚洲欧洲在线播放| 亚洲性图久久| 久久精品首页| 欧美肥婆bbw| 欧美婷婷久久| 国产一区视频在线观看免费| 亚洲国产精品第一区二区三区| 亚洲日本欧美| 亚洲自拍啪啪| 亚洲欧洲三级| 亚洲欧美中文另类| 久久人人97超碰人人澡爱香蕉| 欧美**字幕| 国产精品成人午夜| 很黄很黄激情成人| 日韩视频一区二区在线观看| 亚洲欧美一区二区三区极速播放| 久久精品免费观看| 中文有码久久| 久久久久一区| 欧美精品久久久久久久免费观看| 国产精品久久久久一区二区三区| 国语自产精品视频在线看抢先版结局 | 国产午夜精品美女毛片视频| 狠狠狠色丁香婷婷综合激情| 亚洲免费观看| 久久av一区二区三区| 中文国产亚洲喷潮| 久热这里只精品99re8久| 欧美三级免费| 在线观看欧美日韩国产| 亚洲一区二区三区精品动漫| 亚洲精品国产精品国自产观看| 亚久久调教视频| 欧美另类在线观看| 激情综合视频| 亚洲综合欧美日韩| 9久草视频在线视频精品| 久久久精品日韩| 国产精品美女久久久浪潮软件 | 国产日韩欧美黄色| 日韩亚洲精品电影| 亚洲国产高清自拍| 午夜精品久久久久久久| 欧美激情一区二区三区在线视频 | 欧美国产成人在线| 国产午夜精品久久久久久免费视| 日韩写真视频在线观看| 亚洲黄色视屏| 久久久久久国产精品mv| 国产精品久久久久久久久久直播 | 免费亚洲电影在线| 国产伦精品一区二区三区视频黑人| 亚洲精品自在久久| 亚洲精品乱码久久久久久久久| 久久精品一二三| 国产精品毛片a∨一区二区三区|国| 91久久一区二区| 亚洲国产精品女人久久久| 久久国产精品亚洲77777| 欧美性猛片xxxx免费看久爱| 亚洲日本成人网| 亚洲精品一区二区网址| 久久资源在线| 国产亚洲a∨片在线观看| 亚洲一区二区动漫| 亚洲在线观看免费视频| 欧美日韩精品免费看| 亚洲国产成人精品女人久久久| 欧美一区二区成人6969| 性久久久久久| 国产精品男女猛烈高潮激情| 99这里只有久久精品视频| 日韩写真在线| 欧美精品三区| 亚洲乱码一区二区| 99pao成人国产永久免费视频| 欧美国产一区二区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 在线中文字幕日韩| 亚洲手机在线| 欧美日韩中文另类| 99国产精品久久久久久久成人热| 亚洲人成小说网站色在线| 玖玖玖国产精品| 伊人久久综合97精品| 亚洲成人自拍视频| 蜜臀91精品一区二区三区| 精品动漫3d一区二区三区免费 | 亚洲国产女人aaa毛片在线| 狂野欧美激情性xxxx| 精品电影在线观看| 亚洲精品日韩在线| 欧美理论在线播放| 一区二区三区黄色| 性欧美xxxx大乳国产app| 国产伦一区二区三区色一情| 午夜亚洲性色视频| 久久只精品国产| 亚洲国产精品传媒在线观看| 99国产精品久久久| 欧美日韩在线一区二区三区| 亚洲性线免费观看视频成熟| 欧美伊人精品成人久久综合97| 国产一区二区久久精品| 久久精品免费看| 欧美精品一区三区在线观看| 99re8这里有精品热视频免费| 亚洲综合社区| 国产综合婷婷| 99亚洲伊人久久精品影院红桃| 欧美日韩三级| 亚洲欧美在线观看| 欧美成人自拍| 亚洲视频观看| 久久久一区二区| 亚洲精品国产精品乱码不99按摩 | 亚洲乱码国产乱码精品精98午夜 | 欧美有码视频| 在线成人中文字幕| 亚洲一级黄色av| 国产欧美日韩不卡| 91久久精品国产91久久性色| 欧美日韩在线播放| 欧美在线观看一区二区| 欧美黄色aaaa| 亚洲免费一级电影| 美女日韩在线中文字幕| 妖精成人www高清在线观看| 欧美中日韩免费视频| 亚洲国产精品成人综合色在线婷婷| 亚洲一区二区在线播放| 今天的高清视频免费播放成人| 99精品视频免费全部在线| 国产精品日本精品| 亚洲欧洲一区二区在线观看| 国产精品捆绑调教| 亚洲国产精品久久久久婷婷老年 | 国产精品久久久久一区二区| 久久精品一区蜜桃臀影院 | 99在线精品观看| 久久久一本精品99久久精品66| 日韩一级免费| 久久天堂国产精品| 一区二区三区日韩欧美| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲午夜视频在线| 欧美成人午夜剧场免费观看| 亚洲一区二区三区在线视频| 欧美国产国产综合| 欧美一区二区性| 国产精品久久久久久久久久妞妞| 亚洲韩国青草视频| 国产欧美日韩综合一区在线观看 | 亚洲欧美激情四射在线日|