本發(fā)明涉及無線通訊技術(shù)領(lǐng)域,具體涉及一種基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法。
背景技術(shù):
近幾年,網(wǎng)絡(luò)上出現(xiàn)了各式各樣的新業(yè)務(wù)及新應(yīng)用。其中很大一部分是以高帶寬、高網(wǎng)絡(luò)資源需求為基礎(chǔ)的多媒體業(yè)務(wù),比如遠(yuǎn)程教育、iptv、網(wǎng)絡(luò)會(huì)議等,這些業(yè)務(wù)的主要特點(diǎn)是發(fā)送方發(fā)送的數(shù)據(jù)具有極高重復(fù)性。面對(duì)這些業(yè)務(wù),如采用傳統(tǒng)的點(diǎn)對(duì)點(diǎn)通信模式,會(huì)在網(wǎng)絡(luò)用戶增加的情況下使網(wǎng)絡(luò)資源和帶寬急劇消耗,最后造成網(wǎng)絡(luò)擁塞。而組播技術(shù)可以很好的解決這一問題。這種組播技術(shù)的主要特點(diǎn)是可以提供從單點(diǎn)同時(shí)向網(wǎng)絡(luò)中的多點(diǎn)傳輸相同數(shù)據(jù),依靠組播樹,兩個(gè)或多個(gè)目的網(wǎng)絡(luò)或主機(jī)不需要在重復(fù)鏈路各自發(fā)送數(shù)據(jù)包,只需在組播樹分支節(jié)點(diǎn)復(fù)制數(shù)據(jù)包并分發(fā)即可,這樣就可以有效節(jié)約網(wǎng)絡(luò)資源且提高帶寬利用率。如果尋求組播樹的路由算法支持指定的服務(wù)質(zhì)量(qualityofservice,簡稱qos)參數(shù)約束(如帶寬、時(shí)延抖動(dòng)、時(shí)延等約束),則稱這種算法為qos組播路由算法。而對(duì)基于服務(wù)質(zhì)量的組播路由算法的研究對(duì)于提高組播的服務(wù)的效率就顯得尤為重要。
早前針對(duì)組播樹最短路徑問題曾提出一些基本的數(shù)學(xué)優(yōu)化算法:比如典型的單源最短路dijkstra算法和bellman-ford算法;針對(duì)組播最小生成樹的貪心算法等。然而這些算法都是針對(duì)源節(jié)點(diǎn)到每個(gè)目的節(jié)點(diǎn)單條最短路徑的算法,沒有考慮盡量多的增加重復(fù)鏈路來節(jié)省帶寬消耗。這樣,人們開始應(yīng)用啟發(fā)式算法來解決組播路由最小斯坦利樹(minimumsteinertree,簡稱mst)問題。比如parsamehrdad提出的受限最短多播(boundedshortestmulticastalgorithm,簡稱bsma)算法;gelenbe曾采用隨機(jī)神經(jīng)網(wǎng)絡(luò)算法,對(duì)由kou提出的最小斯坦利樹啟發(fā)(minimumsteinertreeheuristic,簡稱msth)算法產(chǎn)生的生成樹尋找潛在的斯坦利節(jié)點(diǎn),來優(yōu)化計(jì)算mst。然而這些算法所假設(shè)的網(wǎng)絡(luò)規(guī)模都比較小,當(dāng)今的網(wǎng)絡(luò)規(guī)模越來越大,而且,mst組播路由問題已被證明為非決定性多項(xiàng)式完全(non-deterministicpolynomialcomplete,簡稱np-complete)問題,在較大網(wǎng)絡(luò)規(guī)模下,尋求問題的客觀最優(yōu)解已變得越來越耗時(shí)甚至不切實(shí)際,故這些算法的研究遇到了瓶頸。
于是國內(nèi)外的學(xué)者結(jié)合實(shí)際問題,應(yīng)用遺傳算法(geneticalgorithm,簡稱ga)等元啟發(fā)式群智能算法對(duì)組播路由問題進(jìn)行了研究,并取得了一定的成果。這類群智能算法的特點(diǎn)是不求找到客觀最優(yōu)解,而是在有限的時(shí)間內(nèi)找到一個(gè)可以接受的較優(yōu)解,正適合解決組播路由這類np-complete問題。然而,將遺傳算法應(yīng)用于組播路由問題存在一定缺陷,由于遺傳算法中選擇、交叉、變異等操作比較復(fù)雜,導(dǎo)致其收斂速度過慢,獲取的組播樹代價(jià)比較高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法,以解決現(xiàn)有技術(shù)中解決組播路由問題過程中收斂速度過慢,獲取組播樹代價(jià)較高的技術(shù)問題。
為了實(shí)現(xiàn)上述目的,提供了一種基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法,包括以下步驟:
(1)確定優(yōu)化目標(biāo)并約束條件,建立基于實(shí)際網(wǎng)絡(luò)的邏輯網(wǎng)絡(luò)拓?fù)鋱D;
(2)基于上述網(wǎng)絡(luò)拓?fù)?,初始化算法中果蠅群體規(guī)模,初始化果蠅群體,生成所有果蠅個(gè)體,每個(gè)果蠅個(gè)體均具有位置和味道濃度值兩個(gè)屬性;初始化最大迭代代數(shù)、嗅覺隨機(jī)搜索步長參數(shù),視覺定位靈敏度參數(shù)以及當(dāng)前迭代代數(shù);初始化一個(gè)歷史最優(yōu)果蠅個(gè)體,設(shè)置其味道濃度值;
(3)對(duì)于當(dāng)代果蠅群體中的每個(gè)個(gè)體,結(jié)合嗅覺隨機(jī)搜索步長參數(shù),進(jìn)行嗅覺隨機(jī)搜索;
(4)用味道濃度判斷函數(shù)計(jì)算當(dāng)代每個(gè)果蠅的味道濃度值;
(5)找到目前當(dāng)代果蠅群體中具有最大味道濃度值的個(gè)體及其坐標(biāo)位置,若最大味道濃度值的個(gè)體的味道濃度值大于歷史最優(yōu)果蠅個(gè)體的味道濃度值,則歷史最優(yōu)果蠅個(gè)體的位置和味道濃度值被最大味道濃度值的個(gè)體替換;
(6)對(duì)于當(dāng)代果蠅群體中的每個(gè)個(gè)體,結(jié)合視覺定位靈敏度參數(shù),使該個(gè)體以最大味道濃度值的個(gè)體為目標(biāo)進(jìn)行視覺定位;
(7)判斷當(dāng)前迭代代數(shù)是否滿足步驟(3)中設(shè)定的最大迭代代數(shù),若滿足則轉(zhuǎn)到步驟(3),否則退出循環(huán)輸出歷史最優(yōu)果蠅個(gè)體,利用歷史最優(yōu)果蠅個(gè)體計(jì)算組播樹。
進(jìn)一步地,步驟(1)中所有果蠅存在于一個(gè)多維空間中,果蠅的位置表示方式為一個(gè)多維向量。
進(jìn)一步地,步驟(3)中嗅覺隨機(jī)搜索的搜索策略為:
對(duì)于某果蠅個(gè)體,在對(duì)其進(jìn)行嗅覺隨機(jī)搜索之前,先在包括所有不大于果蠅維度的正整數(shù)的集合中隨機(jī)選取若干正整數(shù)組成一個(gè)整數(shù)集合,基于這個(gè)整數(shù)集合和此果蠅當(dāng)前位置,按照更新策略來確定嗅覺隨機(jī)搜索之后的位置,隨后,用嗅覺隨機(jī)搜索之后的位置替換嗅覺隨機(jī)搜索之前的位置,即完成果蠅個(gè)體的嗅覺隨機(jī)搜索。
進(jìn)一步地,步驟(4)中濃度判斷函數(shù)計(jì)算方法為:
對(duì)于某果蠅個(gè)體,基于其各個(gè)維度上的位置取值和步驟(1)建立的網(wǎng)絡(luò)拓?fù)?,生成一個(gè)新網(wǎng)絡(luò)拓?fù)?,新網(wǎng)絡(luò)拓?fù)涫遣襟E(1)建立的網(wǎng)絡(luò)拓?fù)涞淖訄D;在新的拓?fù)渖?,若組播源節(jié)點(diǎn)與任意組播目的節(jié)點(diǎn)均連通,則以組播源節(jié)點(diǎn)為源節(jié)點(diǎn),使連接兩個(gè)節(jié)點(diǎn)的各邊的開銷為各自權(quán)值,運(yùn)行一次dijkstra最短路徑算法,得出源節(jié)點(diǎn)到達(dá)全部目的節(jié)點(diǎn)的最短路徑,這些最短路徑包含的所有邊去重后構(gòu)成一個(gè)集合,依照味道濃度判斷函數(shù)和此集合求出此果蠅個(gè)體的味道濃度值;否則該果蠅個(gè)體味道濃度值為0。
進(jìn)一步地,步驟(6)中視覺定位的定位策略為:
對(duì)于某果蠅個(gè)體,基于其當(dāng)前位置和當(dāng)代擁有最大味道濃度值的果蠅個(gè)體位置,按照概率公式求得一個(gè)概率序列,該果蠅視覺定位之后的位置取值根據(jù)這個(gè)概率序列來確定,確定之后即完成該果蠅個(gè)體的視覺定位。
本發(fā)明在解決帶寬約束組播路由問題上應(yīng)用了果蠅優(yōu)化算法,并提出了自定義嗅覺隨機(jī)搜索、味道濃度判斷、自定義視覺定位等步驟,相比于其它現(xiàn)有技術(shù),在解決現(xiàn)有技術(shù)中解決組播路由問題過程中收斂速度快,獲取組播樹代價(jià)小。
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明做進(jìn)一步的說明。本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
附圖說明
構(gòu)成本發(fā)明的一部分的附圖用來輔助對(duì)本發(fā)明的理解,附圖中所提供的內(nèi)容及其在本發(fā)明中有關(guān)的說明可用于解釋本發(fā)明,但不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1為本發(fā)明一種基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法的流程圖。
圖2為本發(fā)明一種基于果蠅優(yōu)化算法的帶寬約束組播路由中網(wǎng)絡(luò)拓?fù)鋱D。
圖3為本發(fā)明與遺傳算法在場景一下的平均開銷曲線對(duì)比圖。
圖4為本發(fā)明與遺傳算法在場景二下的平均開銷曲線對(duì)比圖。
圖5為本發(fā)明與遺傳算法在場景三下的平均開銷曲線對(duì)比圖。
圖6為本發(fā)明與遺傳算法在場景四下的平均開銷曲線對(duì)比圖。
圖7為本發(fā)明與遺傳算法在場景一下的歷史最低開銷曲線對(duì)比圖。
圖8為本發(fā)明與遺傳算法在場景二下的歷史最低開銷曲線對(duì)比圖。
圖9為本發(fā)明與遺傳算法在場景三下的歷史最低開銷曲線對(duì)比圖。
圖10為本發(fā)明與遺傳算法在場景四下的歷史最低開銷曲線對(duì)比圖。
圖11為本發(fā)明在場景一下所得組播樹示意圖。
圖12為本發(fā)明在場景二下所得組播樹示意圖。
圖13為本發(fā)明在場景三下所得組播樹示意圖。
圖14為本發(fā)明在場景四下所得組播樹示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行清楚、完整的說明。本領(lǐng)域普通技術(shù)人員在基于這些說明的情況下將能夠?qū)崿F(xiàn)本發(fā)明。在結(jié)合附圖對(duì)本發(fā)明進(jìn)行說明前,需要特別指出的是:
本發(fā)明中在包括下述說明在內(nèi)的各部分中所提供的技術(shù)方案和技術(shù)特征,在不沖突的情況下,這些技術(shù)方案和技術(shù)特征可以相互組合。
下述說明中涉及到的本發(fā)明的實(shí)施例通常僅是本發(fā)明一分部的實(shí)施例,而不是全部的實(shí)施例。因此,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
關(guān)于對(duì)本發(fā)明中術(shù)語的說明:“dijkstra最短路徑算法”是用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑,其算法思想為:令g=(v,e)為一個(gè)帶權(quán)無向圖,把圖中的頂點(diǎn)集合v分成兩組,第一組為已求出最短路徑的頂點(diǎn)集合s(初始時(shí)s中只有源節(jié)點(diǎn),以后每求得一條最短路徑,就將它對(duì)應(yīng)的頂點(diǎn)加入到集合s中,直到全部頂點(diǎn)都加入到s中);第二組是未確定最短路徑的頂點(diǎn)集合u。在加入過程中,總保持從源節(jié)點(diǎn)v到s中各頂點(diǎn)的最短路徑長度不大于從源節(jié)點(diǎn)v到u中任何頂點(diǎn)的最短路徑長度。其算法步驟基本包括a、初始化時(shí),s只含有源節(jié)點(diǎn);b、從u中選取一個(gè)距離v最小的頂點(diǎn)k加入s中(該選定的距離就是v到k的最短路徑長度);c、以k為新考慮的中間點(diǎn),修改u中各頂點(diǎn)的距離;若從源節(jié)點(diǎn)v到頂點(diǎn)u的距離(經(jīng)過頂點(diǎn)k)比原來距離(不經(jīng)過頂點(diǎn)k)短,則修改頂點(diǎn)u的距離值,修改后的距離值是頂點(diǎn)k的距離加上k到u的距離;d、重復(fù)步驟b和c,直到所有頂點(diǎn)都包含在s中。
本發(fā)明基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法包括以下步驟:
(1)確定優(yōu)化目標(biāo)并約束條件,建立基于實(shí)際網(wǎng)絡(luò)的邏輯網(wǎng)絡(luò)拓?fù)鋱D;
(2)基于上述網(wǎng)絡(luò)拓?fù)?,初始化算法中果蠅群體規(guī)模,初始化果蠅群體,生成所有果蠅個(gè)體,每個(gè)果蠅個(gè)體均具有位置和味道濃度值兩個(gè)屬性;初始化最大迭代代數(shù)、嗅覺隨機(jī)搜索步長參數(shù),視覺定位靈敏度參數(shù)以及當(dāng)前迭代代數(shù);初始化一個(gè)歷史最優(yōu)果蠅個(gè)體,設(shè)置其味道濃度值;
(3)對(duì)于當(dāng)代果蠅群體中的每個(gè)個(gè)體,結(jié)合嗅覺隨機(jī)搜索步長參數(shù),進(jìn)行嗅覺隨機(jī)搜索;
(4)用味道濃度判斷函數(shù)計(jì)算當(dāng)代每個(gè)果蠅的味道濃度值;
(5)找到目前當(dāng)代果蠅群體中具有最大味道濃度值的個(gè)體及其坐標(biāo)位置,若最大味道濃度值的個(gè)體的味道濃度值大于歷史最優(yōu)果蠅個(gè)體的味道濃度值,則歷史最優(yōu)果蠅個(gè)體的位置和味道濃度值被最大味道濃度值的個(gè)體替換;
(6)對(duì)于當(dāng)代果蠅群體中的每個(gè)個(gè)體,結(jié)合視覺定位靈敏度參數(shù),使該個(gè)體以最大味道濃度值的個(gè)體為目標(biāo)進(jìn)行視覺定位;
(7)判斷當(dāng)前迭代代數(shù)是否滿足步驟(3)中設(shè)定的最大迭代代數(shù),若滿足則轉(zhuǎn)到步驟(3),否則退出循環(huán)輸出歷史最優(yōu)果蠅個(gè)體,利用歷史最優(yōu)果蠅個(gè)體計(jì)算組播樹。
步驟(1)中所有果蠅存在于一個(gè)多維空間中,果蠅的位置表示方式為一個(gè)多維向量。
步驟(3)中嗅覺隨機(jī)搜索的搜索策略為:
對(duì)于某果蠅個(gè)體,在對(duì)其進(jìn)行嗅覺隨機(jī)搜索之前,先在包括所有不大于果蠅維度的正整數(shù)的集合中隨機(jī)選取若干正整數(shù)組成一個(gè)整數(shù)集合,基于這個(gè)整數(shù)集合和此果蠅當(dāng)前位置,按照更新策略來確定嗅覺隨機(jī)搜索之后的位置,隨后,用嗅覺隨機(jī)搜索之后的位置替換嗅覺隨機(jī)搜索之前的位置,即完成果蠅個(gè)體的嗅覺隨機(jī)搜索。
步驟(4)中濃度判斷函數(shù)計(jì)算方法為:
對(duì)于某果蠅個(gè)體,基于其各個(gè)維度上的位置取值和步驟(1)建立的網(wǎng)絡(luò)拓?fù)?,生成一個(gè)新網(wǎng)絡(luò)拓?fù)?,新網(wǎng)絡(luò)拓?fù)涫遣襟E(1)建立的網(wǎng)絡(luò)拓?fù)涞淖訄D;在新的拓?fù)渖?,若組播源節(jié)點(diǎn)與任意組播目的節(jié)點(diǎn)均連通,則以組播源節(jié)點(diǎn)為源節(jié)點(diǎn),使連接兩個(gè)節(jié)點(diǎn)的各邊的開銷為各自權(quán)值,運(yùn)行一次dijkstra最短路徑算法,得出源節(jié)點(diǎn)到達(dá)全部目的節(jié)點(diǎn)的最短路徑,這些最短路徑包含的所有邊去重后構(gòu)成一個(gè)集合,依照味道濃度判斷函數(shù)和此集合求出此果蠅個(gè)體的味道濃度值;否則該果蠅個(gè)體味道濃度值為0。
步驟(6)中視覺定位的定位策略為:
對(duì)于某果蠅個(gè)體,基于其當(dāng)前位置和當(dāng)代擁有最大味道濃度值的果蠅個(gè)體位置,按照概率公式求得一個(gè)概率序列,該果蠅視覺定位之后的位置取值根據(jù)這個(gè)概率序列來確定,確定之后即完成該果蠅個(gè)體的視覺定位。
在帶寬約束組播路由問題研究中,可將通信網(wǎng)的網(wǎng)絡(luò)拓?fù)淇闯梢粡垷o向帶權(quán)連通圖g=(v,e),其中v={v1,v2,…,vo}為節(jié)點(diǎn)集合,e={e1,e2,…,ek}為圖中連接兩個(gè)節(jié)點(diǎn)的邊集合,其中o=|v|和k=|e|分別表示節(jié)點(diǎn)和邊的個(gè)數(shù)。s∈v為組播源節(jié)點(diǎn),
其中優(yōu)化目標(biāo)為組播樹t的開銷
設(shè)置約束條件為任意e∈et,band(e)不小于最低帶寬約束b(單位mb/s)。
圖1為本發(fā)明一種基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法的流程圖。如圖1所示,一種基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法,包括以下步驟:
(1)將網(wǎng)絡(luò)拓?fù)湓O(shè)定為g=(v,e),其中v={v1,v2,…,vo}為節(jié)點(diǎn)集合,e={e1,e2,…,ek}為圖中連接兩個(gè)節(jié)點(diǎn)的邊集合,其中o=|v|和k=|e|分別表示節(jié)點(diǎn)和邊的個(gè)數(shù);
設(shè)置約束條件:在g中找出一棵組播樹t=(vt,et),保證對(duì)于任意e∈et,band(e)不小于最低帶寬約束b(單位mb/s),并且使組播樹t的開銷
(2)基于上述網(wǎng)絡(luò)拓?fù)鋑=(v,e),初始化算法中果蠅群體規(guī)模m,初始化果蠅群體f={f1,f2,…,fm},生成所有果蠅個(gè)體,每個(gè)果蠅個(gè)體均具有位置和味道濃度值兩個(gè)屬性;
初始化最大迭代代數(shù)maxgen、嗅覺隨機(jī)搜索步長參數(shù)step,以及視覺定位靈敏度參數(shù)sens,令當(dāng)前迭代代數(shù)n=1;
初始化一個(gè)歷史最優(yōu)果蠅個(gè)體hisbest,其味道濃度值為0;
(3)對(duì)于當(dāng)代果蠅群體中的每個(gè)個(gè)體,結(jié)合嗅覺隨機(jī)搜索步長參數(shù)step,進(jìn)行嗅覺隨機(jī)搜索;
(4)用味道濃度判斷函數(shù)計(jì)算當(dāng)代每個(gè)果蠅的味道濃度值;
(5)找到目前當(dāng)代果蠅群體中具有最大味道濃度值的個(gè)體bestn及其坐標(biāo)位置,若bestn的味道濃度值大于hisbest的味道濃度值,則hisbest的位置和味道濃度值被bestn替換;
(6)對(duì)于當(dāng)代果蠅群體中的每個(gè)個(gè)體,結(jié)合視覺定位靈敏度參數(shù)sens,使該個(gè)體以bestn為目標(biāo)進(jìn)行視覺定位;
(7)若n<maxgen+1,則n=n+1,轉(zhuǎn)到步驟(3),否則退出循環(huán)輸出hisbest,利用hisbest計(jì)算組播樹。
步驟(2)所述果蠅位置表示方式為:
所有果蠅存在于一個(gè)k維空間中,位置表示方式為一個(gè)k維向量l=[l1,l2,…,lk],其中l(wèi)i∈{0,1},i∈{1,2,…,k}。初始化每個(gè)果蠅位置時(shí),每一維度取值都以概率0.5取值為0,否則為1。
步驟(3)所述個(gè)體嗅覺隨機(jī)搜索策略為:
對(duì)于某果蠅個(gè)體f,設(shè)其嗅覺隨機(jī)搜索之前的位置為lf=[lf,1,lf,2,…,lf,k],嗅覺隨機(jī)搜索之后的位置為lf’=[lf,1’,lf,2’,…,lf,k’]。在集合{1,2,…,k}中隨機(jī)選取step個(gè)整數(shù),組成一個(gè)整數(shù)集合r={r1,r2,r3,…,rstep},按照更新策略:
其中i∈{1,2,…,k},來確定lf’中l(wèi)f,i’的取值。隨后,用lf’替換lf,即完成果蠅個(gè)體f的嗅覺隨機(jī)搜索。
步驟(4)所述味道濃度判斷方法和味道濃度判斷函數(shù)為:
對(duì)于某果蠅個(gè)體f,設(shè)其位置為lf=[lf,1,lf,2,…,lf,k]?;诰W(wǎng)絡(luò)拓?fù)鋑=(v,e),設(shè)ef={
求出個(gè)體f的味道濃度值。在拓?fù)鋑f上,若非s與任意di∈d均連通,則個(gè)體f的味道濃度值為0。
步驟(6)所述視覺定位策略為:
對(duì)于某果蠅個(gè)體f,設(shè)其視覺定位之前的位置為lf=[lf,1,lf,2,…,lf,k],視覺定位之后的位置為lf’=[lf,1’,lf,2’,…,lf,k’],當(dāng)代最優(yōu)個(gè)體bestn位置為ln=[ln,1,ln,2,…,ln,k],則按照下邊概率公式求得一個(gè)概率序列[p1,p2,…,pk]:
其中rand()為實(shí)數(shù)區(qū)間[0,1]上的隨機(jī)數(shù),i∈{1,2,…,k}。位置lf’=[lf,1’,lf,2’,…,lf,k’]中l(wèi)f,i’以概率pi取值為1,否則為0。隨后,用lf’來替換lf,即完成果蠅f的視覺定位。
如圖2為本發(fā)明一種基于果蠅優(yōu)化算法的帶寬約束組播路由中網(wǎng)絡(luò)拓?fù)鋱D。共有26個(gè)節(jié)點(diǎn),節(jié)點(diǎn)id編號(hào)為0~25。共有65條邊,邊id編號(hào)為0~64(圖中未畫出),每條邊上標(biāo)明了開銷,在區(qū)間(0,10)上隨機(jī)生成,保留一位小數(shù)。虛線邊代表此條邊在拓?fù)渲袔挷蛔?mb/s,假設(shè)組播請(qǐng)求服務(wù)的源節(jié)點(diǎn)為25,目的節(jié)點(diǎn)集為[24,16,22],帶寬約束b為5mb/s。下面將結(jié)合此拓?fù)鋱D實(shí)例和組播請(qǐng)求服務(wù)詳細(xì)說明本發(fā)明中果蠅優(yōu)化算法中嗅覺隨機(jī)搜索、味道濃度判定、視覺定位和生成算法最終的最優(yōu)組播樹的具體實(shí)施方法。
初始化算法中果蠅群體規(guī)模m=20,生成所有果蠅個(gè)體,隨機(jī)初始化各個(gè)果蠅位置,每個(gè)果蠅的位置一定是一個(gè)65維向量,k等于65,每一緯度取值為0或1,比如[1,0,1,1,0,1,…,1,1]。初始化最大迭代代數(shù)maxgen=100。經(jīng)試驗(yàn)總結(jié),嗅覺隨機(jī)搜索步長參數(shù)step=9為最佳、視覺定位靈敏度參數(shù)sens=2.5為最佳,初始化一個(gè)歷史最優(yōu)果蠅個(gè)體hisbest,使其味道濃度值為0,令當(dāng)前迭代代數(shù)n=1。
對(duì)于某果蠅個(gè)體f,設(shè)其嗅覺隨機(jī)搜索之前的位置為lf=[lf,1,lf,2,…,lf,k],嗅覺隨機(jī)搜索之后的位置為lf’=[lf,1’,lf,2’,…,lf,k’]。在集合{1,2,…,k}中隨機(jī)選取step個(gè)整數(shù),組成一個(gè)整數(shù)集合r={r1,r2,r3,…,rstep},按照更新策略:
其中i∈{1,2,…,k},來確定lf’中l(wèi)f,i’的取值。隨后,用lf’替換lf,即完成果蠅個(gè)體f的嗅覺隨機(jī)搜索。假設(shè)某果蠅位置取值為[1,0,1,1,0,1,0,0,0,0,1,0,1,1,…,0,1,1,1],依照step=9,需要在集合{1,2,3,…,65}中選擇9個(gè)整數(shù)組成一個(gè)集合,假設(shè)集合為{11,1,9,4,5,13,65,2,64},可知原果蠅位置中,第[1,2,4,5,9,11,13,64,65]維度的值要進(jìn)行1次0,1取反操作,原果蠅位置取值變?yōu)閇0,1,1,0,1,1,0,0,1,0,0,0,0,1,…,0,1,0,0]。
在對(duì)果蠅f進(jìn)行味道濃度評(píng)估時(shí),設(shè)其位置為lf=[lf,1,lf,2,…,lf,k]?;诰W(wǎng)絡(luò)拓?fù)鋑=(v,e),設(shè)
求出個(gè)體f的味道濃度值。在拓?fù)鋑f上,若非s與任意di∈d均連通,則個(gè)體f的味道濃度值為0。按照此方法,結(jié)合圖2,在新拓?fù)鋑f上以25為源節(jié)點(diǎn),[24,16,22]為目的節(jié)點(diǎn)運(yùn)行一次dijkstra最短路徑算法,若求得24節(jié)點(diǎn)到達(dá)25節(jié)點(diǎn)的路徑包括的邊id為[61,40,21,2,5,46],16節(jié)點(diǎn)到達(dá)25節(jié)點(diǎn)的路徑包括的邊id為[20,17,2,5,46],22節(jié)點(diǎn)到達(dá)25節(jié)點(diǎn)的路徑包括的邊id為[16,13,23,25,46],則可確定組播樹包含的邊為[2,5,13,16,17,20,21,23,25,40,46,61],依照味道濃度判斷函數(shù),f的味道濃度值為這些邊的開銷之和再取倒數(shù)。
在整個(gè)算法運(yùn)行過程中,hisbest為一個(gè)記錄算法運(yùn)行中出現(xiàn)過的具有最高味道濃度值的果蠅及其位置的特殊果蠅,初始記錄的味道濃度值為0。如果運(yùn)行到第n代具有最高味道濃度值的果蠅bestn的味道濃度值大于hisbest的味道濃度值,那么hisbest的位置和味道濃度值均被果蠅bestn所替代,否則,hisbest的位置和味道濃度值不變。
對(duì)于某果蠅個(gè)體f進(jìn)行視覺定位操作時(shí),設(shè)其視覺定位之前的位置為lf=[lf,1,lf,2,…,lf,k],視覺定位之后的位置為lf’=[lf,1’,lf,2’,…,lf,k’],當(dāng)代最優(yōu)個(gè)體bestn位置為ln=[ln,1,ln,2,…,ln,k],則按照下邊概率公式求得一個(gè)概率序列[p1,p2,…,pk]:
其中rand()為實(shí)數(shù)區(qū)間[0,1]上的隨機(jī)數(shù),i∈{1,2,…,k}。位置lf’=[lf,1’,lf,2’,…,lf,k’]中l(wèi)f,i’以概率pi取值為1,否則為0。隨后,用lf’來替換l,即完成果蠅f的視覺定位。即:若f與bestn的位置對(duì)應(yīng)維度的取值相同,則f值保持不變,否則f將以一個(gè)較高概率與bestn當(dāng)前位取值相同。
算法對(duì)整個(gè)果蠅群體中的果蠅進(jìn)行一次視覺定位后,若當(dāng)前迭代代數(shù)n小于maxgen+1,則n自加1,返回嗅覺隨機(jī)搜索,重新開始新的迭代。否則算法運(yùn)行結(jié)束,輸出hisbest,最后依據(jù)hisbest求最優(yōu)組播樹和組播樹開銷:
設(shè)hisbest位置為lhisbest=[lhisbest,1,lhisbest,2,lhisbest,3,…,lhisbest,k]?;诰W(wǎng)絡(luò)拓?fù)鋑=(v,e),設(shè)ehisbest={
本算法的結(jié)束條件不限于最大迭代代數(shù)maxgen,也可以通過擬定hisbest的味道濃度值閾值來作為結(jié)束算法的條件。
下面通過上述本發(fā)明一種基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法與基于遺傳算法的帶寬約束組播路由優(yōu)化方法進(jìn)行四個(gè)場景的仿真對(duì)比,由此說明本發(fā)明基于果蠅優(yōu)化算法的帶寬約束組播路由優(yōu)化方法對(duì)于解決帶寬約束組播路由問題具有更高的收斂速度,并獲得了代價(jià)更小的組播樹。
基于遺傳算法的帶寬約束組播路由優(yōu)化方法基本步驟如下:
(1)基于網(wǎng)絡(luò)拓?fù)鋑=(v,e),初始化遺傳算法中群體規(guī)模m。初始化群體c={c1,c2,…,cm},生成所有個(gè)體,每個(gè)個(gè)體均具有染色體基因型和適應(yīng)度值兩個(gè)屬性。初始化最大迭代代數(shù)maxgen、交叉概率cpro、變異概率vpro,令當(dāng)前迭代代數(shù)n=1。初始化一個(gè)歷史最優(yōu)染色體hisbest,使其適應(yīng)度值為0。
(2)評(píng)估每個(gè)每個(gè)染色體的適應(yīng)度值。
(3)對(duì)整個(gè)種群進(jìn)行選擇操作。
(4)對(duì)整個(gè)種群按照交叉概率進(jìn)行交叉操作。
(5)對(duì)整個(gè)種群中的m個(gè)個(gè)體按照變異概率進(jìn)行變異操作。
(6)評(píng)估每個(gè)每個(gè)染色體的適應(yīng)度值,挑選出當(dāng)代具有最大適應(yīng)度的個(gè)體bestn,若bestn的適應(yīng)度大于hisbest,則hisbest被bestn替換。
(7)若n<maxgen+1,則n=n+1,轉(zhuǎn)到(3),否則退出循環(huán)輸出hisbest,利用hisbest計(jì)算組播樹。
遺傳算法也是迭代循環(huán)算法,在此主要說明遺傳算法的編碼方案、適應(yīng)度評(píng)估、選擇、交叉、變異和計(jì)算組播樹等操作的實(shí)現(xiàn)方法。
本專利所采用的遺傳算法編碼方案和果蠅優(yōu)化算法是一致的,都采用0-1編碼,只是果蠅優(yōu)化算法描述的是各維度取值,遺傳算法描述的是各基因位取值,如某個(gè)個(gè)體ci的染色體可描述為[g1,g2,…,gk],其中i={1,2,…,m},基因位gj(j={1,2,…,k})只能取值0或1。
遺傳算法的個(gè)體適應(yīng)度評(píng)估操作方法與果蠅優(yōu)化算法的個(gè)體味道濃度判定方法是一致的,只需要把味道濃度評(píng)估的位置向量換成遺傳算法個(gè)體的染色體即可。味道濃度和適應(yīng)度只是名稱不一樣,其本質(zhì)是一樣的。
選擇操作由子操作組成。其中子操作為:在m個(gè)個(gè)體中隨機(jī)選擇兩個(gè)個(gè)體比較適應(yīng)度值,復(fù)制適應(yīng)度較高的那個(gè)個(gè)體進(jìn)行保留。子操作重復(fù)進(jìn)行m次,則共保留出m個(gè)新個(gè)體。然后將原來的種群丟棄,這m個(gè)新個(gè)體組成新種群代替原來的種群。
交叉操作方法為種群中兩兩個(gè)體隨機(jī)組合,按照交叉概率cpro隨機(jī)選點(diǎn)進(jìn)行單點(diǎn)交叉。
變異操作方法為種群中每個(gè)個(gè)體的每個(gè)染色體基因位按照變異概率vpro進(jìn)行變異,變異即基因位取值0-1取反。
應(yīng)用hisbest計(jì)算組播樹的操作與果蠅優(yōu)化算法是一致的。
在以下四個(gè)場景中,每條邊生成一個(gè)實(shí)數(shù)區(qū)間(0,10)上的隨機(jī)數(shù)來量化邊的開銷,以概率0.01決定邊的帶寬為4mb/s,否則為6mb/s。
場景一:
拓?fù)涔?jié)點(diǎn)數(shù):50,邊數(shù):134,請(qǐng)求服務(wù)的源節(jié)點(diǎn):0,目的節(jié)點(diǎn):[25,34,38,12,19,13,8,46,31],帶寬約束:5mb/s。遺傳算法:種群規(guī)模為20,迭代代數(shù)100。果蠅優(yōu)化算法:群體規(guī)模為20,迭代代數(shù)100。
場景二:
拓?fù)涔?jié)點(diǎn)數(shù):100,邊數(shù):260,請(qǐng)求服務(wù)的源節(jié)點(diǎn):16,目的節(jié)點(diǎn):[47,36,7,77,57,12,14,50,59,87,69,13],帶寬約束:5mb/s。遺傳算法:種群規(guī)模為20,迭代代數(shù)100。果蠅優(yōu)化算法:群體規(guī)模為20,迭代代數(shù)100。
場景三:
拓?fù)涔?jié)點(diǎn)數(shù):150,邊數(shù):352,請(qǐng)求服務(wù)的源節(jié)點(diǎn):128,目的節(jié)點(diǎn):[121,103,4,18,91,89,95,8,76,43,53,133,46],帶寬約束:5mb/s。遺傳算法:種群規(guī)模為20,迭代代數(shù)100。果蠅優(yōu)化算法:群體規(guī)模為20,迭代代數(shù)100。
場景四:
拓?fù)涔?jié)點(diǎn)數(shù):200,邊數(shù):524,請(qǐng)求服務(wù)的源節(jié)點(diǎn):190,目的節(jié)點(diǎn):[12,113,121,101,6,167,15,37,175,73,169,195,157,104],帶寬約束:5mb/s。遺傳算法:種群規(guī)模為20,迭代代數(shù)100。果蠅優(yōu)化算法:群體規(guī)模為20,迭代代數(shù)100。
算法比較結(jié)果:
本發(fā)明與在四個(gè)場景中都各自運(yùn)行10次,結(jié)果取平均值。
四個(gè)場景中組播樹平均開銷、方差、算法用時(shí)等對(duì)比統(tǒng)計(jì)結(jié)果如表1所示。
表1
表1和圖3-10中的ga表示基于遺傳算法的帶寬約束組播路由優(yōu)化方法,ffo為本發(fā)明采用的方法。圖11-14網(wǎng)絡(luò)拓?fù)渲刑摼€代表鏈路帶寬不滿足組播請(qǐng)求的帶寬約束。圖3-圖6的縱坐標(biāo)平均開銷為組播樹平均開銷,橫坐標(biāo)為迭代次數(shù)。圖7-圖10的縱坐標(biāo)歷史最低開銷為組播樹歷史最低開銷,橫坐標(biāo)為迭代次數(shù)。
通過以上表1以及圖3-圖10對(duì)比,以及圖11-14。在種群(群體)規(guī)模和迭代代數(shù)相同的情況下,本發(fā)明所采用的果蠅優(yōu)化算法比遺傳算法具有更高的收斂速度,并獲得了代價(jià)更小的組播樹,且算法較穩(wěn)定,不會(huì)增加耗時(shí),充分說明本發(fā)明所采用的果蠅優(yōu)化算法的高效性。