[发明专利]一种基于蜂群算法的自组织QoS路由方法无效
申请号: | 200910010202.3 | 申请日: | 2009-01-21 |
公开(公告)号: | CN101478802A | 公开(公告)日: | 2009-07-08 |
发明(设计)人: | 王兴伟;易秀双;郭磊;王宇;温占考;王卫东;董明;陈强;付遥 | 申请(专利权)人: | 东北大学 |
主分类号: | H04W40/02 | 分类号: | H04W40/02 |
代理公司: | 沈阳东大专利代理有限公司 | 代理人: | 梁 焱 |
地址: | 110004辽宁省*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 蜂群 算法 组织 qos 路由 方法 | ||
1.一种基于蜂群算法的自组织QoS路由方法,按如下步骤:
步骤A:接收到邻居路由器发送的数据报文;
步骤B:根据数据报文的目的地址是否为单播地址判断报文类型是否为单播报文;
其特征在于:根据步骤B是单播报文,则执行步骤C,否则执行步骤G;
步骤C:进入单播建模的QoS路由方法;
步骤D:初始化路由器寄存器,发送前向蜂群agent寻路,调用蜂群算法,其中agent负责收集记录当前网络状态信息;
步骤E:考查路径评价值Jpath,找到符合用户请求的路径;
步骤F:转到步骤K;
步骤G:进入组播建模的QoS路由方法,给定组播请求:R(vs,vd,Δbwd,Δdld,Δjtd,Δlsd,pd),为其构造一棵组播树,其中vs代表源节点,vd代表目的节点,Δbwd代表带宽需求约束区间,Δdld代表延迟需求约束区间,Δjtd代表延迟抖动需求约束区间,Δlsd代表出错率需求区间,pd代表用户愿付费用上限;
步骤H:初始化路由器寄存器,构建组播树;
步骤I:组播树费用分摊;
在形成组播树以后,由于所选边是选用用户共用的,所以资费也理所应当由选用用户共同分担,分摊的原则是:用户独自占用该条路径所需付的费用越高则用户在组播树付费中分摊的部分越大,
设定源节点到每一个组成员的路径所需付费的集合为:
Wp={pay1,pay2,...,payn-1,payn}式中payn为每一个组成员的路径所需付费,n=1,2,…,N,N属于自然数,则第i个组成员vi所需分摊的组播树费用比例为:
式中i∈n,k∈n;
步骤J:计算组播树评价值JT,找出符合用户请求的路径;
步骤K:根据计算出的符合用户请求的路径将数据报文转发到下一跳路由器;
所述的步骤D中调用蜂群算法包括:
步骤D1:初始化路由器寄存器,设置最大迭代次数TIN,设置已迭代次数IN=0,设定每次迭代发送蜜蜂agent数量BN,已发送的蜜蜂agent数量bn=0,路径评价值Jpath=∞, 可行路径为空,初始化网络,将网络划分为若干个的域,每一个区域就是一个搜索域,规定每个搜索域内有一个代表节点,域内ip地址最小的节点被选举为代表节点,如果该节点失效,则选举下一个具有较大一些的ip地址的节点作为代表节点,凡是从代表节点出发在给定跳数内到达的节点均属于同一个搜索域;
步骤D2:在源节点判断目的节点是否属于源节点的搜索带,如果是,则设定发送短距离蜜蜂,如果不是,则设定发送长距离蜜蜂,如果不知道,则设定长、短距离蜜蜂各占一半比例发送;
步骤D3:IN←IN+1,源节点以间隔Δt发出BN个蜜蜂agent,每发送一个agent就bn←bn+1,初始化每一个蜜蜂agent,其中:蜜蜂agent序号seq=bn;
步骤D4:前向agent记录路径,将经历过的节点保存起来,同时记录有关的网络状态信息,前向蜜蜂agent在源节点被发出后,在网络中的每一个经过的节点按下面步骤执行行为;
步骤D41:判断当前蜜蜂agent跳数是否超限,如果是,则蜜蜂agent死亡;
步骤D42:如果源节点和目的节点不在同一个域内,则探路蜜蜂agent先以目的节点所在域代表节点为目的节点进行探路;当到达该域代表节点后,再以实际目的节点为目的节点进行探路;
步骤D43:如果当前节点的直接下一跳节点有本次路由目的节点,则考察与该节点之间的边是否满足用户请求约束,如满足,则蜜蜂agent跳转到目的节点,转到步骤D46;
步骤D44:在当前节点实现小世界边;
步骤D45:在当前节点进行下一跳选择;
步骤D451:在当前节点,将路由总次数计数器增加1;
步骤D452:实现小世界行为;
步骤D453:如果下一跳选择成功返回,则蜜蜂agent前行至该节点;
步骤D454:如果下一跳选择失败,蜜蜂agent死亡;
步骤D46:前向蜜蜂agent任务完成;
步骤D5:当前向agent到达目的节点时,触发产生一个继承前向agent相关信息的后向agent,后向agent沿着原路径的信息,从目的节点反向到达源节点,同时更新路由表中的信息;
步骤D51:在目的节点,根据前向蜜蜂agent信息,根据公式 UUP为路径或组播树上的用户效用,UNP则为网络提供商效用,计算路径评价值JP,并赋予生成的 后向agent,其中,αup,αnp是对用户的倾斜权值,0<αup,αnp<1,αup+αnp=1,将前向蜜蜂agent找到的路径赋予后向蜜蜂agent;
步骤D52:对于长距离蜜蜂,在未反向飞到目的节点所在域的代表节点以前,更新IFZ路由表,在飞过目的节点所在域代表节点之后,还要更新IFR路由表;
步骤D53:后向agent按保存的路径信息,反向跳到上游节点,然后更新IFZ或IFR表;在当前节点,蜜蜂将路由成功次数计数器增加1,如果蜜蜂agent在当前节点引入了小世界边,则更新小世界边表;
步骤D54:判断后向蜜蜂agent是否到达源节点,如果未到达,则跳转至步骤D53;
步骤D55:将后向蜜蜂agent携带路径的评价值和当前路径评价值进行比较,如果agent携带路径的评价值小于当前路径评价值,则将新路径保存为当前可行路径;
步骤D56:后向agent任务完成,调用蜂群算法结束;
所述的步骤D44在当前节点实现小世界边包括:
步骤D441:判断当前agent是否正在使用小世界边,如果是,则直接取出小世界边作为下一跳节点;否则,跳转至步骤D443;
步骤D442:判断该下一跳节点能否满足用户请求约束,如果能,蜜蜂agent选择该节点作为下一跳节点,保存当前节点与该节点之间边的QoS信息和成本信息,蜜蜂agent在当前节点行为结束,然后前行至该下一跳节点;否则,蜜蜂agent死亡;
步骤D443:考察蜜蜂agent的序列号,判断该agent是否为本次迭代发送中的最后一个,如果不是,则跳转至步骤D45;
步骤D444:考察当前节点小世界边表,是否存在到达目的节点的小世界边,如果不存在,则跳转至步骤D45;
步骤D445:将小世界边存入蜜蜂agent,并设置蜜蜂agent使用小世界边,然后蜜蜂agent记录该节点地址,跳转至D441;
所述的步骤D452实现小世界行为包括:
如果蜜蜂agent的序列号为偶数,则随机选择下一跳节点;否则,进行计算选择下一跳,计算对应边的用户满意度值计算公式: 式中,αbw、αdl、αjt和αls分别为各QoS参数的权重系数,αbw、αdl、αjt、αls∈[0,1],且αbw+αdl+αjt+αls=1,Wl是位于0和1之间的数值,gbwl表示带宽满意度、gdll表示延时满意度、gjtl表示延时抖动满意度、glsl代表出错率满意度,计算第i个节点的路由成功率: 式中rcs是成功路由次数计数器,rct是节点总路由次数计数器,当节点被采用到一次路由中去时,rct就增1,而当该次路由成功后,rcs就增1,为保证时效性,rcs、rct值每隔一定周期Δtrc就清零;计算第i个节点与本次路由目的地址的相近度:将32位地址从左向右逐位扫描比较二进制位,如果相同就继续扫描,如果不同就结束,记录相同的位数Mik,则相近度 Mik代表两个32位的ip地址做二进制比较,位数相同的个数,取值范围在0-32之间,计算下一条选择概率:proj=Pij×Wj×Ij×Vj,其中:Pij为当前节点信息素表中对应Nj的信息素浓度,Wj表示节点j的用户满意度值、Ij表示节点j的路由成功率、Vj表示节点j的相近度,根据proj,选出对应proj值最大的下一跳节点作为下一跳选择;
所述的步骤E考查路径评价值Jpath,找到符合用户请求的路径包括:
步骤E1:在源节点等待一段时间Δt后,考查路径评价值Jpath;
步骤E2:如果Jpath<∞,则算法成功找到符合用户请求的路径,在源节点将当前保留路径加入小世界表,转至步骤K;
步骤E3:如果Jpath=∞,则判断IN是否小于TIN,如果是,则转至步骤D3,否则路由失败;
所述的步骤H初始化路由器寄存器,构建组播树包括:
步骤H1:初始化路由器寄存器,设置迭代次数CN,已迭代次数cn=0,组播树评价值Jtree=∞,当前可行组播树为空;
步骤H2:将所有组成员按带宽请求由大到小排列,设定待处理组成员集合W={v1,v2,...,vn-1,vn},vn为待处理组成员,n=1,2,…,N,N属于自然数,已处理组成员集合A=Φ,可行路径集合P=Φ,其中Φ为空集合;
步骤H3:取vd∈W,利用基于蚂蚁网络的单播路由算法,由vs向vd寻找一条满足成员vd请求约束的可行路径pd,如果未找到,则此次构建组播树失败,跳转到步骤J3;
步骤H4:将节点vd从W删除,并加入A;
步骤H5:检查可行路径pd上是否含有位于W中的组成员,如果没有,则跳转到步骤H7;
步骤H6:如果pd上含有位于W中的组成员,判断这些组成员的请求约束能否在pd得到满足,将能被满足的节点从W删除,并加入A;
步骤H7:将可行路径pd加入集合P;
步骤H8:若集合W不为空,则跳转到步骤H1;
步骤H9:将可行路径中P中的路径拼成一棵组播树,在成树的过程中,每个组成员的请求约束都要被满足,并且不能出现环,否则,此次构建组播树失败,跳转至步骤J3;
所述的步骤J计算组播树评价值JT,找出当前可行组播树包括:
步骤J1:根据公式计算组播树评价值JT;
步骤J2:如果JT<Jtree,Jtree为当前可行组播树的评价值,则用计算得到的组播树代替当前可行组播树,Jtree=JT;
步骤J3:cn←cn+1,cn表示已迭代次数,若cn<CN,跳转到步骤H;
步骤J4:判断Jtree<∞是否成立,如果成立,则算法成功,否则算法失败。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910010202.3/1.html,转载请声明来源钻瓜专利网。