水声协作通信网络中运用人工鱼群算法寻找路由的方法与流程

文档序号:16890814发布日期:2019-02-15 23:02阅读:348来源:国知局
水声协作通信网络中运用人工鱼群算法寻找路由的方法与流程

本发明涉及水下通信,尤其是涉及水声协作通信网络中运用人工鱼群算法寻找路由的方法。



背景技术:

随着科学技术的高速发展,能源消耗日益成为人们关注的重点。由于陆地资源被不断开发,人们逐渐将目光转向海洋资源的发掘。而与海洋息息相关的水声通信,也因此从最初的军事领域的应用逐渐拓展至民用领域,不断迎来新的机会和挑战。一方面,由于水下传感器网络节点能量供给有限,而传感器网络的生存时间却要求长达数月甚至数年,故高效低功耗的水下传感器路由选择变得尤其重要。如何提高能量效率和选择高效的路由协议成为了水下传感器网络路由协议的研究重点。对于水声协作网络的路由选择,其水下传感器网络的网络拓扑结构是动态变化的,即在多跳协作网络中,源节点s和目的节点d之间的节点既可能作为中继节点r也可能作为协作节点c。由于节点的选取和区分是水声协作网络研究的关键,对系统性能有着极大的影响,故在考虑协作节点c的前提下快速选择出中继节点r得到能耗最小的路径即为当前研究重点。另一方面,近年来,基于物理学、人工智能和生物学的优化算法逐渐兴起,为多领域问题提供了有效的解决方法,例如遗传算法(ga)、蚁群算法(aco)、模拟退火算法(sa)等等,在水声协作通信网络路由选择上应用前景广阔(李晓磊,钱积新.基于分解协调的人工鱼群优化算法研究[j].电路与系统学报,2003,8(1):1-6)。目前,优化算法大多应用于旅行商路径规划问题,而对于水声协作通信网络的路由选择,在考虑中继节点r的同时也考虑协作节点c、最终选出包含r和c的最优路径,相关研究还较少。

在各类优化算法中,人工鱼群算法(afsa)具有并行性、简单性、全局性、快速性等优点,得到了各领域广泛运用的同时也被不断改善。李晓磊等人(李晓磊,路飞,田国会,钱积新.组合优化问题的人工鱼群算法应用[j].山东大学学报(工学版),2004,34(5):64-67)于2004年提出了人工鱼群算法在组合优化问题上的应用,通过改进算法中人工鱼的状态、人工鱼之间距离、领域等概念的定义,最终以旅行商问题(tsp)为例成功进行了仿真测试。仿真结果证明了算法处理组合优化问题时具有收敛速度快、在精度要求不高的环境下能快速得到可行解、不需要目标问题的精确描述等优点。在此之后,朱命昊等人(朱命昊,厍向阳.求解旅行商问题的改进人工鱼群算法[j].计算机应用研究,2010,27(10):3734-3736)提出了一种改进人工鱼群算法解决旅行商问题,并且加入了状态转移概率和轮盘赌选择策略进行最优解码,加快了人工鱼的寻优速度。马宪民等人(马宪民,刘妮.自适应视野的人工鱼群算法求解最短路径问题[j].通信学报,2014,(1):1-6)在使用人工鱼群算法解决旅行商问题时则从调整人工鱼的参数上着手,提出了自适应视野的概念,通过将人工鱼个体的参数visual由常数改变为特定的函数,减少算法计算量的同时,收敛速度快而且更加准确和稳定。然而,以上研究均只是针对传统的旅行商问题展开研究,相比之下,水声协作通信网络的路由选择问题,由于加入了协作节点的选取,中继节点和协作节点个数是不确定的,因此也更加复杂。

人工鱼群算法由于具有优越的跳出局部极值、找出全局极值的能力,为水声协作通信网络的路由选择提供了新思路,通过适当改进人工鱼群算法在解决旅行商(tsp)问题上的基本应用,便可将其应用于寻找中继节点r和协作节点c的水声协作通信网络路由寻优问题上,从而得到一个全新的、能耗低、收敛速度快的水声协作通信网络路由寻优算法。



