一种循环移位网络编码构造方法
技术领域
本发明涉及网络编码通信理论技术领域,更具体的是涉及一种循环移位网络编码构造方法。
背景技术
线性网络编码是一种融合了路由和编码的信息交换技术,其核心思想是在网络中的各个节点上对各条信道上收到的信息进行线性处理,然后将新生成信息输出给下游节点,中间节点扮演着编码器的角色。相比于目前广泛应用的存储-转发路由模式,网络编码允许中间节点参与编译码,从而可以达到网络的多播容量,提升了网络的吞吐效率。
在经典标量网络编码中,中间节点接收的L比特信息建模为有限域GF(2L)中元素,同时对L比特信息进行线性处理的系数(即局部编码核)也选自GF(2L)。向量网络编码是一种更广义的线性网络编码,其将L比特信息建模为向量空间GF(2)L中的向量,同时对L比特信息进行线性处理的系数选自基于GF(2)的L×L矩阵。相较于标量网络编码,向量网络编码丰富了中间节点的可选编码操作,从而为设计计算复杂度低的线性网络编码方案提供了新的手段,即选择特殊的L×L矩阵作为局部编码核。
向量网络编码中比较常见的两种低复杂度线性编码方式为置换码以及循环移位码:在置换码中,网络中间节点所选的局部编码核为L×L置换矩阵,即中间节点对输入的L比特信息进行的编码操作从L比特的向量和L×L矩阵乘积运算简化为L比特的向量位置置换,大大降低了编码操作的计算复杂度;为了进一步简化编码运算,中间节点可以将L比特信息所进行的线性处理限制在循环移位操作中,这就是循环移位码。例如,对一个L维行向量m=(m1,m2,...,mL),若进行一次j(1≤j≤L)位的右移循环移位操作生成m'=(mL–j+1,...,mL,m1,...,mL-j),则该操作可以表示为其中CL代表L×L循环置换矩阵
一个维度为δ的循环移位网络编码表示中间节点对每一个收到的L比特信息做最多δ次循环移位操作,再将所得结果进行逐位异或,即对L比特信息进行线性处理的系数(局部编码核)为最多δ个循环置换矩阵相加。
在现有技术中,针对信宿集合为T的单信源多信宿多播网络,当码长L为素数且2为其一本原根,即2,22,...,2L-1在模L下都不相同,同时满足时,一个维度δ、码率为(L-1)/L的循环移位网络编码可以被高效地构建出来。在实际传输过程中,信源有ω条出边,负责分发其生成的ω组L-1比特信息,而网络中所传输的信息长度为L,因此在传输之前,需要进行信源编码,在每组L-1比特信息前补充一个二元0,得到ω组L比特信息,最后,每个信宿均可分别从所接收的ωL比特新型中还原出信源所生成的ω(L-1)比特信息,然而上述编码方法中要求码长L为素数且2为其一本原根,这种约束条件限制其应用范围。
发明内容
本发明的目的在于:为了解决现有技术中存在的码长L只能是素数且2为其一个本原根的约束条件的问题,本发明提供一种循环移位网络编码构造方法,将码长L值推广到任意奇数,在扩大应用范围的同时依然具备上述循环移位网络编码的相关优势。
本发明为了实现上述目的具体采用以下技术方案:
一种循环移位网络编码构造方法,包括如下步骤:
S1:构造基于多项式环GF(2)[x]的标量网络编码(kd,e(x)),kd,e(x)表示网络中邻边对(d,e)上属于GF(2)[x]的局部编码核;
S2:通过标量网络编码(kd,e(x))构造码长为L的循环移位网络编码(Kd,e):
对于网络中的每个邻边对(d,e),通过局部编码核kd,e(x)构造一L×L、最多由δ个循环移位矩阵相加所构成的矩阵,设该矩阵为循环移位网络编码(Kd,e)在邻边对(d,e)上的局部编码核Kd,e;
S3:构造循环移位网络编码(Kd,e)的信源编码矩阵Gs:
对单一信源构建大小为的基于GF(2)的信源编码矩阵Gs,其中表示L的欧拉函数,即小于L的正整数中与L互质整数的数目,所构建的循环移位网络编码(Kd,e)码率为即信源有ω条出边,负责分发其生成的ω组比特信息,网络中每条边所传输的信息长度为L比特,每个信宿均可分别从所接收的ωL比特信息中还原出信源所生成的比特信息。
进一步的,所述S1中构造基于多项式环GF(2)[x]的标量网络编码(kd,e(x)),包括如下步骤:
S1.1:定义多项式集合 其中,系数aj∈{0,1}为GF(2)中的元素,δ表示中多项式非零项个数的最大值;
S1.2:定义α为基于GF(2)的L阶本原元,即αL=1;
S1.3:基于有限域,得出同时包括GF(2)和α的最小有限域为其中mL表示2模L的乘法阶,即mL是满足的最小值,对于奇数码长L,mL是的约数;
S1.4:定义R为集合{1,2,...,L-1}中所有与L互素的个整数集合,则R划分为个不同分圆陪集;
S1.5:从每个分圆陪集中任选一个代表元素rj,将S1中每个局部编码核kd,e(x)中的x赋值成后形成基于的标量网络编码
进一步的,所述S2中,将kd,e(x)中的x赋值成L×L循环置换矩阵CL,则得到循环移位网络编码(Kd,e)在邻边对(d,e)上的局部编码核Kd,e:
若kd,e(x)=0,则设Kd,e=0;
若kd,e(x)≠0,则设Kd,e=kd,e(CL)。
进一步的,所述S3中构造循环移位网络编码(Kd,e)的信源编码矩阵Gs,包括如下步骤:
S3.1:构建由1,α,...,αL-1生成的L×L范德蒙矩阵VL:
根据VL得到逆矩阵
S3.2:设IL是L×L单位矩阵,遍历每个0≤j≤L-1,当j不属于整数集合R时,删除矩阵IL中的第j+1行,最后得到基于的矩阵
S3.3:计算并截取计算所得矩阵的前列,得到基于的的矩阵并计算的逆矩阵
S3.4:计算基于GF(2)的矩阵G:
S3.5:计算得到基于GF(2)的信源编码矩阵Gs:
其中,Iω表示ω×ω单位矩阵,表示克罗地克积。
进一步的,定义Kδ为将S1.1中的多项式集合内每个多项式中x赋值成α所计算得到的属于的不同元素数量,当时,通过以下步骤构建标量网络编码(kd,e(x)):
步骤一:对单一信源s的ω条出边,定义fe(x)为边e∈Out(s)的L维特征列向量,初始时满足[fe(x)]e∈Out(s)=Iω,即这ω条出边的特征向量按列并置可得到一个ω×ω单位矩阵;对于每个信宿t∈T,定义包含ω个元素的边集It,初始时满足It=Out(s),并确定任意一个包含ω条始于信源终于信宿的边分离路径的集合υt;对于边集It中每个元素e′∈It以及每个定义基于的ω维判定列向量wt,e',j,初始时满足
步骤二:根据网络的拓扑顺序处理网络中每一个非源节点v,对v的每一条出边e分配局部编码核包括如下步骤:
步骤a:对于v的每一条入边d,定义信宿集T的一个子集Td:若信宿t∈T满足邻边对(d,e)属于集合υt中的路径,则t∈Td;若|Td|=0,则令kd,e(x)=0;
步骤b:令{d1,...,dl}表示满足的非源节点v所有的入边,1≤i≤l;
步骤c:对所有满足的非源节点v的入边{d1,...,dl}进行遍历,当i=1时,令并定义ω维列向量当2≤i≤l时,按照步骤c.1至步骤c.4逐步分配并更新f(x)来确保在每一次i的循环结束后公式(1)成立:
其中表示将ω维列向量f(x)中x赋值为所得向量;
步骤c.1:若对所有的和 均成立,则令保持f(x)不变,并结束对当前i的循环;
否则,对于定义集合Aj:
步骤c.2:从中选择一个多项式对于使其满足:
步骤c.3:更新f(x)为结束对当前i的循环;
步骤c.4:当所有的i都循环完毕后,得到边e的特征列向量fe(x)=f(x),对于每一个 在其边集It中使用边e替换边di,并定义更新当前边集It中除了边e以外的所有边d′的wt,d',j:至此,以e为出边的邻边对(d,e)的局部编码核均已确定;
步骤三:在步骤二中,特征向量以及判定向量能够保证对所有的信宿t,当时,公式(2)和公式(3)恒成立:
所构建的标量网络编码(kd,e(x))复杂度为:
其中,O表示量级,E表示网络中的边集。
本发明的有益效果如下:
1、本发明的方法在编码过程中,对接收到的L比特信息只进行循环移位和逐位异或操作,能够极大地简化网络中间节点的线性编码操作,从而降低编码操作的复杂度。
2、本发明的构造方法适用于任意奇数码长L,解决了现有循环移位网络编码构造方法只适用于码长为素数、且2为其一本原根的约束条件问题,提高了循环移位网络编码的构造灵活性,扩大了应用范围。
3、本发明方法所构造的循环移位网络编码码率为不局限于(L-1)/L,比特的传输冗余,可以更灵活地与信道编码技术进行结合,提高传输的可靠性。
4、本发明的方法中,只要给定满足一定条件的基于的标量网络编码,均可通过计算构造出任意奇数码长L的循环移位网络编码的局部编码核。
5、当时,可以通过本发明的方法高效构建标量网络编码(kd,e(x))。
附图说明
图1是本发明的方法流程示意图
图2是本发明实施例2的(4,2)组合网络示意图。
具体实施方式
为了本技术领域的人员更好的理解本发明,下面结合附图和以下实施例对本发明作进一步详细描述。
实施例1
如图1所示,本实施例提供一种循环移位网络编码构造方法,包括如下步骤:
S1:构造基于多项式环GF(2)[x]的标量网络编码(kd,e(x)),kd,e(x)表示网络中邻边对(d,e)上属于GF(2)[x]的局部编码核,包括如下步骤:
S1.1:定义多项式集合 其中,系数aj∈{0,1}为GF(2)中的元素,δ表示中多项式非零项个数的最大值;
S1.2:定义α为基于GF(2)的L阶本原元,即αL=1;
S1.3:基于有限域,得出同时包括GF(2)和α的最小有限域为其中mL表示2模L的乘法阶,即mL是满足的最小值,对于奇数码长L,mL是的约数;
S1.4:定义R为集合{1,2,...,L-1}中所有与L互素的个整数集合,则R划分为个不同分圆陪集;
S1.5:从每个分圆陪集中任选一个代表元素rj,将S1中每个局部编码核kd,e(x)中的x赋值成后形成基于的标量网络编码
S2:通过标量网络编码(kd,e(x))构造码长为L的循环移位网络编码(Kd,e):
对于网络中的每个邻边对(d,e),通过局部编码核kd,e(x)构造一L×L、最多由δ个循环移位矩阵相加所构成的矩阵,设该矩阵为循环移位网络编码(Kd,e)在邻边对(d,e)上的局部编码核Kd,e,具体为:
将kd,e(x)中的x赋值成L×L循环置换矩阵CL,则得到循环移位网络编码(Kd,e)在邻边对(d,e)上的局部编码核Kd,e:
若kd,e(x)=0,则设Kd,e=0;
若kd,e(x)≠0,则设Kd,e=kd,e(CL);
S3:构造循环移位网络编码(Kd,e)的信源编码矩阵Gs
对单一信源构建大小为的基于GF(2)的信源编码矩阵Gs,其中表示L的欧拉函数,即小于L的正整数中与L互质整数的数目,包括如下步骤:
S3.1:构建由1,α,...,αL-1生成的L×L范德蒙矩阵VL:
根据VL得到逆矩阵
S3.2:设IL是L×L单位矩阵,遍历每个0≤j≤L-1,当j不属于整数集合R时,删除矩阵IL中的第j+1行,最后得到基于的矩阵
S3.3:计算并截取计算所得矩阵的前列,得到基于的的矩阵并计算的逆矩阵
S3.4:计算基于GF(2)的矩阵G:
S3.5:计算得到基于GF(2)的信源编码矩阵Gs:
其中,Iω表示ω×ω单位矩阵,表示克罗地克积;
本实施例所构建的循环移位网络编码(Kd,e)码率为即信源有ω条出边,负责分发其生成的ω组比特信息,网络中每条边所传输的信息长度为L比特,每个信宿均可分别从所接收的ωL比特信息中还原出信源所生成的比特信息。
本实施例还提供一种能够高效构建标量网络编码(kd,e(x))的方法,具体为:
定义Kδ为将S1.1中的多项式集合内每个多项式中x赋值成α所计算得到的属于的不同元素数量,当时,通过以下步骤构建标量网络编码(kd,e(x)):
步骤一:对单一信源s的ω条出边,定义fe(x)为边e∈Out(s)的L维特征列向量,初始时满足[fe(x)]e∈Out(s)=Iω,即这ω条出边的特征向量按列并置可得到一个ω×ω单位矩阵;对于每个信宿t∈T,定义包含ω个元素的边集It,初始时满足It=Out(s),并确定任意一个包含ω条始于信源终于信宿的边分离路径的集合υt;对于边集It中每个元素e′∈It以及每个定义基于的ω维判定列向量wt,e',j,初始时满足
步骤二:根据网络的拓扑顺序处理网络中每一个非源节点v,对v的每一条出边e分配局部编码核包括如下步骤:
步骤a:对于v的每一条入边d,定义信宿集T的一个子集Td:若信宿t∈T满足邻边对(d,e)属于集合υt中的路径,则t∈Td;若|Td|=0,则令kd,e(x)=0;
步骤b:令{d1,...,dl}表示满足的非源节点v所有的入边,1≤i≤l;
步骤c:对所有满足的非源节点v的入边{d1,...,dl}进行遍历,当i=1时,令并定义ω维列向量当2≤i≤l时,按照步骤c.1至步骤c.4逐步分配并更新f(x)来确保在每一次i的循环结束后公式(1)成立:
其中表示将ω维列向量f(x)中x赋值为所得向量;
步骤c.1:若对所有的和 均成立,则令保持f(x)不变,并结束对当前i的循环;
否则,对于定义集合Aj:
步骤c.2:从中选择一个多项式对于使其满足:
步骤c.3:更新f(x)为结束对当前i的循环;
步骤c.4:当所有的i都循环完毕后,得到边e的特征列向量fe(x)=f(x),对于每一个 在其边集It中使用边e替换边di,并定义更新当前边集It中除了边e以外的所有边d′的wt,d',j:至此,以e为出边的邻边对(d,e)的局部编码核均已确定;
步骤三:在步骤二中,特征向量以及判定向量能够保证对所有的信宿t,当时,公式(2)和公式(3)恒成立:
所构建的标量网络编码(kd,e(x))复杂度为:
其中,O表示量级,E表示网络中的边集。
实施例2
如图2所示,本实施例在实施例1的基础之上结合经典(4,2)组合网络高效构建标量网络编码(kd,e(x)):
该多播网络由一个信源节点s,四个中间节点和六个信宿组成,信源的出边数目ω=2,令编码长度L=7,维度δ=1,则mL=3, K1=8,从两个模7分圆陪集{1,2,4}、{3,5,6}中分别选出代表r1=1,r2=3。
在本实施例中,虽然不满足但仍然可以采用实施例1中的步骤一到步骤三高效构建标量网络编码(kd,e(x)),这也进一步说明上述步骤的使用条件更为广义,只是保证上述步骤可行的一个充分非必要条件。
根据步骤一,作为初始化,对于每一个信宿t∈T,均设定It=Out(s)={e1,e2},以及同时确定:
这里eij表示从中间节点vi到信宿tj的边;
根据步骤二对于节点u,逐步处理它的每一条出边:
处理e3:
步骤a:构成于是设
步骤b:得到l=1,并设定d1=e1;
步骤c:首先设并且由于l=1,则执行步骤c.4,得到e3的特征列向量并更新以及
处理e4:
步骤a:构成
步骤b:得到l=2,并设定d1=e1,d2=e2;
步骤c:首先设当i=2,由于且算法继续执行并获得Aj={0},j∈{1,2};
为了满足公式(*),可以分配更新
步骤c.4:更新得到的e4的特征列向量并更新 以及:
处理e5:
步骤a:构成
步骤b:得到l=2,并设定d1=e1,d2=e2;
步骤c:首先设当i=2,由于且算法继续执行并获得
为了满足公式(*),可以分配更新
步骤c.4:更新得到的e5的特征列向量并更新 以及:
处理e6:
步骤a:构成设
步骤b:得到l=1,并设定d1=e2;
步骤c:首先设并且由于l=1,则执行步骤c.4,得到e6的特征列向量并更新以及:
步骤三:在上述循环过程中,公式(2)和公式(3)恒成立:
对于每一个节点vi,1≤i≤4,由于其入边条数为1,且每一个邻边对(ei,eij)都在υt集合的某些路径上,因此算法将至此,每一条邻边对都已经分配了一个对于所有的1≤j≤2,将每个局部编码核kd,e(x)中的x赋值成后所形成的基于GF(23)标量网络编码均可以保证每个信宿还原出信源所生成的属于GF(23)的比特信息;
通过以上步骤得到满足一定条件的基于扩展域GF(23)的标量网络编码之后,在S2中可通过标量网络编码(kd,e(x))构造码长为7的循环移位网络编码(Kd,e):
对于每个邻边对(d,e),将局部编码核kd,e(x)中的x赋值成7×7循环置换矩阵C7,可计算得到维度为2的7×7循环移位矩阵,该矩阵即为循环移位网络编码在邻边对(d,e)上的局部编码核Kd,e:
若kd,e(x)=0,则设Kd,e=0;
若kd,e(x)≠0,则设Kd,e=kd,e(CL);
因此,一个维度为2、码率为6/7的循环移位码被构建出来:
最后,按照S3构造信源编码矩阵:在实际传输过程中,信源负责分发总共2组6比特信息,上述步骤所构建的循环移位网络编码(Kd,e)为了可以保证信源生成的2组6比特信息均可以被信宿完整接收,需要按照如下步骤构建基于GF(2)的12×14信源编码矩阵Gs,信源通过该矩阵将生成的2组6比特信息转换成2组7比特信息传输至网络:
S3.1:构建由1,α,...,α6生成的7×7范德蒙矩阵V7:
根据V7得到逆矩阵
S3.2:遍历每个0≤j≤6,当j=0时不属于整数集合R={1,2,3,4,5,6},删除矩阵I7中的第1行,最后得到6×7矩阵
S3.3:计算并截取计算所得矩阵的前6列,得到6×6的矩阵并计算的逆矩阵
S3.4:计算基于GF(2)的6×7矩阵G:这里α∈GF(23)是7阶本原根,即α7=1,多项式x3+x+1,即α3+α+1=0:
S3.5:计算得到矩阵G和基于GF(2)的信源编码矩阵Gs:
其中,表示克罗地克积,至此,通过本实施例高效构建出了一个码率为6/7的循环移位网络编码(Kd,e)。
以上所述,仅为本发明的较佳实施例,并不用以限制本发明,本发明的专利保护范围以权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。