发明名称 基于粒子群算法的多播路由方法
摘要 本发明将粒子群算法运用于解决多播路由问题。首先,基于Floyd算法将连接网络转换为距离完全图。然后,在距离完全图的基础上运用粒子群算法搜索最佳的多播树。在粒子群算法中,将每个粒子编码为一个二进制字符串表示用以构造多播树的节点,其中“1”表示用到该节点,“0”表示不用改节点。基于二进制串,每个粒子均运用Prim算法构造多播树。将冗余的部分剪除后,就可以对构造出的多播树进行评价。实验结果显示,与传统启发式算法相比,发明的粒子群算法能得到更好的结果。
申请公布号 CN101447936A 申请公布日期 2009.06.03
申请号 CN200810220650.1 申请日期 2008.12.31
申请人 中山大学 发明人 张军;詹志辉;黄韬
分类号 H04L12/56(2006.01)I;H04L12/24(2006.01)I;G06N3/00(2006.01)I 主分类号 H04L12/56(2006.01)I
代理机构 代理人
主权项 1、一种基于粒子群算法的多播路由方法,其特征在于,该方法包括以下步骤:(1)运用Floyd算法建立多播路由网络的距离完全图。(2)初始化算法的各个参数,并建立第一代的粒子群,其中,粒子的编码方式为二进制编码。二进制串的长度与网络中的节点数目相同。所有的目标节点的编码均为1,以表示这些节点一直都在多播树中。对于中间节点,如果其编码为1,则表示该节点用于构造多播树,如果编码为0则表示不用于构造多播树。用于表示粒子位置的向量如下:X<sub>i</sub>=[x<sub>i1</sub>,x<sub>i2</sub>,...,x<sub>iN</sub>],其中x<sub>ij</sub>=0或者1(3)每个粒子基于当前位置根据Prim算法构造多播树,进行冗余剪枝并计算适应值。(4)更新每个粒子的个体最优位置,以及所有粒子的全局最优位置。(5)对每个粒子执行速度更新。其中,粒子速度向量的可以表示为:<maths num="0001"><![CDATA[<math><mrow><msub><mi>V</mi><mi>i</mi></msub><mo>=</mo><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>v</mi><mrow><mi>i</mi><mn>1</mn></mrow><mn>0</mn></msubsup><mo>,</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mn>2</mn></mrow><mn>0</mn></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>v</mi><mi>iN</mi><mn>0</mn></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>v</mi><mrow><mi>i</mi><mn>1</mn></mrow><mn>1</mn></msubsup><mo>,</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mn>2</mn></mrow><mn>1</mn></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>v</mi><mi>iN</mi><mn>1</mn></msubsup></mtd></mtr></mtable></mfenced></mrow><mo>,</mo></mrow></math>]]></maths>其中<maths num="0002"><![CDATA[<math><mrow><mn>0</mn><mo>&le;</mo><msubsup><mi>v</mi><mi>ij</mi><mn>0</mn></msubsup><mo>,</mo></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msubsup><mi>v</mi><mi>ij</mi><mn>1</mn></msubsup><mo>&le;</mo><mn>1</mn></mrow></math>]]></maths>在上式中,向量V<sub>i</sub>的第j维有两个取值。<img file="A200810220650C00024.GIF" wi="40" he="63" />是x<sub>ij</sub>为0的概率,而<img file="A200810220650C00025.GIF" wi="38" he="63" />是x<sub>ij</sub>为1的概率。(6)根据每个粒子更新后的速度执行位置更新。当决定X<sub>i</sub>的第j维的取值的时候,首先生成一个0到1之间均匀分布的随机数α。如果<img file="A200810220650C00026.GIF" wi="42" he="62" />和<img file="A200810220650C00027.GIF" wi="40" he="62" />均大于α,那么就随机将x<sub>ij</sub>设置为0或者1。如果只有<img file="A200810220650C00028.GIF" wi="40" he="65" />大于α,那么就将x<sub>ij</sub>设置为b。如果<img file="A200810220650C00029.GIF" wi="40" he="63" />和<img file="A200810220650C000210.GIF" wi="39" he="63" />均小于α,那么就不改变x<sub>ij</sub>。(7)重复步骤(3)至(6)直到满足算法的终止条件。
地址 510275广东省广州市海珠区新港西路135号