技术实现要素:

本发明的目的在于针对水声多跳通信的必要性以及水声多跳通信系统能量供应的难题,提供利用人工鱼群算法在旅行商问题上的基本应用的改进,将其应用于寻找中继节点r和协作节点c的水声协作通信网络路由寻优问题上,从而得到一个全新的、能耗低、收敛速度快的水声协作通信网络中运用人工鱼群算法寻找路由的方法。

本发明包括以下步骤:

1)将备选路由节点编号并计算任意两节点(节点i和节点j)之间的距离;设di,j表示任意两相邻节点的通信距离;r1表示节点i和节点j之间是否需要协作节点c参与的距离阈值下限,即di,j小于该下限值时节点j无需协作节点c即可成功解码来自节点i的信息;r2表示节点i和节点j之间的距离阈值上限,即di,j大于该上限值时节点j无论协作节点c是否存在均无法成功解码来自节点i的信息;而当di,j大于r1且小于r2时,若节点j无法准确解码出来自节点i的信息,则需要节点c的协作,利用来自协作节点c和节点i的信息量进行解码;

进行人工鱼的初始化操作,确定人工鱼状态,并排除不符合di,j<r2条件的人工鱼,并重新生成一种人工鱼状态信息,直至满足di,j<r2;每条人工鱼的状态信息定义为所有节点排列中的一种(即任意一种节点路由顺序),排列随机生成,一种排列对应一条人工鱼;

2)将人工鱼个体表示为x=(x1,x2,…,xn),其中,xα为寻优变量,α=1,...,n,人工鱼所在位置的食料浓度为y=f(x),其中,y为目标函数值(食料浓度越高代表该人工鱼状态下的能耗值越低),人工鱼的感知距离表示为visual,人工鱼移动的步长表示为step,拥挤度因子表示为δ,人工鱼α和人工鱼β之间的距离表示为lα,β;

3)任选一条未经判定的人工鱼,根据节点间的距离计算出该人工鱼状态信息下的系统总能耗,若需协作节点参与,则该人工鱼状态信息下的系统总能耗为各中继节点及其对应的协作节点所需的能耗之和,并对人工鱼状态进行行为判定;

在步骤3)中,考虑协作节点参与与否的人工鱼状态k的能耗计算公式为:

yk,c=[r,c,energy](1)

其中,r为状态k下所需的中继节点组成的矩阵,c为状态k下的每一跳所需的协作节点组成的矩阵,若不存在协作节点则c为空矩阵,energy为该状态下的能量消耗值。energy可具体表示为:

energy=∑lkij(2)

式中,lkij表示一条鱼的状态中节点i和节点j之间的能耗,d1为节点i和节点j之间的距离,d2为协作节点c和节点j之间的距离,u(d1)和u(d2)表示d1和d2通信距离条件下对应的水声通信能耗模型;

在步骤3)中,所述行为判定,可判定是否依次进行追尾、聚群、觅食三种行为:

(1)追尾行为:设人工鱼的当前状态为xα,通过感知距离判断当前领域内伙伴(即di,j<visual)中yβ最大的伙伴,若满足yβ/nf>δyα,nf为当前领域内伙伴数目,则表明伙伴所在位置xβ处的食料浓度比当前位置xα处的食料浓度更高并且周围不太拥挤,人工鱼xα则朝着伙伴xβ移动一步,否则执行觅食行为;

(2)聚群行为:设人工鱼当前状态为xα,通过感知距离判断当前领域内伙伴(即di,j<visual),得出伙伴数目nf和中心位置xc,若yc/nf>δyα,则说明伙伴中心的食料浓度相比当前位置xα的食料浓度更高并且不拥挤,因此向伙伴中心位置移一步,否则进行觅食行为;

