一种基于改进的蚁群算法的网络路由规划方法和系统
文献发布时间:2024-04-18 19:57:31
技术领域
本发明属于路由规划技术领域,具体涉及基于多因素智能生物搜索算法的路由寻优。
背景技术
网络路由寻优是根据网络拓扑结构、节点位置和业务需求等条件,在满足网络性能、可靠性和可扩展性要求的前提下找到最优路由。然而,光纤网络规划是一种复杂的组合优化问题,常规的路由寻优方法计算复杂度高,并且容易陷入局部最优解和收敛速度慢等问题,导致效率低下。
发明内容
为了解决上述问题本发明提出了一种基于改进的蚁群算法的网络路由规划方法和系统,利用启发式算法在栅格地图上搜索一个有效路由作为蚁群算法的初始信息素设置,使得蚁群能够更快速地搜索出可行路由,进一步提升算法性能,并在处理复杂场景时表现更佳。
实现本发明目的之一的一种基于改进的蚁群算法的网络路由规划方法,包括如下步骤:
S1、根据两个网络节点间的距离、网络节点与目标节点的距离、以及网络节点的载荷计算每只蚂蚁从当前网络节点移动到每一个可能的下一网络节点的转移概率;所述网络节点的载荷用于表示该节点的网络拥塞度;
蚁群算法的所有蚂蚁在待规划路由的网络起始节点出发;根据转移概率选择下一网络节点,直至完成首次搜索;
S2、根据总损失值计算网络节点所在路由的信息素增量;所述总损失值用于表示蚂蚁所经过的网络路由上的网络设备所在节点的个数、完成一次路由搜索所遍历的节点的载荷总值和路由总长;所述信息素增量用于计算所述转移概率;
S3、当搜索次数到达设定上限或多次连续搜索后所有蚂蚁的搜索路由一致时,则得到从起始节点到目标节点的全局最优的纤路路由;否则根据所述信息素增量和上一次迭代时的节点间的信息素更新节点间的信息素,根据更新后的节点间的信息素计算所述转移概率,根据转移概率开始新一轮搜索,当新一轮搜索完成后返回步骤S2。
实现本发明目的之二的一种基于改进的蚁群算法的网络路由规划系统,包括转移概率计算模块、蚁群初始化模块、信息素增量计算模块、转移概率更新模块和最优网络路由判断模块;
所述转移概率计算模块用于根据两个网络节点间的距离、网络节点与目标节点的距离、以及纤路网络节点的载荷计算每只蚂蚁从当前网络节点移动到每一个可能的下一网络节点的转移概率;
所述蚁群初始化模块用于初始化蚁群算法中的所有蚂蚁从待规划路由的网络的起始节点出发;根据转移概率和设定的节点间的信息素浓度选择下一网络节点,直至完成首次搜索;所述网络节点间的信息素浓度用于引导蚂蚁进行网络路由搜索;
所述信息素增量计算模块用于根据总损失值计算纤路网络节点所在路由的信息素增量;
所述转移概率更新模块用于根据所述信息素增量和上一次迭代时的节点间的信息素更新节点间的信息素,根据更新后的节点间的信息素计算所述转移概率;
所述最优网络路由判断模块用于判断当前得到的路由是否为最优网络路由,当搜索次数到达设定上限或多次连续搜索后所有蚂蚁的搜索路由一致,则得到从起始节点到目标节点的全局最优的网络路由。
遇到当前路由不为最优网络路由时,则调用转移概率更新模块对节点间的转移概率进行更新,将所有蚂蚁从待规划路由的网络的起始节点出发,根据转移概率进行下一轮迭代。
有益效果:
1、引入节点间的载荷值计算转移概率可以使搜索出来的网络路由更优;
2、通过设置多因素损失值函数来分别描述网络路由规划中的实际路由长度代价、节点接入的载荷成本和路由接入的网络业务的数量,由此将路由规划问题转化为多目标优化问题,通过这些多因素约束来得到一个路由上最短,遍历节点数相对较少,路由负载相对较低的多方面优化网络路由;
3、考虑到在实验中自适应的挥发因子是随着多因素的迭代变化是不断减小的,给挥发因子设置一个上下限值,可以防止因为挥发因子过小导致算法的搜索停滞。
附图说明
图1是本发明所述方法的实施例;
图2是本发明所选启发式方法搜索得到的局部最优路由;
图3是通过本发明所述方法得到的最终全局网络最优路由。
具体实施方式
下列具体实施方式用于对本发明权利要求技术方案的解释,以便本领域的技术人员理解本权利要求书。本发明的保护范围不限于下列具体的实施结构。本领域的技术人员做出的包含有本发明权利要求书技术方案而不同于下列具体实施方式的也是本发明的保护范围。
S1、根据两个网络节点间的距离、网络节点与目标节点的距离、以及网络节点的载荷计算每只蚂蚁从当前网络节点移动到每一个可能的下一网络节点的转移概率;所述网络节点的载荷用于表示该节点的网络拥塞度;
通过路由转移概率来确定蚂蚁移动到下一搜索节点或者链路的转移概率,并通过轮盘赌法选择下一个节点;
蚂蚁的转移概率公式如下:
式中:
第k只蚂蚁从节点i到每一个可能的下一节点j的概率;
τ
η
α:信息素重要性系数;在本实施例中取值如表2所示;
β:距离重要性系数;在本实施例中取值如表2所示;
v
所述信息素用于在搜索过程中引导蚂蚁选择最佳路由的正反馈机制,路由上的信息素越多,蚂蚁选择这条路由的概率越大,最终会让大多数蚂蚁的路由趋向于最佳路由,从而得出最优路由。
为了更好的引导蚂蚁向着目标点进发,找出跳数最短的路由,需要对启发式函数值η
改进后的启发式函数值η
D
式(3)
式中:
load
d
d
式中D
初始化蚁群算法中的所有蚂蚁从待规划路由的网络的起始节点出发;根据转移概率选择下一网络节点,直至完成首次搜索;
传统的ACO算法要求信息素初值为均匀分配,这样会在算法初始阶段出现盲目性,且收敛速度较慢。针对现有ACO算法存在的不足,本实施例结合启发式搜索算法,根据当前的网络拓扑图输出一条初始的局部最优路由来引导初始信息素进行不均匀分配,提高路由规划过程中对备选区域的预选能力。此改进方法可以便于调整从当前点到目标点的搜索速度,提高启发式信息的强度,从而有效减小ACO算法在搜索前期的盲目性和任意性,提升全局搜索能力和收敛速度。
设置蚁群算法的初始信息素的方法如下式所示:
式中:
τ
C
ζ为初始偏离信息素衰减系数;
局部最优的网络路由上的节点的集合;
Q(j):表示节点j与所述局部最优的网络路由上的每个节点的曼哈顿距离的和值;本实施例中节点之间的距离采用哈顿距离,计算方法如下式所示:
式中:
(x
所述局部最优的网络路由可通过现有的算法对网络拓扑图进行计算得到,本实施例采用LPA*启发式搜索算法,本发明中对此不作限定;
本实施例中,以封闭型的光纤规划区域为例,使用栅格法来将网络拓扑图转化成栅格地图,改进后的蚁群算法基于该栅格地图进行路由搜索,栅格地图的构建方法包括:
设定网络中有N个节点和M条链路,栅格地图为R×R行的方阵,每个栅格单元为边长为1的方格。则有:
栅格地图上的总栅格单元数为R×R。栅格地图上的每个栅格单元可以用一个二维坐标(i,j)表示,其中i=1,2,…,R,j=1,2,…,R。栅格地图上的每个栅格单元可以用一个唯一的编号B表示,其中B=1,2,…,R×R。编号B与坐标(i,j)之间的关系为:
B=(i-1)×R+j
式(6)
栅格地图上的每个栅格单元有一个标签t(b),其中t(B)∈{0,1,…,R×R}。t(B)表示该栅格单元对应的光纤网络中的节点或链路的编号,或者为障碍点。具体来说:
如果t(B)=0,则表示该栅格单元为障碍点,即不对应任何节点或链路。
如果t(B)∈{1,…,R×R},则表示该栅格单元对应光纤网络中编号为t(k)的节点或链路。
其中节点是网络设备(如光交箱)的节点,链路则是相邻网络设备的“连线”;障碍点则是网络上不可通过的点.
在此要说明的是,本实施例中为R×R的正方形栅格地图,实际上对于非正方形地图可通过增加栅格单元的方式使之成为正方形的栅格地图,对于新增的栅格单元将其设置为障碍点。
具体地,基于所述初始信息素浓度,蚁群完成第一轮搜索;以如图2所示的栅格地图中的光交1(7,0)为起点,光交20(20,16)为终点,局部最优的网络路由如图2中划线所示,该较优的初始路由上的节点坐标如下表1所示;
表1
根据当前网络规划实例的实际情况设置蚁群算法的相关参数,如下表2所示:
表2
S2、根据总损失值计算网络节点所在路由的信息素增量;所述总损失值用于表示蚂蚁所经过的网络路由上的网络设备所在节点的个数、完成一次路由搜索所遍历的节点的载荷总值和路由总长;所述信息素增量用于计算节点间的信息素浓度;计算出的信息素浓度用于根据式(1)更新节点间的转移概率;在下一轮迭代中根据新的转移概率进行搜索;
本实施例中通过第一轮50只蚂蚁的搜索迭代后更新信息素矩阵,采用蚁周系统模型计算信息素增量,并对上一次的遗留信息素做挥发处理,在蚂蚁完成每次迭代后,对信息素按照如下公式进行更新:
τ
式中:
ρ(t):第t次迭代时信息素的挥发系数;本实施例中当t=0时,ρ值是预设的,取值与ρ
Δτ
N:表示蚂蚁的总数;
第t次迭代时,第k只蚂蚁在路由i到j时留下的信息素,i和j分别为网络栅格节点;
信息素的增量Δτ
每只蚂蚁的信息素增量的表达式如下:
Q:单只蚂蚁携带的信息素总量;
cost
为了更加准确的解决光纤路由规划中遇到的实际问题,设置了多因素损失函数来分别描述光纤路由规划中的实际路由长度代价、节点接入的载荷成本和路由接入的光交箱数量,由此将路由规划问题转化为多目标优化问题,通过这些多因素约束来求得符合网络路由规划中的最优路由。多因素损失函数cost
cost
式中:
cost
M
a
Q
其计算方法如下所示:
m:网络规划中光交箱节点的总数;
当前蚂蚁成功搜索到的路由节点集
b
L
这里构建了多因素损失函数cost
优选地,结合多因素损失函数的定义,改进了蚁群算法的信息素增量的表达式,如下式所示:
式中:
Q表示单只蚂蚁携带的信息素总量;
cost
在另一个实施例中,考虑到在实验中信息素浓度τ
优选地,τ
优选地,τ
根据一般性化学物质在地面挥发的经验,信息素的挥发速度应符合以下多种条件:第一,信息素浓度越高的地方其挥发速度越大,即体现在算法中即信息素浓度的最大值与信息素上限值的比值max(τ
第二,信息素的延展面积越大其挥发越快,即蚂蚁成功搜索的路由长度与最大行动力的比值max(L
第三,信息素的滞留时间越长其挥发越快,即当前迭代次数与最大迭代数的比值(r-t)/r越大,挥发因子越大;
在另一个实施例中,考虑到在实验中自适应的挥发因子是随着多因素的迭代变化是不断减小的,所以也需要给挥发因子设置一个上下限值,防止因为挥发因子过小导致算法的搜索停滞,改进后的自适应的挥发系数的数学表达如下:
式中:
r:最大迭代次数;
R:将当前网络拓扑图转化成栅格地图后的长或宽的最大值;
max(L
max(τ
ρ
τ
b:第一设定值,根据具体实验调参得到,b的最优值为0.3。
S3、当搜索次数到达设定上限或多次连续搜索后所有蚂蚁的搜索路由一致,则得到从起始节点到目标节点的全局最优的网络路由,如图3所示,其中灰色方块均表示一个光交箱站点;否则根据信息素增量和上一次迭代时的节点间的信息素分别通过式(7)和式(14)更新节点间的信息素,根据更新后的节点间的信息素通过式(1)计算所述转移概率,将所有蚂蚁设置于起始节点,根据更新后的转移概率选择下一网络节点,当所有蚂蚁均从起始节点到目标节点后则完成了新的一轮搜索,返回步骤S2。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供一种基于改进的蚁群算法的网络路由规划系统,包括转移概率计算模块、蚁群初始化模块、信息素增量计算模块、转移概率更新模块和最优网络路由判断模块;
转移概率计算模块用于根据两个网络节点间的距离、网络节点与目标节点的距离、以及网络节点的载荷计算每只蚂蚁从当前网络节点移动到每一个可能的下一网络节点的转移概率;
蚁群初始化模块用于初始化蚁群算法中的所有蚂蚁从待规划路由的网络的起始节点出发;根据转移概率和设定的节点间的信息素浓度选择下一网络节点,直至完成首次搜索;所述网络节点间的信息素浓度用于引导蚂蚁进行网络路由搜索;
信息素增量计算模块用于根据总损失值计算网络节点所在路由的信息素增量;其计算方法如式(9)或(13)所示,其中式(13)为更优的计算方式。
转移概率更新模块用于根据所述信息素增量和上一次迭代时的节点间的信息素更新节点间的信息素,根据更新后的节点间的信息素计算所述转移概率;其计算方法如式(1)所示。
最优网络路由判断模块用于判断当前得到的路由是否为最优网络路由,当搜索次数到达设定上限或多次连续搜索后所有蚂蚁的搜索路由一致,则得到从起始节点到目标节点的全局最优的网络路由。
遇到当前路由不为最优网络路由时,则调用转移概率更新模块对节点间的转移概率进行更新,将所有蚂蚁从待规划路由的网络的起始节点出发,根据转移概率进行下一轮迭代。
在另一个实施例中,还包括初始信息素浓度计算模块,用于根据局部最优的网络路由上的节点和链路设定节点间的初始信息素浓度,所述初始信息素浓度为初始迭代时每个节点间的信息素浓度,其计算方法如式(4)所示。
在另一个实施例中,信息素增量计算模块还包括总损失值计算模块,所述总损失值用于计算每次迭代时所走过的路由所有节点网络拥挤程度、路由长度和网络设备所在节点的个数,其计算方法如式(10)所示。
本说明书未作详细描述的内容属于本领域专业技术人员公知的现有技术。
- 一种基于BP神经网络蚁群算法的网络路由规划方法及系统
- 一种基于BP神经网络蚁群算法的网络路由规划方法及系统