作 者:彭木根 王月新 王文博
网络编码方案可分为线性和非线性两种,其中线性方法的编码和解码都相对简单,因此,一般都倾向于采用线性方法。Li[3]指出在有向网络中,如果一个网络编码问题有解,则一定有线性解。从理论上保证了线性算法的有效性。线性组合要求网络节点具有更高的计算能力,然而根据摩尔定律,随着处理成本的降低,网络的“瓶颈”逐渐转向业务所需的更高的带宽支持和服务质量(QoS)保证。网络编码实际上是用节点处理能力换取更高的网络效率。
2 线性网络编码处理过程
线性网络编码是将节点传送信息线性映射到一个有限域内,利用线性关系实现编译码过程[4]。假设每个信息数据包为L 比特,当它与要组合的数据包长度不同时,较短的信息附加额外一串“0”,将包中的s个连续比特组成域上的一个符号,则一个包中包含L /s个符号。在线性编码下,运用乘法和加法运算,使从节点发送出去的数据为该节点接收到信息的线性组合。
2.1编码过程
假设一个源或多个源产生的原始数据包信息为M 1……M n,则在线性网络编码中传输的数据可表示为为(其中g1……gn表示相应的编码系数),对每个符号有:,
Mik和Xk分别为Mi和X的第k个符号。传输的数据包中既包括编码向量,又包括信息向量,编码向量用于接收端的解码。
编码过程采用迭代的方法,若一个节点已经接收和存储的包信息集合为(g1,X1)……(gm,X m),则这个节点可以通过选定编码系数h1……hm和运用算式得到新的信息包
(g',X'),编码向量g'可以通过直接的代数计算得到,该过程可以在若干个节点中重复操作。
2.2解码过程
假设节点接收集合为(g 1,X 1)……(g m,X m),为了恢复原始信息,需要求解{}的m个等式中的n个未知数M i,恢复所有数据要求M≥n,也就是说接收包的个数至少为原信息的个数。而有些线性组合可能是线性相关的,M≥n并不是充分条件,但却是网络编码的重要条件。
解码需要求解一组线性方程。实际中,可以应用高斯消去的方法:节点存贮编码向量以及编码之后的结果,以行向量的形式,存储在所谓解码矩阵中。最初,解码矩阵中只包含未经该节点编码的包以及与之相对应的编码向量(如果有的话),否则为空。当接收到一个已编码包后,会从中抽取它的编码向量以及编码结果,放入到解码矩阵中。解码矩阵会经过等价变换变成行阶梯型,最终变成行最简型。所收到的某一个包如果可以增加矩阵的秩,则称之为更新包,如果所收到的包是非更新的,它可以通过等价变换变为全零,从而可以忽略。当解码矩阵变换成最简型后,方程组得解。这种情况发生在当接收到n 个线性独立的编码向量之后。
2.3线性组合方案
设计网络编码的问题在于每个节点如何进行编码组合,目前在算法设计上,可以分为确定性编码和随机编码两种方案。