(3)觅食行为:设人工鱼当前状态为xα,在感知距离内随机选择一个状态xβ,将对应的yβ与xα状态下的yα进行对比,若yβ大于yα,则向xβ状态走一步,否则重新选择状态xβ;觅食行为需设置试探次数(trynumber),若大于试探次数时,xα仍未选择到满足yβ大于yα条件对应的xβ,则随机走一步,以防止进入死循环。

4)若可进行追尾行为,则跳出行为判断,同时更新追尾后的人工鱼的能耗,并与当前迭代得到的最低能耗参数值比较,若人工鱼当前的能耗值小于当前迭代得到的最低能耗值,则选择人工鱼当前的能耗值作为最低能耗值,并更新追尾行为后得到的人工鱼状态;

5)若无法进行追尾行为,则尝试依次进行聚群、觅食两种行为,同时按照依次对比能耗值的方法,取当前能耗值与已记录的最低能耗值中相对更低者作为最低能耗值,跳出行为判断并更新最低能耗值;

6)所有人工鱼完成一次行为判决后,得到的最低能耗值即为本次迭代的最佳能耗值,输出本次迭代的最佳能耗值;

7)重复迭代步骤3)~步骤6)至设定的最大迭代次数,输出最佳能耗值对应的人工鱼状态,即为选定的路由结果。

本发明可以有效降低水声数据传输系统的能量消耗,进而降低水声数据传输系统的整体代价。

本发明考虑到水声多跳通信的必要性以及水声多跳通信系统能量供应的难题,本发明拟利用人工鱼群算法寻找全局最优的能力,为水声多跳协作通信网络进行路由选择,从而得到一种使得系统总能耗最低的路由线路。同时对利用人工鱼群算法寻找无协作节点路线及有协作节点路线并进行了对比研究。

本发明具有以下突出优点:

1)在水声多跳协作通信网络中采用人工鱼群算法寻找路由的方法,对节点间能耗进行了对比,可以得出使系统能耗更低的节点路由选择方案;

2)在水声多跳协作通信网络中采用采用追尾行为、聚群行为、觅食行为依次判断,可以跳出局部最优,得到全局最优,即使得整个系统能耗最低的节点路由选择方案。

附图说明

图1为中继节点与协作节点范围条件示意图。

图2为协作节点的选择示意图。

图3为随机节点的坐标分布。

图4为无协作策略最优路径图。

图5为无协作节点次优路径图。

图6为能量消耗值随迭代次数变化图。

图7为有协作策略最优路径图。

具体实施方式

下面结合附图和具体实施例对本发明做详细描述。

如图1所示,本发明实施例包括以下步骤:

1)将备选路由节点编号并计算任意两节点间的距离,同时进行人工鱼的初始化操作,每条人工鱼的状态信息定义为所有节点排列中的一种(即任意一种节点路由顺序),排列随机生成,一种排列对应一条人工鱼。例如,人工鱼的状态(1,4,6,18)表示从节点1出发,依次经过节点4、节点6,最后到达节点18;

2)人工鱼个体表示为x=(x1,x2,…,xn),其中,xα(α=1,...,n)为寻优变量,人工鱼所在位置的食料浓度为y=f(x),其中,y为目标函数值(食料浓度越高代表该人工鱼状态下的能耗值越低),人工鱼的感知距离表示为visual,人工鱼移动的步长表示为step,拥挤度因子表示为δ,两条人工鱼个体间的距离表示为di,j;

3)假设两条人工鱼的状态(节点排序)为a={a1,a2,…,an}和b={b1,b2,…,bn},两条鱼之间的距离表示为:

其中,

即,对两条不同人工鱼状态所对应的两条不同路由线路,进行逐跳对比,如遇到同一跳中存在路由节点选择不同的情况,则计数+1(每次对比前,初始值为0);最终得到的总计数即为两条人工鱼之间的距离。通过计算distance(a,b)便可以得出两条人工鱼之间的距离,若距离小于感知visual(具体数值可视实际情况而定),则说明这两条人工鱼互为邻居,可以进行追尾、聚群行为判定。

