本发明实施例涉及通信技术,尤其涉及一种基于蚁群算法的自组网路径确定方法、装置、设备及介质。
背景技术:
自组网是一种移动通信和计算机网络相结合的网络,网络的信息交换采用计算机网络中的分组交换机制。自组网具有无中心、自组织、可快速展开,节点可移动和多跳等特点。在目前提出的路由算法中基于簇的路由协议是最有效和可扩展的算法。成簇的基本思想是把网络分为“簇”,每个“簇”有一个“簇首”和若干个普通节点,簇首与网关连接构成了簇与簇间连通的主干。
一般情况下,一个簇中的节点与另一个簇中的节点的通信路径有多条,每条路径经过的簇不同、节点也不同,目前,一般选择地理上距离较短的路径。但是,地理上的距离不能决定网络的服务质量,导致选择的路径可能不具有较佳的服务质量。
技术实现要素:
本发明实施例提供一种基于蚁群算法的自组网路径确定方法、装置、设备及存储介质,以确定服务质量最优的路径。
第一方面,本发明实施例提供了一种基于蚁群算法的自组网路径确定方法,
包括:
获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,其中,所述源节点和所述目的节点位于不同簇内;
根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子;
令m只蚂蚁从所述源节点出发,根据信息素浓度和所述启发因子确定下一节点,直至到达所述目的节点,m为自然数;
根据m只蚂蚁经过的路径的路径质量信息,更新所述信息素浓度;
返回执行令m只蚂蚁从源节点出发到达目的节点的步骤,直到迭代次数达到次数阈值或者大于等于预设数量的蚂蚁经过的路径相同。
第二方面,本发明实施例还提供了一种基于蚁群算法的自组网路径确定装置,包括:
获取模块,用于获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,其中,所述源节点和所述目的节点位于不同簇内;
计算模块,用于根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子;
确定模块,用于令m只蚂蚁从所述源节点出发,根据信息素浓度和所述启发因子确定下一节点,直至到达所述目的节点,m为自然数;
更新模块,用于根据m只蚂蚁经过的路径的路径质量信息,更新所述信息素浓度;
返回模块,用于返回执行令m只蚂蚁从源节点出发到达目的节点的步骤,直到迭代次数达到次数阈值或者大于等于预设数量的蚂蚁经过的路径相同。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一实施例所述的基于蚁群算法的自组网路径确定方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的基于蚁群算法的自组网路径确定方法。
本发明实施例中,通过获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,为后续确定路径提供数据基础;通过根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子;令m只蚂蚁从源节点出发,根据信息素浓度和启发因子确定下一节点,直至到达目的节点;根据m只蚂蚁经过的路径的路径质量信息,更新信息素浓度;返回执行令m只蚂蚁从源节点出发到达目的节点的步骤,直到迭代次数达到次数阈值,或者大于等于预设数量的蚂蚁经过的路径相同,从而确定更符合自组网的最优路径,提高路径的qos服务质量。
附图说明
图1a是本发明实施例一提供的一种基于蚁群算法的自组网路径确定方法的流程图;
图1b是本发明实施例一提供的第一条路径的示意图;
图1c是本发明实施例一提供的第二条路径的示意图;
图2是本发明实施例二提供的一种基于蚁群算法的自组网路径确定方法的流程图;
图3a是本发明实施例三提供的一种基于蚁群算法的自组网路径确定方法的流程图;
图3b是本发明实施例三提供的多条路径和节点间的路径质量信息的示意图;
图3c是本发明实施例三提供的最优路径的示意图;
图4是本发明实施例四提供的一种基于蚁群算法的自组网路径确定装置的结构示意图;
图5是本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1a是本发明实施例一提供的一种基于蚁群算法的自组网路径确定方法的流程图,本实施例可适用于在基于簇的路由协议的多级自组网中选择质量最优的路径的情况,该方法可以由基于蚁群算法的自组网路径确定装置来执行,该装置可以由硬件和/或软件构成,并一般集成在电子设备中。结合图1a,该方法具体包括如下步骤:
s110、获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,其中,源节点和目的节点位于不同簇内。
从源节点到目的节点的路径有多条,每条路径上的节点与簇不完全相同。例如在图1b中,源节点位于簇a,目的节点位于簇b,第一条路径(用粗实线标出)依次经过簇a、簇c和簇b;又例如在图1c中,源节点位于簇a,目的节点位于簇b,第二条路径(用粗实线标出)依次经过簇a、簇c、簇d和簇b。本发明实施例旨在确定从源节点到目的节点之间经过哪些簇,以及哪些簇中的哪些节点,从而找到最优路径。
相邻节点之间的路径质量信息指从前一节点到后一节点的路径质量信息,路径质量信息可用于表征网络服务质量(qualityofservice,qos)。网络服务质量越高,对应的相邻节点间的路径被选中的概率应越高,从而选中的路径的网络服务质量越高。
值得说明的是,如果源节点和目的节点位于同一簇内,可以采用主动式路由得到簇内的最优路径,无需采用蚁群算法。本实施例中,源节点和目的节点位于不同簇内,无法通过主动式路由得到最优路径,则采用本实施例提供的蚁群算法得到最优路径。
s120、根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子。
本实施例,采用蚁群算法从多条路径中确定网络qos最优的路径。
现有的蚁群算法大致包括以下步骤:1)蚂蚁在路径上释放信息素。2)碰到还没走过的路口,就随机挑选一条路走。同时释放与路径长度有关的信息素。3)信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高且能见度较高的路径,能见度由启发因子得到。4)最优路径上的信息素浓度越来越大。5)最终蚁群找到最优路径。这种蚁群算法中,一般根据两个节点之间的距离的倒数作为启发因子,但对于自组网路由来说,不管是节点与节点之间,还是簇与簇之间不存在这种地理上的距离的概念,地理上的距离决定不了网络的路径质量;而且,假设节点间的距离为1跳,则启发因子为定值1,会导致蚁群算法很快就会陷入局部最优解,不能达到全局最优解。
基于上述分析,本实施例根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子,从而使蚁群受到路径质量信息的影响,选择服务质量较佳的路径,同时,避免陷入局部最优解。
可选地,路径质量信息包括但不限于信道质量指示(channelqualityindication,cqi),代表当前信道质量的好坏,与信道的信噪比大小相对应,取值范围0~15。相邻节点之间的路径质量信息越大,说明路径的质量越高,选择该路径的概率应越大。基于此,将启发因子应用到具有优化能力的蚁群算法中,能够计算出更符合自组网的最优路径,从而提高路由的qos服务质量。
值得说明的是,相邻两节点之间的路径质量信息通过节点之间的数据帧反馈,节点之间的路径质量信息的值域与启发因子的理想值域一般不同。例如cqi的值域为0~15,启发因子的理想值域一般为0~5,导致不能达到算法的最优效果,所以将路径质量信息进行极大值归一化处理。基于此,根据公式
s130、令m只蚂蚁从源节点出发,根据信息素浓度和启发因子确定下一节点,其中,m为自然数。
以蚂蚁x为例,初始时,从与源节点的相邻节点中,确定下一节点,依次类推,直至蚂蚁x到达目的节点。在蚂蚁行进的过程中,规定不能走“回头路”,避免蚂蚁原地转圈,为每只蚂蚁设置禁忌表。禁忌表存储对应的蚂蚁经过节点的节点号,包括当前节点的节点号。禁忌表体现了蚂蚁的记忆性,使得蚂蚁不会走重复道路,提高了确定最优路径的效率。
在第一次迭代时,相邻节点之间的信息素浓度为自定义的初始值,可选地,各相邻节点之间的信息素浓度均相同。在后续迭代时,信息素浓度将不断被更新,继而,采用更新后的信息素浓度确定下一节点。在历次迭代中,启发因子不变化。
s140、判断m只蚂蚁是否到达目的节点,如果是,即m只蚂蚁到达目的节点,跳转到s150,如果否,即存在未达到目的节点的蚂蚁,跳转到s160。
如果m只蚂蚁均到达目的节点,说明本次迭代完成。如果存在未达到目的节点的蚂蚁,继续确定下一节点。
s150、判断是否达到次数阈值,或者大于等于预设数量的蚂蚁经过的路径相同。如果是,即达到次数阈值,或者大于等于预设数量的蚂蚁经过的路径相同,执行s180;如果否,即未达到次数阈值,且不存在大于等于预设数量的蚂蚁经过的路径相同,执行s170。
可选地,次数阈值可以自主设置,例如设置为100次、200次等,原则上,次数阈值越大,得到的路径服务质量越高。
在一些情况下,迭代次数达到次数阈值,如果得到的m条路径无退化行为(即随着迭代的进行,m条路径趋向于相同),具体地,大于等于预设数量的蚂蚁经过的路径相同,则结束迭代,确定最后一次迭代得到的路径;如果迭代次数达到次数阈值,也不存在大于等于预设数量的蚂蚁经过的路径相同,则确定数量最多的蚂蚁经过的路径。
在另一些情况下,迭代次数未达到次数阈值,如果大于等于预设数量的蚂蚁经过的路径相同,则结束迭代,确定最后一次迭代得到的路径;如果迭代次数未达到次数阈值,也不存在大于等于预设数量的蚂蚁经过的路径相同,则继续迭代。
s160、根据信息素浓度和启发因子确定下一节点,返回执行s140。
可选地,将蚂蚁所在的当前节点的节点号添加至禁忌表中,以更新禁忌表。
s170、迭代次数加一,并根据m只蚂蚁经过的路径的路径质量信息,更新信息素浓度,返回执行s130。
可选地,蚂蚁经过的路径的路径质量信息越大,信息素浓度越大。例如,路径的cqi越大,说明路径质量越好,信息素浓度也就越高,引导更多的蚂蚁选择该路径。
s180、结束本次操作。
本实施例中,通过获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,为后续确定路径提供数据基础;通过根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子;令m只蚂蚁从源节点出发,根据信息素浓度和启发因子确定下一节点,直至到达目的节点;根据m只蚂蚁经过的路径的路径质量信息,更新信息素浓度;返回执行令m只蚂蚁从源节点出发到达目的节点的步骤,直到迭代次数达到次数阈值或者大于等于预设数量的蚂蚁经过的路径相同,从而确定更符合自组网的最优路径,提高路径的qos服务质量。
实施例二
图2是本发明实施例二提供的一种基于蚁群算法的自组网路径确定方法的流程图。本实施例在上述实施例的各可选实施方式的基础上进一步优化,可选地,将“根据信息素浓度和启发因子确定下一节点”优化为“根据信息素浓度和启发因子,计算各下一节点的转移概率;对各下一节点的转移概率采用轮盘赌算法,确定下一节点”,从而根据路径质量确定下一节点,并避免陷入局部最优解。可选地,将“根据m只蚂蚁经过的路径的路径质量信息,更新信息素浓度”优化为“根据m只蚂蚁经过的路径的路径质量信息,得到m只蚂蚁在本次迭代中增加的信息素浓度;根据m只蚂蚁在本次迭代中增加的信息素浓度和信息素浓度的挥发度,更新信息素浓度”,从而根据路径质量更新信息素浓度,有利于快速、准确地确定服务质量最优的路径。结合图2,具体包括以下步骤:
s210、获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,其中,源节点和目的节点位于不同簇内。
s220、根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子。
具体地,根据公式
s230、令m只蚂蚁从源节点出发,根据信息素浓度和启发因子,计算各下一节点的转移概率。
其中,各下一节点包括蚂蚁所在的当前节点的相邻节点中除去蚂蚁已经经过的节点。如果当前节点的下一节点只有一个,可不计算转移概率,直接将其作为蚂蚁的下一节点。如果当前节点的下一节点有两个以上,则需要根据信息素浓度和启发因子,计算各下一节点的转移概率。
可选地,根据公式(1)计算t时刻,第k只蚂蚁从第i节点向第j节点的转移概率
其中,
其中,cij(t)为t时刻,第i节点与第j节点之间的信息素浓度,ηij(t)为t时刻,第i节点到第j节点的启发因子,cis(t)为t时刻,第i节点与第s节点之间的信息素浓度,ηis(t)为t时刻,第i节点到第s节点的启发因子,jk(i)为第k只蚂蚁在第i节点时,允许选择的下一节点的节点号集合,
在公式(1)中,由于ηij(t)根据路径质量信息极大值归一化得到,则路径质量信息越大,启发因子越大,使得第k只蚂蚁从第i节点向第j节点的转移概率
s240、对各下一节点的转移概率采用轮盘赌算法,确定下一节点。继续执行s250。
得到各下一节点的转移概率之后,按轮盘赌算法,各下一节点被选中的概率与其适应度函数值(即转移概率)成正比。
可选地,假设当前节点共有v个下一节点。首先,将各下一节点的转移概率除以全部下一节点的转移概率之和,得到各下一节点的选择概率
接着,计算各选择概率的积累概率
然后,在[0,1]内产生一个均匀分布的随机数。将大于等于随机数的、最小的积累概率对应的节点确定为下一节点。
s250、判断m只蚂蚁是否到达目的节点,如果是,即m只蚂蚁到达目的节点,跳转到s260,如果否,即存在未达到目的节点的蚂蚁,跳转到s270。
s260、判断是否达到次数阈值,或者大于等于预设数量的蚂蚁经过的路径相同。如果是,即达到次数阈值,或者大于等于预设数量的蚂蚁经过的路径相同,执行s292;如果否,即未达到次数阈值,且不存在大于等于预设数量的蚂蚁经过的路径相同,执行s290。
s270、根据信息素浓度和启发因子,计算各下一节点的转移概率。继续执行s280。
本步骤详见s230中的相关描述,此处不再赘述。
s280、对各下一节点的转移概率采用轮盘赌算法,确定下一节点,返回执行s250。
本步骤详见s240的相关描述,此处不再赘述。
s290、迭代次数加一,并根据m只蚂蚁经过的路径的路径质量信息,得到m只蚂蚁在本次迭代中增加的信息素浓度。继续执行s291。
s291、根据m只蚂蚁在本次迭代中增加的信息素浓度和信息素浓度的挥发度,更新信息素浓度,返回执行s230。
信息素浓度的更新包括本次迭代中增加的信息度浓度和挥发的信息素浓度。
其中,根据公式(4)更新t时刻,第i节点与第j节点之间的信息素浓度cij(t)。
其中,
其中,θ为信息素浓度的挥发度,cij(t-1)为t-1时刻,第i节点与第j节点之间的信息素浓度,
在公式(4)中,由于lk为第k只蚂蚁在本次迭代中经过路径的路径质量信息,则经过路径的路径质量信息越高,说明经过的路径质量越高,本次迭代中增加的信息素浓度越大,进而第i节点与第j节点之间的信息素浓度cij(t)增加的越多,从而使后续蚂蚁选择本段路径的概率增加,尽快确定质量最优的路径。
s292、结束本次操作。
本实施例中,通过根据信息素浓度和启发因子,计算各下一节点的转移概率,以及对各下一节点的转移概率采用轮盘赌算法,确定下一节点,从而避免陷入局部最优解,更高效地确定最优路径。通过根据m只蚂蚁经过的路径的路径质量信息,得到m只蚂蚁在本次迭代中增加的信息素浓度;根据m只蚂蚁在本次迭代中增加的信息素浓度和信息素浓度的挥发度,更新信息素浓度,从而引导更多的蚂蚁选择网络质量较高的路径,快速确定最优路径。
实施例三
图3a是本发明实施例三提供的一种基于蚁群算法的自组网路径确定方法的流程图。本实施例在上述实施例的各可选实施方式的基础上进一步优化,可选地,将“获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息”优化为“通过源节点向目的节点广播请求包,请求包在广播过程中收集路径信息以及路径上相邻节点之间的路径质量信息;从源节点获取目的节点根据请求包返回的回应包,回应包包括多个请求包中的多条路径的信息以及每条路径上相邻节点之间的路径质量信息”,从而通过回应包,快速、准确地获取多条路径和节点间的路径质量信息,为选择最优线路提供数据基础。结合图3a,具体包括以下步骤:
s310、通过源节点向目的节点广播请求包,请求包在广播过程中收集路径信息以及路径上相邻节点之间的路径质量信息。
可选地,路径信息包括路径上各簇的簇号,此外,还可以包括路径上各个节点的序号以及节点的角色,节点的角色包括簇首节点和普通节点。各簇的簇内相邻节点之间路径质量信息由簇首计算并提供至请求包中。
在一具体实施方式中,在簇内采用主动式路由协议,例如鱼眼状态路由(fisheyestaterouting,fsr)协议,得到簇内子网的拓扑结构。簇内子网的拓扑结构存储在簇内的节点中,包括簇首节点和普通节点。
簇与簇之间采用被动式路由协议,例如,无线自组网按需平面距离向量路由(adhocon-demanddistancevectorrouting,aodv)协议。具体地,簇a中的源节点a1向簇q中的目的节点q1广播rreq请求包,簇a的簇首将根据式(5)计算出的路径质量信息添加到aodv协议的rreq请求包中;然后将rreq请求包广播到邻簇。例如源节点a1可能经过簇a、簇b、簇c、簇d到达簇q中的目的节点q1,源节点a1也可能经过簇a、簇e、簇f、簇g簇h到达簇q中的目的节点q1。在广播过程中,将经过的簇内的相邻节点之间的路径质量信息、簇间相邻节点之间的路径质量信息、经过的节点号和簇号添加到rreq广播包中。
s320、从源节点获取目的节点根据请求包返回的回应包,回应包包括多个请求包中的多条路径的信息以及每条路径上相邻节点之间的路径质量信息。
目的节点q1会接收到多个rreq请求包,每个rreq请求包包括一条路径信息以及该条路径上相邻节点之间的路径质量信息。目的节点q1通过反向路径将多条路径信息以及相邻节点之间的路径质量信息包含在rrep回应包中回复给源节点a1,这样源节点a1就生成一个包含簇a到簇q的全簇路径拓扑结构;同时,源节点a1也得到了到目的节点q1的多条路径,以及每条路径上相邻节点之间的路径质量信息。可选地,多条路径具体包括路径上各簇的簇号,节点号,簇之间的相邻关系等。
从源节点获取目的节点根据请求包返回的回应包,即可得到多条路径以及每条路径上相邻节点之间的路径质量信息。
s330、根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子。
s340、令m只蚂蚁从源节点出发,根据信息素浓度和启发因子确定下一节点,其中,m为自然数。
s350、判断m只蚂蚁是否到达目的节点,如果是,即m只蚂蚁到达目的节点,跳转到s360,如果否,即存在未达到目的节点的蚂蚁,跳转到s370。
s360、判断是否达到次数阈值,或者大于等于预设数量的蚂蚁经过的路径相同。如果是,即达到次数阈值,或者大于等于预设数量的蚂蚁经过的路径相同,执行s390;如果否,即未达到次数阈值,且不存在大于等于预设数量的蚂蚁经过的路径相同,执行s380。
s370、根据信息素浓度和启发因子确定下一节点,返回执行s350。
s380、迭代次数加一,并根据m只蚂蚁经过的路径的路径质量信息,更新信息素浓度,返回执行s340。
s390、结束本次操作。
本实施例中,通过回应包,快速、准确地获取多条路径和节点间的路径质量信息,为选择最优线路提供数据基础。
下面以一具体实施方式,详细说明本发明实施例提供的基于蚁群算法的自组网路径确定方法。如图3b所示,自组网中共存在5个簇,每个簇用虚线圆圈标识。每个簇包括多个节点,每个节点具有唯一的编号,节点之间的连线代表双向通道,连线上的数值表示节点间的路径质量信息,例如cqi值。
本实施例中,每个簇包括多条簇内路径,采用蚁群算法确定簇内路径和簇间路径,从而得到源节点到目的节点之间的最优路径。假设,源节点1所在的簇为1号簇,目的节点25所在的簇为3号簇,则从1号簇至3号簇存在多条路径,需要通过蚁群算法寻找一条最优路径。首先,获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,根据节点之间的各路径质量信息,计算前一节点至后一节点的各启发因子,具体地,将cqi进行极大值归一化,得到启发因子。令m只蚂蚁从源节点1出发,根据信息素浓度和各启发因子确定下一节点,直至到达目的节点25;根据m只蚂蚁经过的路径的路径质量信息,更新所述信息素浓度;返回执行令m只蚂蚁从源节点1出发到达目的节点25的步骤,直到迭代次数达到次数阈值,或者大于等于预设数量的蚂蚁经过的路径相同。如此,得到如图3c中粗实线所示的最优路径。
实施例四
图4是本发明实施例四提供的一种基于蚁群算法的自组网路径确定装置的结构示意图,该装置包括:获取模块41、计算模块42、确定模块43、更新模块44和返回模块45。
获取模块41,用于获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,其中,源节点和目的节点位于不同簇内;
计算模块42,用于根据获取模块41获取的相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子;
确定模块43,用于令m只蚂蚁从源节点出发,根据信息素浓度和计算模块42确定的启发因子确定下一节点,直至到达目的节点,m为自然数;
更新模块44,用于根据确定模块43确定的m只蚂蚁经过的路径的路径质量信息,更新信息素浓度;
返回模块45,用于返回通过确定模块43执行令m只蚂蚁从源节点出发到达目的节点的步骤,直到迭代次数达到次数阈值或者大于等于预设数量的蚂蚁经过的路径相同。
本发明实施例中,通过获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,为后续确定路径提供数据基础;通过根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子;令m只蚂蚁从源节点出发,根据信息素浓度和启发因子确定下一节点,直至到达目的节点;根据m只蚂蚁经过的路径的路径质量信息,更新信息素浓度;返回执行令m只蚂蚁从源节点出发到达目的节点的步骤,直到迭代次数达到次数阈值或者大于等于预设数量的蚂蚁经过的路径相同,从而确定更符合自组网的最优路径,提高路径的qos服务质量。
可选地,计算模块42在根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子时,具体用于:
根据公式
可选地,确定模块43在根据信息素浓度和启发因子确定下一节点时,具体用于:根据信息素浓度和启发因子,计算各下一节点的转移概率;对各下一节点的转移概率采用轮盘赌算法,确定下一节点。进一步地,确定模块43在根据信息素浓度和启发因子,计算各下一节点的转移概率时,具体用于:根据公式
其中,cij(t)为t时刻,第i节点与第j节点之间的信息素浓度,ηij(t)为t时刻,第i节点到第j节点的启发因子,cis(t)为t时刻,第i节点与第s节点之间的信息素浓度,ηis(t)为t时刻,第i节点到第s节点的启发因子,jk(i)为第k只蚂蚁在第i节点时,允许选择的下一节点的节点号集合,
可选地,更新模块44在根据m只蚂蚁经过的路径的路径质量信息,更新信息素浓度时,具体用于:根据m只蚂蚁经过的路径的路径质量信息,得到m只蚂蚁在本次迭代中增加的信息素浓度;根据m只蚂蚁在本次迭代中增加的信息素浓度和信息素浓度的挥发度,更新信息素浓度。进一步地,更新模块44在根据m只蚂蚁在本次迭代中增加的信息素浓度和信息素浓度的挥发度,更新信息素浓度时,具体用于:根据公式
其中,θ为信息素浓度的挥发度,cij(t-1)为t-1时刻,第i节点与第j节点之间的信息素浓度,
可选地,获取模块41在获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息时,具体用于:通过源节点向目的节点广播请求包,请求包在广播过程中收集路径信息以及路径上相邻节点之间的路径质量信息;从源节点获取目的节点根据请求包返回的回应包,回应包包括多个请求包中的多条路径的信息以及每条路径上相邻节点之间的路径质量信息。
本发明实施例所提供的基于蚁群算法的自组网路径确定装置可执行本发明任意实施例所提供的基于蚁群算法的自组网路径确定方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5是本发明实施例五提供的一种电子设备的结构示意图,如图5所示,该电子设备包括处理器50、存储器51;电子设备中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;电子设备中的处理器50、存储器51可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于蚁群算法的自组网路径确定方法对应的程序指令/模块(例如,基于蚁群算法的自组网路径确定装置中的获取模块41、计算模块42、确定模块43、更新模块44和返回模块45)。处理器50通过运行存储在存储器51中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的基于蚁群算法的自组网路径确定方法。
存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例六
本发明实施例六还提供一种其上存储有计算机程度的计算机可读存储介质,计算机程序在由计算机处理器执行时用于执行一种基于蚁群算法的自组网路径确定方法,该方法包括:
获取从源节点到目的节点的多条路径,并获取每条路径上相邻节点之间的路径质量信息,其中,源节点和目的节点位于不同簇内;
根据相邻节点之间的路径质量信息,计算前一节点到后一节点的启发因子;
令m只蚂蚁从源节点出发,根据信息素浓度和启发因子确定下一节点,直至到达目的节点,m为自然数;
根据m只蚂蚁经过的路径的路径质量信息,更新信息素浓度;
返回执行令m只蚂蚁从源节点出发到达目的节点的步骤,直到迭代次数达到次数阈值或者大于等于预设数量的蚂蚁经过的路径相同。
当然,本发明实施例所提供的一种其上存储有计算机程度的计算机可读存储介质,其计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的基于蚁群算法的自组网路径确定方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-omlymemory,rom)、随机存取存储器(ramdomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述基于蚁群算法的自组网路径确定装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。