CN101447936B - 基于粒子群算法的多播路由方法 - Google Patents

基于粒子群算法的多播路由方法 Download PDF

Info

Publication number
CN101447936B
CN101447936B CN2008102206501A CN200810220650A CN101447936B CN 101447936 B CN101447936 B CN 101447936B CN 2008102206501 A CN2008102206501 A CN 2008102206501A CN 200810220650 A CN200810220650 A CN 200810220650A CN 101447936 B CN101447936 B CN 101447936B
Authority
CN
China
Prior art keywords
node
particle
algorithm
multicast tree
expense
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008102206501A
Other languages
English (en)
Other versions
CN101447936A (zh
Inventor
张军
詹志辉
黄韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN2008102206501A priority Critical patent/CN101447936B/zh
Publication of CN101447936A publication Critical patent/CN101447936A/zh
Application granted granted Critical
Publication of CN101447936B publication Critical patent/CN101447936B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明将粒子群算法运用于解决多播路由问题。首先,基于Floyd算法将连接网络转换为距离完全图。然后,在距离完全图的基础上运用粒子群算法搜索最佳的多播树。在粒子群算法中,将每个粒子编码为一个二进制字符串表示用以构造多播树的节点,其中“1”表示用到该节点,“0”表示不用改节点。基于二进制串,每个粒子均运用Prim算法构造多播树。将冗余的部分剪除后,就可以对构造出的多播树进行评价。实验结果显示,与传统启发式算法相比,发明的粒子群算法能得到更好的结果。

Description

基于粒子群算法的多播路由方法
技术领域:
本发明属于计算机网络通信中的路由技术,具体涉及一种运用粒子群算法的多播路由方法。
技术背景:
随着计算机网络和通信技术的发展,多播路由问题引起了世界各地的关注。概括来说,多播路由问题可以叙述为在一个特定的网络中,根据某项标准寻找从源节点到多个目标节点的信息传送路径。这在许多通信应用中是基本问题,如邮件群发、广播电视、电话和视频点播等。因此,如何建立一个高效的多播树已成为多播路由应用中的一个重要问题。若把网络视作连通的带权无向网络,将网络节点和相关链接抽象为对应的图节点和边,并根据网络链接对网络资源的消耗定义图中各边的权重。求解多播路由,就是寻找一条涵盖源节点和所有目标节点,符合约束条件并且消耗最小的最优路径。事实上,不带约束的多播路由问题等价于在图中生成Steiner树的问题,该问题已被证明是一个NP-难问题。传统的确定性算法可以被看作是基于路径距离的算法。例如,最短路径启发式算法(SPH)是基于最短路径计算的算法。距离网络启发式算法(DNH)是基于最小生成树的算法。平均距离启发式算法(ADH)是也基于距离信息的一类算法。这些启发式算法有时候能得到较好的结果,但是却容易陷入局部最优。
随着计算智能的发展,研究人员开始尝试用智能算法解决多播路由问题。其中,遗传算法和蚁群算法已经被成功运用于求解多播路由问题,并取得较好的效果。但是,这两种算法的缺点是计算时间较长,因为它们都需要循环多次才能达到收敛。最近,一种新的智能算法——粒子群算法得到了快速的发展。粒子群算法是一种模拟自然界中鸟群和鱼群捕食的随机搜索算法。算法中的每个粒子均能“记忆”自己的以及群体的飞行经验,并以此不断调整自己的速度和位置。粒子群算法由于其定义清晰,简单实用,自提出以来就得到了广发的应用,例如动态分配、医学图形配准、机器学习与训练、数据挖掘与分类和信号控制等各领域。因此,本发明将粒子群算法运用到多播路由问题的求解中。
发明内容:
本发明运用粒子群算法求解多播路由问题。算法的具体步骤包括:
(1)运用Floyd算法建立多播路由网络的距离完全图。
(2)初始化算法的各个参数,并建立第一代的粒子群,其中,粒子的编码方式为二进制编码。二进制串的长度与网络中的节点数目相同。所有的目标节点的编码均为1,以表示这些节点一直都在多播树中。对于中间节点,如果其编码为1,则表示该节点用于构造多播树,如果编码为0则表示不用于构造多播树。
用于表示粒子位置的向量如下:
Xi=[xi1,xi2,...,xiN],其中xij=0或者1
(3)每个粒子基于当前位置根据Prim算法构造多播树,进行冗余剪枝并计算适应值。
(4)更新每个粒子的个体最优位置,以及所有粒子的全局最优位置。
(5)对每个粒子执行速度更新。其中,粒子速度向量的可以表示为:
V i = v i 1 0 , v i 2 0 , . . . , v iN 0 v i 1 1 , v i 2 1 , . . . , v iN 1 , 其中 0 ≤ v ij 0 , v ij 1 ≤ 1
在上式中,向量Vi的第j维有两个取值。cij 0是xij为0的概率,而vij 1是xij为1的概率。
(6)根据每个粒子更新后的速度执行位置更新。当决定Xi的第j维的取值的时候,首先生成一个0到1之间均匀分布的随机数α。如果vij 0和vij 1均大于α,那么就随机将xij设置为0或者1。如果只有vij b大于α,那么就将xij设置为b。如果vij 0和vij 1均小于α,那么就不改变xij
(7)重复步骤(3)至(6)直到满足算法的终止条件。
本发明将粒子群算法运用于多播树的搜索,基于粒子的二进制编码和距离完全图,采用改进的Prim算法构造多播树进行评价。并且重新定义了粒子速度更新和位置更新的方法。由于粒子群算法收敛速度快、鲁棒性强,因此能在多播路由问题的求解中取得较好的效果。
附图说明:
图1  网络示意图
图2加入目标节点V1的示意图
图3选择最短的虚拟路径进行连接的示意图
图4选择相关的中间节点的示意图
图5加入V9后的更新示意图
图6删除冗余节点的示意图
图7算法得到的多播树示意图
图8粒子群算法流程图
具体实施方式:
以下结合附图进一步对发明的方法进行描述。
假设N={V,E}是一个无方向的、连接的网络费用图,其中V是节点集合,E表示边的集合。一个函数c用以评价E中每一条边e的费用。V的一个子集D包含所有目标节点(源节点也被考虑成目标节点),子集S=V/D则包含所有中间节点。多播路由的目标就是找到一个连接所有目标节点和一部分中间节点的最小费用树T。如果T可以表示为T={V*,E*},那么目标可以用方程表达为
f = MinT = min Σ e ∈ E * c ( e ) , 其中 V * ⊆ V , E * ⊆ E , D ⊆ V *
在实际应用中,多播路由问题往往要考虑服务质量(Qos)的约束,例如传输延时,丢包率和带宽限制等等。用函数b(e)和d(e)表示每条边e对应的带宽和延时,PT(s,v)表示树T中从源节点到D中的其它任意节点v的路径。那么,带宽约束和延时约束则可定义为:
Bandwidth ( P T ( s , v ) ) = min { b ( e ) | e ∈ P T ( s , v ) } ≥ B min , ∀ v ∈ D
Bandwidth ( P T ( s , v ) ) = Σ e ∈ PT ( s , v ) d ( e ) ≤ D max , ∀ v ∈ D
在本发明中,主要考虑的是不带约束的多播路由问题。但是,基于以上两式,发明的算法也可以扩展到求解带约束的问题。
在运用发明的方法求解多播路由问题之前,首先需要将连接网络转换为距离完全图,也就是找出连接每两个节点的最短路径。在本发明中,采用的转换方法为Floyd算法。在距离完全图中,任意两个节点均是由最短路径连接的。需要注意的是,一些最短路径可能是“虚拟”路径,而其它的则是“真实”路径。“真实”路径表示在原网络中存在直接连接该两个节点的路径。“虚拟”路径则表示两个节点需要通过一些中间节点才能进行连接。
粒子群算法是一种模拟自然界中鸟群和鱼群捕食的随机搜索算法。算法要求每个个体(粒子)在进化过程中维持两个向量,即速度向量Vi=[vi1,vi2,...,viN]和位置向量Xi=[xi1,xi2,...,xiN],其中i表示粒子的编号,N是求解问题的维数。粒子的速度决定了其运动方向和速率,而位置则体现了粒子所代表的解在解空间中的位置。同时还要求每个粒子各自维持一个自身的历史最优位置向量Pi=[pi1,pi2,...,piN],也就是说在进化过程中,如果粒子到达了某个适应值更好的位置,则将该位置记录到历史最优向量中。另外,群体还维护一个全局最优位置向量(用G表示),也就是所有粒子的P中最优的一个,这个全局最优起到引导粒子向该全局最优区域收敛的作用。在每一代中,粒子速度与位置更新公式如下所示:
vij=ω×vij+c1×r1j×(pij-xij)+c2×r2j×(gj-xij)
xij=xij+vij
其中,ω为惯性权重,c1和c2为加速系数,r1 d和r2 d是两个从0到1均匀分布的随机数。
为了将粒子群算法运用到多播路由问题的求解中,本发明将粒子进行二进制的编码。二进制串的长度与网络中的节点数目相同。所有的目标节点的编码均为1,以表示这些节点一直都在多播树中。对于中间节点,如果其编码为1,则表示该节点用于构造多播树,如果编码为0则表示不用于构造多播树。因此,用于表示粒子位置的向量如下:
Xi=[xi1,xi2,...,xiN],其中xij=0或者1
而速度向量则可以表示为:
V i = v i 1 0 , v i 2 0 , . . . , v iN 0 v i 1 1 , v i 2 1 , . . . , v iN 1 , 其中 0 ≤ v ij 0 , v ij 1 ≤ 1
在上式中,向量Vi的第j维有两个取值。vij 0是xij为0的概率,而vij 1是xij为1的概率。
运用以下的三个更新定义来计算粒子的速度。
(1)位置-位置
速度更新中包含了“位置-位置”的一项。假设有两个位置X1和X2,而V=X1-X2。计算方法如下,对于V的第j维,如果x1j是b而x2j不是b(b是0或1),那么粒子就应该向X1学习,因此 v j b = 1 . 如果x1j与x2j相同,则表示X2不需要向X1学习,因此 v j b = 0 .
(2)参数×速度
这个参数可以是惯性权重ω,或者加速系数c1和c2。由于速度是表示位置设置为1或者0的概率,因此必须控制速度的取值范围为0到1。“参数×速度”的操作就是将参数与速度中的每个元素相乘。如果乘积大于1,则设置为1。
(3)速度+速度
“速度+速度”的结果是一个新的速度。假设两个速度分别为V1和V2,那么新的速度就是V=V1+V2。计算方法为,速度V中的第j维取v1j b和v2j b中较大的一个值,其中b=0或者1。
用粒子群算法求解连续问题时,位置的更新就是将更新后的速度Vi加上位置Xi。但是在离散问题的求解中,并不能将两项直接相加。当决定Xi的第j维的取值的时候,首先生成一个0到1之间均匀分布的随机数α。如果vij 0和vij 1均大于α,那么就随机将xij设置为0或者1。如果只有vij b大于α,那么就将xij设置为b。如果vij 0和vij 1均小于α,那么就不改变xij
基于距离完全图和二进制的粒子位置,就可以运用Prim算法构造最小生成树了。但是,需要对Prim算法进行一些改动以适应多播路由问题的特性。此外构造出的树也需要进行修整,以删除一些非目标节点的枝叶。
由于在距离完全图中存在真实路径和虚拟路径,改进的Prim算法将更注重选择真实路径来构造生成树T。图1是一个网络示意图,其中V1,V8和V9是目标节点。另外,假设位置X=[1,0,1,0,0,0,1,1,1]表示节点V1,V3,V7,V8和V9用来构造生成树。那么Prim算法可以用以下的步骤进行描述。
(1)初始化T为一个空的树。首先,随机将一个目标节点加入T。对于其余用到的节点i,均保存真实费用R[i]和虚拟费用V[i]。如图2所示,目标节点V1被选择加入生成树,则保存R[i]和V[i]。例如,R[V3]=3表示节点V3和T通过一个费用为3的直接路径相连。V[V3]=2表示从V3到T的最短路径的费用为2,但是需要运用V2作为中间节点。
(2)选择下一个最接近的节点到T。在这一步中,算法倾向于选择真实路径连接的节点,即使真实的费用可能高于虚拟费用。例如,在图3中,直接连接的节点V3被选择。如果没有直接连接的节点,那么就选择最短的虚拟路径进行连接。例如在图4中,节点V7被选择。当一个通过虚拟路径连接的节点被选择后,所有相关的中间节点也被加入树中,例如节点V2,V5和V6
(3)费用更新。每当有节点被添加到生成树中时就需要对T中其余节点i的真实费用R[i]和虚拟费用V[i]进行更新。例如,在图4中因为V8可以通过V7和T相连,R[V8]和V[V8]变为4。由于直接连接V5和V9的路径费用为3,因此R[V9]和V[V9]变为3。此外,图5给出了V9加入生成树后对V8的更新。
(4)重复步骤(2)到(3)直到所有节点均被添加到生成树中。
在生成的多播树中可能会有一些冗余节点。因此,需要删除在生成树中连接非目标节点的枝叶。如图6所示,V3和V7是可被删除的冗余节点。当V7被删除后,V6也可以被删除。最后就可以得到最终的多播树,如图7所示。
在执行Prim算法和冗余修剪的过程中,生成树的费用就可以被计算出来。因此,以上的过程也可以被当作适应值函数评估的过程。
粒子群算法求解多播路由问题的流程图如图8所示。
为了测试发明的算法的性能,以OR库中b组的Steiner问题为例对发明的粒子群算法和传统的启发式算法进行仿真比较。比较结果显示传统的启发式算法容易陷入局部最优得到精确度不高的解。而粒子群算法则在所有的问题中均能得到最优的多播树,这证明了发明的算法在求解多播路由问题中是十分高效的。

Claims (2)

1.一种基于粒子群算法的多播路由方法,其特征在于,该方法包括以下步骤:
(1)运用Floyd算法建立多播路由网络的距离完全图;
(2)初始化算法的各个参数,并建立第一代的粒子群,其中,粒子的编码方式为二进制编码;二进制串的长度与网络中的节点数目相同;所有的目标节点的编码均为1,以表示这些节点一直都在多播树中;对于中间节点,如果其编码为1,则表示该节点用于构造多播树,如果编码为0,则表示该节点不用于构造多播树;用N表示节点数,则用于表示粒子位置的向量如下:
        Xi=[xi1,xi2,…,xiN],其中xij=0或者1;
(3)每个粒子基于当前位置根据Prim算法构造多播树,进行冗余剪枝并计算适应值;
(4)更新每个粒子的个体最优位置,以及所有粒子的全局最优位置;
(5)对每个粒子执行速度更新,其中,粒子速度向量可以表示为:
V i = v i 1 0 , v i 2 0 , . . . , v iN 0 v i 1 1 , v i 2 1 , . . . , v iN 1 , 其中 0 ≤ v ij 0 , v ij 1 ≤ 1
在上式中,向量Vi的第j维有两个取值:
Figure FSB00000474367600014
是xij为0的概率,而
Figure FSB00000474367600015
是xij为1的概率;
(6)根据每个粒子更新后的速度执行位置更新,当决定Xi的第j维的取值的时候,首先生成一个0到1之间均匀分布的随机数α,如果
Figure FSB00000474367600016
均大于α,则随机将xij设置为0或者1;如果只有
Figure FSB00000474367600018
大于α,则仅仅将xij设置为b,其中b为0或者1;如果
Figure FSB00000474367600019
Figure FSB000004743676000110
均小于α,则不改变xij
(7)重复步骤(3)至(6)直到满足算法的终止条件。
2.基于权利要求1所述的一种基于粒子群算法的多播路由方法,其特征在于每个粒子根据改进的Prim算法构造多播树,并进行冗余剪枝以计算适应值;该改进的Prim算法将更注重选择真实路径来构造多播树T,包括如下的步骤:
(1)初始化一个空的多播树T:首先,随机将一个目标节点加入T,对于其余用到的节点j,均保存真实费用R[j]和虚拟费用V[j];
(2)选择下一个最接近的节点到T:在这一步中,算法倾向于选择真实路径连接的节点,即使真实的费用可能高于虚拟费用;
(3)费用更新:每当有节点被添加到多播树中就需要对T中其余节点j的真实费用R[j]和虚拟费用V[j]进行更新;
(4)重复步骤(2)到(3)直到所有节点均被添加到多播树T中。
CN2008102206501A 2008-12-31 2008-12-31 基于粒子群算法的多播路由方法 Expired - Fee Related CN101447936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102206501A CN101447936B (zh) 2008-12-31 2008-12-31 基于粒子群算法的多播路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102206501A CN101447936B (zh) 2008-12-31 2008-12-31 基于粒子群算法的多播路由方法

Publications (2)

Publication Number Publication Date
CN101447936A CN101447936A (zh) 2009-06-03
CN101447936B true CN101447936B (zh) 2011-07-20

Family

ID=40743348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102206501A Expired - Fee Related CN101447936B (zh) 2008-12-31 2008-12-31 基于粒子群算法的多播路由方法

Country Status (1)

Country Link
CN (1) CN101447936B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883330B (zh) * 2010-07-02 2012-07-11 湖南大学 应用于车载自组网的基于网络编码的多播路由方法
CN101925100B (zh) * 2010-09-03 2012-12-05 东华大学 一种异构无线传感器网络的容错路由恢复方法
CN102594706B (zh) * 2012-03-20 2014-10-22 南京邮电大学 一种用于家居智能控制的无线宽带安全路由方法
CN106789677A (zh) * 2017-02-20 2017-05-31 上海大学 基于SDN的支持QoS的多播路由构建方法及系统
CN108183860B (zh) * 2018-01-19 2021-04-13 东南大学 基于粒子群算法的二维片上网络自适应路由方法
CN109067648B (zh) * 2018-07-27 2020-11-10 西安电子科技大学 基于dag的多约束路由优化的计算方法
CN113394769B (zh) * 2021-05-27 2022-12-09 国网甘肃省电力公司电力科学研究院 一种分散式供电故障恢复方法及装置

Also Published As

Publication number Publication date
CN101447936A (zh) 2009-06-03

Similar Documents

Publication Publication Date Title
CN101447936B (zh) 基于粒子群算法的多播路由方法
CN109818865B (zh) 一种sdn增强路径装箱装置及方法
CN110986979B (zh) 一种基于强化学习的sdn多路径路由规划方法
Bitam et al. Bee life-based multi constraints multicast routing optimization for vehicular ad hoc networks
CN101170503B (zh) 一种组播路由蚁群算法的优化方法
Patel et al. A hybrid ACO/PSO based algorithm for QoS multicast routing problem
CN114143264B (zh) 一种SRv6网络下基于强化学习的流量调度方法
CN101616074B (zh) 基于量子进化的组播路由优化方法
CN107911300A (zh) 基于鲸鱼算法的组播路由优化方法及其在Spark平台上的应用
Mai et al. Packet routing with graph attention multi-agent reinforcement learning
Abdel-Kader An improved discrete PSO with GA operators for efficient QoS-multicast routing
Hamdan et al. Multicast routing with delay and delay variation constraints using genetic algorithm
Ikeda et al. Performance evaluation of an intelligent CAC and routing framework for multimedia applications in broadband networks
CN103944748B (zh) 基于遗传算法的网络关键节点的自相似流量生成简化方法
Barolli et al. A genetic algorithm based routing method using two QoS parameters
Chen et al. Traffic engineering based on deep reinforcement learning in hybrid IP/SR network
Mahseur et al. Using bio-inspired approaches to improve the quality of service in a multicast routing
CN110392409B (zh) 基于配电通信网的WMSNs多路径QoS路由方法、系统及存储介质
Pan et al. A hybrid neural network and genetic algorithm approach for multicast QoS routing
CN102158413A (zh) 基于邻域免疫克隆选择的多智能体组播路由方法
Chunxin et al. A hybrid scatter search algorithm for QoS multicast routing problem
Li et al. Genetic algorithm-based QoS multicast routing for uncertainty in network parameters
Murugeswari et al. Multiconstrained QoS Multicast Routing for Wireless Mesh Network Using Discrete Particle Swarm Optimization
Wang et al. A QoS multicast routing algorithm based on ant colony algorithm
Shobana et al. ISFF Based Optimal Route Selection and QoS Enhancement in VANETs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110720

Termination date: 20131231