例如a(1,3,4,18)和b(1,4,6,18),有:

distance(a,b)=2(7)

4)追尾行为:设人工鱼的当前状态为xα,通过感知距离判断当前领域内伙伴(即di,j<visual)中yβ最大的伙伴,若满足yβ/nf>δyα,nf为当前领域内伙伴数目,则表明伙伴所在位置xβ处的食料浓度比当前位置xα处的食料浓度更高并且周围不太拥挤,人工鱼xα则朝着伙伴xβ移动一步,否则执行觅食行为;

5)聚群行为:设人工鱼当前状态为xα,通过感知距离判断当前领域内伙伴(即di,j<visual),得出伙伴数目nf和中心位置xc,若yc/nf>δyα,则说明伙伴中心的食料浓度比当前位置xα的食料浓度更高并且不拥挤,因此向伙伴中心位置移一步,否则进行觅食行为;

其中,中心位置规定如下:

以人工鱼xα为例,fish(t)表示整个视野内的鱼群,fp(cp1,cp2,…,cpq)为视野内鱼群某一条鱼的状态(即节点排列)

center=(most(c11,c21,...,cp1),most(c12,c22,...,cp2),...,most(c1q,c2q,...,cpq))(9)

其中,most函数表示众数的选择,则center即为鱼群fish(t)的中心位置。

6)觅食行为:设人工鱼当前状态为xα,在感知距离内随机选择一个状态xβ,将所对应的yβ与xα状态下的yα进行对比,若yβ大于yα,则向xβ状态走一步,否则重新选择状态xβ。觅食行为需设置试探次数(trynumber),若大于试探次数时,xα仍未选择到满足yβ大于yα条件对应的xβ,则随机走一步,以防止进入死循环;

7)对任意一条人工鱼进行行为判定,根据节点间距离计算出该人工鱼状态信息下的系统总体能耗值,然后判断是否可以依次进行追尾、聚群、觅食三种行为;

8)若可进行追尾行为,则跳出行为判断,同时更新追尾后的人工鱼的能耗值,并与当前迭代得到的最低能耗值比较,若人工鱼当前的能耗值小于当前迭代得到的最低能耗值,则选择人工鱼当前的能耗值作为最低能耗值,并更新追尾行为后得到的人工鱼的状态;

9)若无法进行追尾行为,则尝试依次进行聚群、觅食两种行为,同时按照依次对比能耗值的方法,取当前能耗值与已记录的最低能耗值中相对更低者作为最低能耗值,跳出行为判断并更新最低能耗值;

10)所有人工鱼完成一次行为判决后,得到的最低能耗值即为本次迭代的最佳能耗值,输出本次迭代的最佳能耗值;

11)重复迭代步骤7)~10)至设定的最大迭代次数,输出最佳能耗值对应的人工鱼状态,即为选定的无协作节点路由线路;

12)若将协作节点的路由选择考虑在内,需要将其在选择无协作节点路由算法的基础上进行改进。不带协作节点时,状态k下的能量消耗函数yk表示为:

yk=energy=∑lkij(10)

lkij=u(dij)(11)

式中,lkij表示一条鱼的状态中节点i和节点j之间通信所需的能耗,dij为这两个节点之间的距离,energy表示能量消耗值。u(dij)表示通信距离为dij条件下所对应的水声通信能耗模型,具体为:

其中,γ(f)是吸收系数,单位为db/km。根据不同的传播条件,m的取值不同:m=1适用于表面声道或深海声道,柱面波传播;m=1.5适用于计及海底声吸收时的浅海声传播,柱面波传播;m=2适用于开阔水域,球面波传播。f为频率,单位为khz。f的选择根据最优工作频率与工作距离的经验公式:

带协作节点时,状态k下的能量消耗函数yk,c可表示为:

yk,c=[r,c,energy](15)

