[发明专利]一种采用网络编码的网络传输方法有效
| 申请号: | 201110025347.8 | 申请日: | 2011-01-24 |
| 公开(公告)号: | CN102123006A | 公开(公告)日: | 2011-07-13 |
| 发明(设计)人: | 黄佳庆;程文青;尹柳 | 申请(专利权)人: | 华中科技大学 |
| 主分类号: | H04L1/00 | 分类号: | H04L1/00 |
| 代理公司: | 华中科技大学专利中心 42201 | 代理人: | 方放 |
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 采用 网络 编码 传输 方法 | ||
1.一种采用网络编码的网络传输方法,包括如下步骤:
一.初始化步骤,建立节点链路初始化信息表,包括下述子步骤:
1.1清除网络G(V,E)中各个节点的节点标记,从网络的所有节点V={v1,v2,L,vυ}中确定信源节点s和信宿节点tk,1≤k≤τ,τ为信宿节点数;υ为网络中总节点数;
1.2计算信源节点s到各个信宿节点tk的最大流f(tk),将f=min{f(tk)|1≤k≤τ}作为有向多边图的最大流;
1.3计算网络中各个节点vi∈V到每个信宿节点tk的最短距离Dk(vi),1≤i≤υ,并填入相应的各个节点到信宿节点的最短距离向量D(vi)=[Dk(vi)τ×1中;
1.4初始化各节点的链路可用带宽向量根据有向多边图,将各节点vi到其对应的每个始节点uij的链路可用带宽BW(uij,vi)初始化为各节点vi为终节点时,到其对应的每个始节点uij间的并行有向链路条数,1≤j≤P(vi),P(vi)为该节点vi对应的始节点数;
1.5将各节点vi的网络编码操作数NC(vi)初始化为0,将各有向链路ey∈E的链路标记集合LMC(ey)初始化为空集,E={e1,e2,Λ,eε},1≤y≤ε,ε为网络中总有向链路条数;
1.6置当前在建多播树编号N=0,转步骤二;
二.建树启动步骤:
2.1设置信源节点s为当前节点x,并加上确定标记;
2.2置当前在建多播树编号N=N+1,转步骤三;
三.信源节点入栈步骤,包括下述子步骤:
3.1在当前节点x的所有邻居节点中,判断是否存在节点vi满足条件:未被标记、其与当前节点x间的链路可用带宽BW(x,vi)>0且D min(vi)<∞,是则将所有满足条件的节点构成节点集合VS,进行子步骤3.2;否则结束;D min(vi)=min{Dk(vi)|tk未被标记};
3.2对于集合VS中的每一个节点,任选其与当前节点x间一条未标记的有向链路,构成节点-未标记链路对,进行子步骤3.3;
3.3在集合VS中,判断是否存在其网络编码操作数NC(vi)>0的节点,是则将所有满足条件的节点构成子集合VS1,进行子步骤3.4;否则转子步骤3.5;
3.4在子集合VS1中,按照节点与当前节点x间的链路可用带宽BW(x,vi)的大小由小到大,将节点对应的节点-未标记链路对压入网络编码栈;当多个节点的BW(x,vi)相同时,则再按节点的网络编码操作数NC(vi)的大小从大到小,将其对应的节点-未标记链路对压入网络编码栈;进行子步骤3.5;
3.5在集合VS中,判断是否存在节点vi满足条件:非信宿节点、其链路可用带宽向量BW(vi)不为初始值且其网络编码操作数NC(vi)=0,是则将所有满足条件的节点构成子集合VS2,进行子步骤3.6,否则转子步骤3.7;
3.6在子集合VS2中,按照节点与当前节点x间的链路可用带宽BW(x,vi)的大小由小到大,将节点对应的节点-未标记链路对压入路由栈;当多个节点的BW(x,vi)相同时,则再按节点的Dmax(vi)的大小从小到大,将其对应的节点-未标记链路对压入路由栈;D max(vi)=max{Dk(vi)|tk未被标记};进行子步骤3.7;
3.7在集合VS中,判断是否存在其链路可用带宽向量BW(vi)等于初始值的非信宿节点,是则将它们构成子集合VS3,进行子步骤3.8,否则转子步骤3.9;
3.8在子集合VS3中,按照节点与当前节点x间的链路可用带宽BW(x,vi)的大小由小到大,将节点对应的节点-未标记链路对压入路由栈;当多个节点的BW(x,vi)相同时,则再按节点的Dmax(vi)的大小从小到大,将其对应的节点-未标记链路对压入路由栈;进行子步骤3.9;
3.9在集合VS中,判断是否存在信宿节点,是则将信宿节点构成的节点-未标记链路对以任意顺序压入路由栈,转步骤四;否则直接转步骤四;
四.出栈步骤,包括下述子步骤:
4.1判断路由栈是否已空,是则转子步骤4.14,否则进行子步骤4.2;
4.2从路由栈中取出一个节点-链路对,令该节点-链路对对应的始节点为当前节点x,判断当前节点x是否为信源节点,是则多播树N的当前链路标记转子步骤4.4,否则进行子步骤4.3;
4.3判断当前节点x在多播树N中的来源链路EN(x)的链路标记集合LMC(EN(x))是否为单元素集合{LMN(EN(x))},是则多播树N的当前链路标记否则该来源链路EN(x)的链路标记集合为多元素集合nm为经过该来源链路EN(x)的已建好的多播树的编号,1≤nm<N,1≤m≤r,多播树N的当前链路标记为
为多播树nm在链路EN(x)处的链路标记;进行子步骤4.4;
4.4判断路由栈中取出的节点-链路对的性质,若取出的为信宿节点-未标记链路对,则进行子步骤4.5;若取出的是非信宿节点-链路对,则转子步骤4.9;
4.5对该信宿节点进行增流检验:将多播树N的当前链路标记与其它所有以该信宿节点为终节点的、已标记链路ey的链路标记集合LMC(ey)中的链路标记LMw(ey)作比较:除去多播树N的当前链路标记和这些LMw(ey)中每个括号前面的多播树编号,若通过交换各个括号内用加号连接的各元素的连接次序后,与某一个LMw(ey)完全相同,则增流失败,转步骤六;否则通过增流检验,进行子步骤4.6;w为已建好的多播树的编号,1≤w≤N-1;
4.6在该信宿节点-未标记链路对中的未标记链路的链路标记集合中并上多播树N的当前链路标记该信宿节点tk的链路可用带宽向量BW(tk)中对应当前节点x的链路可用带宽BW(x,tk)减1,从该信宿节点tk开始反向沿着链路标记集合中含有多播树N链路标记LMN的有向链路将途经的非确定标记节点的节点标记改为确定标记,直至碰到已有确定标记的节点才结束,进行子步骤4.7;
4.7判断是否所有信宿节点均有确定标记,是则进行子步骤4.8,否则转子步骤4.1;
4.8判断是否达到网络最大流f,是则结束;否则清除所有节点的节点标记,清零路由栈和网络编码栈,转步骤二;
4.9判断当前节点x是否被加上确定标记且该非信宿节点-链路对中的非信宿节点的网络编码操作数NC(vi)>0,是则转子步骤4.1,否则进行子步骤4.10;
4.10判断路由栈中取出的非信宿节点-链路对是否为非信宿节点-已标记链路对,是则进行子步骤4.11;否则转子步骤4.13;
4.11给出栈的节点-已标记链路对中的节点加上临时标记,已标记链路ey的链路标记集合LMC(ey)中并上多播树N的当前链路标记当前节点x的网络编码操作数NC(x)加1;进行子步骤4.12;
4.12出栈的节点-已标记链路对中已标记链路的链路标记集合为λs为经过该已标记链路的多播树的编号,1≤λs<N,1≤s≤z;若z=1,则替换因子查找因子若z≥2,则对于所有λs,1≤s≤z,替换因子为:
查找因子遍历以该节点-已标记链路对中的节点为根节点的子树,检查子树中所有有向链路的链路标记集合中的链路标记,将这些链路标记作为母字符串,若母字符串中存在与查找因子完全相同的子字符串,将该子字符串替换为相应的替换因子转子步骤4.19;
4.13给该出栈的节点-未标记链路对中的节点vi加上临时标记,其链路可用带宽向量BW(vi)中对应当前节点x的链路可用带宽BW(x,vi)减1,该出栈的节点-未标记链路对中的未标记链路的链路标记集合中并上多播树N的当前链路标记转子步骤4.19;
4.14判断网络编码栈是否已被取空,是则结束;否则进行子步骤4.15;
4.15从网络编码栈中取出一个节点-链路对,并令该节点-链路对对应的始节点为当前节点x,判断当前节点x是否为信源节点,是则多播树N的当前链路标记转子步骤4.17;否则进行子步骤4.16;
4.16判断当前节点x在多播树N中的来源链路EN(x)的链路标记集合LMC(EN(x))是否为单元素集合{LMN(EN(x))},是则多播树N的当前链路标记否则该来源链路EN(x)的链路标记集合为多元素集合nm为经过该来源链路的已建好的多播树的编号,1≤nm<N,1≤m≤r,多播树N的当前链路标记
为多播树nm在链路EN(x)处的链路标记;进行子步骤4.17;
4.17判断该取出的网络编码节点-链路对中网络编码节点是否满足下述条件:该网络编码节点已被标记,或者该网络编码节点及当前节点x均未被标记,是则转子步骤4.14;否则进行子步骤4.18;
4.18判断网络编码栈中取出的节点-链路对的性质,若取出的是网络编码节点-已标记链路对,则转子步骤4.11;否则取出的为网络编码节点-未标记链路对,转子步骤4.13;
4.19令出栈的节点-链路对中的节点为当前节点x,转步骤五;
五.中间节点入栈步骤,包括下述子步骤:
5.1在当前节点x的所有邻居节点中,判断是否存在节点vi满足条件:未被标记,D min(vi)<∞且其不为与当前节点x间的链路可用带宽BW(x,vi)=0的信宿节点,是则将所有满足条件的节点构成节点集合VIC,进行子步骤5.2;否则转步骤六;
5.2判断当前节点x在多播树N中的来源链路EN(x)的链路标记集合LMC(EN(x))是否为只含有多播树N的链路标记的单元素集合{LMN(EN(x))},是则令节点集合VI等于节点集合VIC,并转子步骤5.8;否则进行子步骤5.3;
5.3该来源链路EN(x)的链路标记集合为多元素集合nm为经过该来源链路EN(x)的已建好的多播树的编号,1≤nm<N,1≤m≤r,在集合VIC中,判断是否存在节点满足条件:不为信宿节点,且其与x之间有向链路的链路标记集合中含有多播树nm的链路标记是则将所有满足条件的节点构成节点集合VIM,并进行子步骤5.4;否则令节点集合VI=VIC,转子步骤5.8;
5.4对于VIM中的各个节点,将其与当前节点x之间的链路标记集合中含有播树nm的链路标记的各条有向链路分别绑定其所对应的终节点,构成节点-已标记链路对,按节点-已标记链路对中节点的网络编码操作数NC(vi)的大小由大到小入栈,当存在多个节点-已标记链路对中节点NC(vi)相同时,需再比较这些节点-已标记链路对中的已标记链路的链路标记集合中链路标记的个数,按链路标记个数由多到少将其对应的节点-已标记链路对压入栈;入栈时,其中NC(vi)>0的节点构成的网络编码节点-已标记链路对同时压入路由栈和网络编码栈,NC(vi)=0的节点构成的非网络编码节点-已标记链路对只压入路由栈;进行子步骤5.5;
5.5判断是否存在以当前节点x为始节点、集合VIM中的节点为终节点的已标记链路满足条件:其链路标记集合中不含多播树nm的链路标记是则进行子步骤5.6,否则转子步骤5.7;
5.6将这些已标记链路分别绑定其所对应的终节点构成节点-已标记链路对,按节点-已标记链路对中节点的网络编码操作数NC(vi)的大小由大到小入栈,当存在多个节点-已标记链路对中节点的NC(vi)相同时,需再比较这些节点-已标记链路对中的已标记链路的链路标记集合中链路标记的个数,按链路标记个数由多到少将其组成的节点-已标记链路对压入栈;入栈时,其中NC(vi)>0的节点构成的网络编码节点-已标记链路对同时压入路由栈和网络编码栈,NC(vi)=0的节点构成的非网络编码节点-已标记链路对只压入路由栈;进行子步骤5.7;
5.7令节点集合VI=VIC-VIM;
5.8在集合VI中,判断是否存在节点vi满足条件:其与当前节点x间的链路可用带宽BW(x,vi)<f-(N-1)、且其网络编码操作数NC(vi)>0,是则将所有满足条件的节点构成子集合VI1,进行子步骤5.9,否则转子步骤5.10;
5.9对于子集合VI1中的节点,构建节点-链路对并顺序压入路由栈和网络编码栈;
5.10在集合VI中,判断是否存在节点vi满足条件:非信宿节点、其链路可用带宽向量BW(vi)不等于初始值、与当前节点x间的链路可用带宽BW(x,vi)<f-(N-1)且其网络编码操作数NC(vi)=0,是则将所有满足条件的节点构成子集合VI2,并进行子步骤5.11;否则转子步骤5.12;
5.11对于子集合VI2中的节点,构建节点-链路对并顺序压入路由栈;
5.12在集合VI中,判断是否存在节点vi满足条件:非信宿节点、其链路可用带宽向量BW(vi)不等于初始值、且与当前节点x间的链路可用带宽BW(x,vi)≥f-(N-1),是则将所有满足条件的节点构成子集合VI3,并进行子步骤5.13;否则转子步骤5.14;
5.13对于子集合VI3中的节点,任选其与当前节点x间一条未标记链路绑定该节点,构成节点-未标记链路对,根据其中节点网络编码操作数NC(vi)的大小,由大到小将这些节点-未标记链路对压入栈,当其中存在多个节点NC(vi)相同时,需再比较这些NC(vi)相同的节点与当前节点x间的链路可用带宽BW(x,vi)的大小,按照BW(x,vi)的大小由小到大把NC(vi)相同的节点构成的节点-未标记链路对压入栈;入栈时,其中NC(vi)>0的节点构成的网络编码节点-未标记链路对同时压入路由栈和网络编码栈,NC(vi)=0的节点构成的非网络编码节点-未标记链路对只压入路由栈;
5.14在集合VI中,判断是否存在节点vi满足条件:非信宿节点、且其链路可用带宽向量BW(vi)等于初始值,是则将所有满足条件的节点构成子集合VI4,并进行子步骤5.15;否则转子步骤5.16;
5.15对于子集合VI4中的节点,任选其与当前节点x间一条未标记链路绑定该节点,构成节点-未标记链路对,根据节点-未标记链路对中的节点与当前节点x间的链路可用带宽BW(x,vi)的大小,按由小到大的顺序将这些节点-未标记链路对压入路由栈;
5.16在集合VI中,判断是否存在信宿节点,是则对于其中所有的信宿节点,任选其与x间一条未标记链路绑定该信宿节点,构成信宿节点-未标记链路对,以任一顺序压入路由栈,并转步骤四;否则直接转步骤四;
六.回溯步骤,执行以下子步骤:
6.1检查路由栈是否为空,是则转子步骤6.2,否则设置路由栈最上面的节点-链路对所对应的始节点为停止点,并进行子步骤6.3;
6.2检查网络编码栈是否为空,是则转子步骤6.3,否则设置网络编码栈最上面的节点-链路对所对应的始节点为停止点,并进行子步骤6.3;
6.3判断当前节点x是否为停止点或者其已被加上确定标记,是则将信源节点设置为停止点,并转步骤四,否则进行子步骤6.4;
6.4清除当前节点x的临时标记,判断多播树N中x的来源链路EN(x)的链路标记集合LMC(EN(x))是否为只含有多播树N的链路标记的单元素集合{LMN(EN(x))},是则转子步骤6.6,否则进行子步骤6.5;
6.5多播树N中当前节点x的来源链路EN(x)的链路标记集合为多元素集合nm为经过该来源链路的已建好的多播树的编号,1≤nm<N,1≤m≤r;当前节点x在多播树N中的父节点的网络编码操作数减1,若r=1,则令替换因子查找因子若r≥2,则对于所有nm,1≤m≤r,令替换因子查找因子1≤m≤r;遍历以当前节点x为根节点的子树,检查子树中所有链路的链路标记集合中的链路标记,将这些链路标记作为母字符串,若母字符串中存在与查找因子完全相同的子串,将其替换为相应的替换因子
6.6除去当前节点x在多播树N中的来源链路EN(x)的链路标记集合LMC(EN(x))中多播树N的链路标记LMN(EN(x)),设置当前节点x在多播树N中的父节点为新的当前节点x,转子步骤6.3。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110025347.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于制备光致抗蚀剂图案的方法
- 下一篇:印刷电路板的制造方法及印刷电路板