其中,r为状态k下所需的中继节点组成的矩阵,c为状态k下的每一跳所需的协作节点组成的矩阵,若不存在协作节点则c为空矩阵,energy为该状态下的能量消耗值。energy可具体表示为:

yk,c=energy=∑lkij(16)

式中,lkij表示一条鱼的状态中节点i和节点j之间的能耗,d1为节点i和节点j之间的距离,d2为协作节点c和节点j之间的距离;r1表示节点i和节点j之间是否需要协作节点参与的距离阈值下限,即小于该下限值时节点j无需协作节点c也可成功解码来自节点i的信息;r2表示节点i和节点j之间是否需要协作节点c参与的距离阈值上限,即大于该上限值时即使存在协作节点c节点j也无法成功解码来自节点i的信息。

如图1所示,中继节点r和协作节点c均需要满足一定距离范围条件,才能够保证信息能够被准确接收和解码。

当距离d1≤r1时,节点j能准确无误地接收并成功解码来节点i的信息,此时不需要节点c的协作,因此式(17)中的λ等于0;当r1<d1≤r2时,若节点j无法准确解码出来自节点i的信息,则需要节点c的协作,利用来自协作节点c和节点i的信息量进行解码,此时式(17)中的λ等于1;而当d1>r2时,由于距离太远,即使有协作节点c的帮助,也无法成功解码出传送的信息。因此,中继节点r的选择必须在半径r2的范围内,同时协作节点c的选择需位于节点i和节点j之间,才能有效地承担协作任务,参与协作解码。

在两个节点之间可能存在多个可协作节点c,如图2所示,s和d周围存在多个节点1~5,但只有节点1~3是可协作节点c,因为节点4和节点5距s或d太远,无法有效承担协作传输的任务。而节点1、节点2和节点3究竟选择哪个节点适合作为s和d之间的协作节点c,则需要通过比较它们分别作为协作节点时,信息传输的能耗大小,取能耗最小的那个作为最优协作节点c。

下面对本发明所述方法的可行性进行计算机仿真验证。

为了对水声协作通信网络进行仿真,如图3所示,随机布置水下传感器节点网络拓扑模型。共18个节点,其中s为源节点,d为目的节点。

两两节点间的距离如表1所示,节点间的距离d(km)设定在[1,13]区间内,其中0<d<2.5:28个;2.5≤d<4:37个;d≥4:88个。

表1

假设水声通信在浅海区域进行,设定能耗模型中m=1.5,声波以柱面波形式传播。距离阈值r1=4km、r2=2.5km,即两节点间需满足距离小于4km才可成功传输数据,当距离小于4km且大于2.5km时,两节点间需要协作节点c的辅助方可成功传输数据,若没有满足条件的协作节点则不能成功传输数据。人工鱼算法的目标函数yk,c已在前部分给出。

算法步骤如下所示:

(1)输入节点坐标,得出节点数citynum,算出满足相邻节点间距离对应条件时(即,小于r2时无协作,小于r1且大于r2时有协作),s、d间所需中继节点数的最小值设为n_min,则最终选出的中继节点数目n_node需满足n_node=(n_min,n_min+1,…,citynum-2)。初始化人工鱼的参数(包括设置为极大值的最低能耗值参数、人工鱼数fishnum、迭代次数max_gen、感知距离visual、拥挤度因子δ),使用循环算法求出任意两节点间距离的矩阵edge(i,j)。

(2)初始化人工鱼:从(citynum-2)个节点中随机选出的n_node个节点作为中继节点(共有种选择),则选出的中继节点及其路由顺序作为一条人工鱼的状态,共进行n次随机选择,得到n条人工鱼的状态x(即x是由n种排列方式构成的矩阵),其中任意一条人工鱼的状态xα(α=1,2,…,n)均满足相邻节点间距离所对应的条件(即,小于r2时无协作,小于r1且大于r2时有协作)。

(4)对任意xα(α=1,2,…,n)时,对一条人工鱼xα进行行为判定,根据edge(i,j)计算出人工鱼xα状态下的能耗,然后判断xα状态下是否可以依次进行追尾、聚群、觅食三种行为,如可进行追尾行为,则跳出行为判断,同时更新追尾后的人工鱼的能耗,并与当前迭代得到的最低能耗值比较,若人工鱼当前的能耗值小于当前迭代得到的最低能耗值,则选择人工鱼当前的能耗值作为最低能耗值,并更新追尾行为后得到的人工鱼的状态xα;如无法进行追尾行为,则依次尝试进行聚群、觅食两种行为,同时按照依次对比能耗值的方法,取当前能耗值与已记录的最低能耗值中相对更低者作为最低能耗值,跳出行为判断并更新最低能耗值。

(5)重复步骤(4),直至该次迭代内n条人工鱼全部判定完成。

(6)所有人工鱼进行完一次行为判决后,输出本次迭代的最低能耗值,即为本次迭代的最佳能耗值。

(7)在完成上述一次行为判决后,所有人工鱼的状态xα都得到了更新;此时,令α=1,重新开始步骤(4)的循环,进行下一次迭代,对新的人工鱼状态xα再进行行为判断,直到达到最大迭代次数max_gen为止。

(8)n_node=n_node+1;返回步骤(2)。

(7)当n_node=citynum-2时的max_gen次迭代完毕后,输出最佳能耗值对应的的人工鱼状态(即全局最优路径)。绘制路径图。

步骤(4)中,人工鱼进行追尾、聚群、觅食三种行为的方法,参考人工鱼的行为描述。

上述仿真过程中,人工鱼状态所表示的排列均为s、d及s、d之间的中继节点,未包含协作节点。

在考虑协作策略的情况下,算法中的能量消耗函数yk,c成为判断生成协作节点双输出函数yk,c=[r,c,energy]。其中,c为当前人工鱼状态下所需要的协作节点矩阵,energy为该状态下的考虑协作策略后的能量消耗值。对于某条人工鱼的状态yk,其中继节点排列中相邻节点i、j(i、j为节点序号)距离小于r1且大于r2时,那么节点序号在i、j之间的节点都可作为协作节点。分别计算不同协作节点选择下的lkij(参照式(16)),选出lkij最小情况下的作为i、j间的协作节点c1,将c1输入矩阵c。

需要说明的是,当初始化人工鱼时,生成的中继节点排列中存在相邻节点间距离小于r1且大于r2的情况,且这两点的节点序号也相邻,意味着没有可选择的协作节点,此时,视为初始化失败,需重新生成人工鱼。

为了验证有协作策略下的能耗优越性,在同等条件下,首先对无协作策略的优化算法进行仿真,仿真平台为matlabr2014a。人工鱼的参数设置为:人工数fishnum=20;迭代次数max_gen=30;感知距离visual=5;拥挤度因子δ=0.8;得到的仿真结果如图4所示。

图4为无协作策略下的最优路径图,算法总耗时17.5196s。

最优路径为:1->3->4->5->7->9->10->12->13->14->16->18,共11跳(一个节点发至下一节点为一跳),最终能耗函数最优值为5724767.0494。由于在无协作策略的情况下,人工鱼状态中相邻节点的距离必须满足小于2.5km,故跳数较多。

同时,在进行无协作策略的算法仿真时,算法有时不能得到最优解,而有一定概率得出如图5所示的次优解。这是由于实际中为降低仿真复杂度,而未选择足够大的人工鱼的数目造成的。

此时,次优路径为:1->3->4->5->7->9->10->12->13->14->17->18,共11跳,最终能耗为5749530.5174。

图6为无协作策略下全部中继节点均选取后能量消耗值随迭代次数变化图。在图6中,目标函数随迭代次数的增加呈阶梯下降趋势,并且开始的收敛速度较快,之后放缓,最终达到平稳值。

加入协作节点策略后,重新设置的人工鱼参数为:人工鱼数量fishnum=10,迭代次数max_gen=20,感知距离visual=3,拥挤度因子δ=0.9。

以某一次使用matlabr2014a平台进行的仿真过程为例:

首先对人工鱼进行初始化随机生成10条人工鱼,人工鱼的状态即为s、d与中继节点的排列,排列中相邻节点已满足距离小于4km条件。考虑人工鱼x1,x1=[1,4,9,13,18](s、d及s、d间中继节点的排列)c=[5,10,12,16](协作节点),energy(x1)=3.9344e+06(该路径下的能耗)进行行为。(行为判断优先级为追尾>聚群>觅食)首先判定追尾行为,找到x1感知距离内的邻居并比较出energy最小的邻居:x5=[1,5,10,13,18],c=[4,9,12,16],energy(x5)=3.0714e+06。判断发现满足energy(x5)/nf>δenergy(x1)条件后,flag1=1,即追尾行为成功。x1的状态更新为x1=[1,5,10,13,18],c=[4,9,12,16],y1=3.0714×106。更新最佳能耗besty=3.0714×106,最佳路径bestpath=[1,5,10,13,18],协作节点bestc=[4,9,12,16]。一条鱼的行为判定结束。

判定完10条鱼的行为后,第一次迭代结束,更新本次迭代最优值。达到最大迭代次数后,程序结束,得出全局最优值。

图7为最优路径图,最优路径为:1->5->10->13->18,共4跳。最优能耗值为3071395.5877。运行时间为65.844s。图中实线部分即为s、d以及两者间中继节点的传输路线。图中的虚线为协作路线,协作节点共有4个。其中,节点4为源点s与节点5之间的协作节点;节点9为节点5、节点10之间的协作节点;节点12为节点10、节点13之间的协作节点;节点16为节点13、节点18之间的协作节点。算法在选择协作节点时,以协作节点16为例:由于节点13和节点18之间的距离大于2.5km小于4km,故需要协作节点方可成功进行信号传输。节点14、节点15、节点16、节点17均可选为协作节点,通过计算对比发现节点16作为协作节点时,能耗函数最小,因此最终将节点16选作节点13和节点18之间的协作节点。

对比无协作策略下的算法仿真,有协作策略下的能耗最优值降为无策略下能耗最优值的60%,但由于有协作策略的算法在使用yk,c=[r,c,energy]子函数选择协作节点时,增加了算法的随机性,故其取得最优的时间较无协作策略情况下延长了两倍。

本发明利用人工鱼群算法,在节点数目固定、源节点和目的节点位置确定的条件下,寻找使得系统总能耗最低的路由;将备选节点编号并计算任意两节点间的距离,同时进行人工鱼的初始化操作,并根据任意两节点间的距离与是否需要协作节点的距离阈值上下限进行对比,判断是否需要协作节点;每条人工鱼的状态信息即为所有节点排列中的一种,排列随机生成;对任意一条人工鱼进行行为判定,根据节点间距离计算出该人工鱼状态信息下的能耗,若需协作节点参与,则该人工鱼状态信息下的能耗为各中继节点及其对应的协作节点所需的能耗之和,然后判断是否可以依次进行追尾、聚群、觅食三种行为,如可进行追尾行为,则跳出行为判断,同时更新追尾后的人工鱼的能耗,与记录的最低能耗参数比较,取当前能耗值与已记录的最低能耗值中相对更低者作为新的最低能耗值,并更新追尾行为后得到的人工鱼的状态;如无法进行追尾行为,则依次尝试进行聚群、觅食两种行为,同时按照依次对比能耗值的方法,取当前能耗值与已记录的最低能耗值中相对更低者作为最低能耗值,跳出行为判断并更新最低能耗值;所有人工鱼进行完一次行为判决后,输出本次迭代的最低能耗值,即为本次迭代的最佳能耗值;重复迭代上述步骤至设定的最大迭代次数,输出全局最优的人工鱼状态,即为选定的路由方案;本发明利用人工鱼群算法解决水声协作通信网络的路由选择问题,降低了水声协作通信网络能耗、提高了通信效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1