一种路由选择方法

文档序号:7628237阅读:82来源:国知局
专利名称:一种路由选择方法
技术领域
本发明涉及到现代电信交换技术领域中交换网络的路由选择技术,特别涉及到一种基于Clos交换网络的路由选择方法。
背景技术
交换网络是指能提供可交换通信业务的网络,它由多个用户所共用,并可以在其中任意两个用户终端之间建立通信连接。交换网络由若干个交换单元按照一定的拓扑结构和控制方式构成。如图1所示,通常,交换网络具有若干个输入端和若干个输出端、若干交换单元以及一个控制单元,其功能就是通过所述控制单元的控制,在任意输入端和输出端之间经由所述交换单元建立通信连接。
其中,交换单元是构成交换网络的最基本部件,其结构如图2所示。交换单元具有若干条入线和若干条出线,其功能就是在任意的入线和出线之间建立连接,或者说是将入线的信息分发到出线上,这就是所谓的交换功能。如果一个交换单元具有M条入线,N条出线,就将其称为M×N的交换单元。若一个交换单元入线数与出线数相等且均为N,则将该交换单元称为N×N的对称交换单元。每个交换单元还具有与交换网络控制单元相连接的,接收控制单元控制命令的控制端及输出内部状态到控制单元的状态端。
已知用若干个交换单元按照一定的拓扑结构和控制方式就可以构成交换网络。根据拓扑结构的不同,可以将交换网络划分为单级或多级交换网络。
单级交换网络是由一个交换单元或若干个位于同一级的交换单元构成的,如图3a和图3b所示。
多级交换网络是由多级交换单元构成的。图4显示了一个三级交换网络的结构示意图,其中,各级交换单元之间的连接线路称为级间链路。
Clos交换网络是一种最常用的多级互连网络,是由贝尔实验室的研究员Dr.Charles Clos于1953年提出的。图4所示的交换网络实际上就是一个三级对称的Clos交换网络,该网络的输入级有r个n×m的交换单元,中间级有m个r×r的交换单元,输出级有r个m×n的交换单元,由此,该Clos交换网络共有N=n×r个输入端及输出端。每一个交换单元都与下一级的各个交换单元有且仅有一条连接,因此任意一个输入端与输出端之间均存在一条通过中间级交换单元的路径。其中,m、n、r是整数,决定了交换网络的容量,称为网络参数,并记为C(m,n,r)。
经证明,当m≥2n-1时,参数为C(m,n,r)的三级Clos交换网络是严格无阻塞的;当m≥n时,参数为C(m,n,r)的三级Clos交换网络是一种可重排非阻塞网络。
在多级交换网络中,为要交换的信息选择从输入到输出端的一条合适的路径的方法称为路由选择方法或路由选择算法,经过路由选择后得到的路由决定了如何控制交换单元建立连接,因此路由选择算法又称为网络控制算法。虽然Clos交换网络已经有50多年的历史,人们对其连接特性和路由选择算法进行了大量的研究,但是迄今为止,仍然缺乏令人满意的、高效的路由选择算法控制Clos交换网络工作。由于Clos交换网络应用很广泛,因此如何找到一种路由选择算法控制Clos交换网络高效地工作一直是业内人士关注的课题。

发明内容
为了解决上述技术问题,本发明提供了一种路由选择方法,适用于可重排非阻塞三级Clos交换网络,可以控制所述Clos交换网络高效地进行路由选择。
本发明所述由选择方法,包括A、根据所述三级Clos交换网络的输入和输出信号建立输入矩阵和输出矩阵;B、通过对所述输出矩阵的每一行进行行交换得到第一中间矩阵;C、通过对所述第一中间矩阵的每一列进行列交换得到第二中间矩阵;D、分别比较所述输入矩阵与所述第二中间矩阵、所述第二中间矩阵与所述第一中间矩阵、以及所述第一中间矩阵与所述输出矩阵,对各级交换单元的内部开关进行设置,确定所述Clos交换网络任意输入端到其对应输出端的路由。
步骤A所述建立输入矩阵和输出矩阵为将由表示第一级交换单元的编号的第一个下标以及表示每个交换单元中的入线编号的第二个下标所组成的二维下标作为所述输入和输出矩阵的元素建立所述输入和输出矩阵。
步骤B所述行交换通过正规化均匀矩阵方法实现。
本发明所述正规化均匀矩阵方法包括对所述输出矩阵的每一列k,令k从1到m,依次执行列正规化操作;所述列正规化操作包括a、检测本列k所包含元素的第一个下标中是否缺少集合{1,2,...,n}中的数字,其中,n为所述输出矩阵的行数,如果是,则执行步骤b;否则,结束本列的列正规化操作,继续执行所述输出矩阵下一列的列正规化操作;b、将本列k所包含元素的第一个下标中所缺少的所有数字记录在一个缺少集合中,在本列k所包含元素的第一个下标中查找重复的数字,将查找到的重复数字加入一个检测集合,并将这些重复数字所在的行数组成集合压入一个行数堆栈;c、取所述行数堆栈栈顶的集合作为当前的行数集合,在该行数集合所包含的行数且列数大于k的范围内查找第一个下标为所述缺少集合中的数字的元素,如果有这样的元素,将该元素所在的行数及列数组成一个坐标记入一个临时变量,然后执行步骤f;否则,执行步骤d;d、在当前行数集合所包含的行数以及列数大于k的范围内查找第一个下标不是所述检测集合所包含数字的元素,将这些元素的第一个下标组成集合C,并将集合C所包含的数字加入所述检测集合,然后执行步骤e;
e、在本列k所包含元素的第一个下标中查找集合C所包含的数字,将这些数字对应元素所在的行数组成集合D,压入所述行数堆栈,然后返回步骤c;f、判断行数堆栈Layer_all是否为空,如果是,则执行h;否则,弹出所述行数堆栈栈顶的集合作为当前的行数集合,并在当前的行数集合所包含的行数且列数大于k的范围内查找与所述临时变量所保存坐标表示的行数及列数上元素第一个坐标相等的元素,将该元素所在的行数以及当前的列数k组成一个坐标记入所述临时变量,然后执行步骤g;g、将所述临时变量记录的行数和列数组成的坐标以及步骤f中查找到的元素所在的行数和列数组成坐标压入一个交换堆栈,返回步骤f;h、根据交换堆栈所记录的坐标进行对应位置的元素交换,然后返回步骤a。
步骤h所述根据交换堆栈所记录的坐标进行对应位置的元素交换包括h1、判断所述交换堆栈是否为空,如果是,则结束;否则,从所述交换堆栈中弹出两个由行数和列数组成的坐标,并交换这两个坐标位置上的元素,然后返回本步骤h1。
步骤C所述列交换为根据所述第一中间矩阵每一列元素的第一个下标依次对所述第一中间矩阵的每一列元素进行重新排列,使每一列元素第一个下标所组成的向量为(1,2,3,...,n)T,n为所述输出矩阵的行数。
步骤D所述对各级交换单元的内部开关进行设置包括D1、比较所述输入矩阵和所述第二中间矩阵,根据这两个矩阵对应行元素第二个下标之间的交换关系,对第一级的交换单元内部的开关进行设置;D2、比较所述第二中间矩阵和所述第一中间矩阵,根据这两个矩阵对应列元素第一个下标之间的交换关系,对第二级的交换单元内部的开关进行设置;D3、比较所述第一中间矩阵和所述输出矩阵,根据这两个矩阵对应行元素之间的交换关系,对第三级的交换单元内部的开关进行设置。
由此可以看出,本发明所述的方法通过为三级Clos交换网络引入新的矩阵模型,对并对矩阵进行同行内元素的行交换或者同列内元素的列交换,通过采用所述正规化均匀矩阵的方法,从输出矩阵推导出中间矩阵,然后将输出矩阵、输入矩阵分别与推导出的中间矩阵进行比较,得到各级交换单元内部的开关状态,从而快速并且高效地在所述三级Clos交换网络中找到从输入端到输出端的合适路由。


图1为现有交换网络结构示意图;图2为现有交换单元结构示意图;图3A和图3B为单级交换网络结构示意图;图4为一个三级交换网络结构示意图,特别地,该图为一个参数为C(m,n,r)的三级Clos交换网络结构示意图;图5为发明所述矩阵模型中各矩阵之间变换关系示意图;图6为本发明所述路由选择方法流程图;图7为一个三级Clos交换网络的路由选择方法示意图;图8为本发明所述正规化均匀矩阵的方法流程图;图9为本发明所述根据交换堆栈所记录的行数及列数进行行交换的方法流程图;图10为n=m,且n<100时正规化均匀矩阵的复杂度曲线示意图。
具体实施例方式
为使发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
从图4所示的三级Clos交换网络的结构可以看出,由于该交换网络中各级交换单元之间连接关系已经确定,因此,在给定输入端到输出端的交换关系后,本发明所述的路由选择算法所主要解决的问题在于如何确定各级交换单元内部的交换路由,也就是如何确定各级交换单元内部的开关状态。为了解决这一问题,本发明所述路由选择方法的核心思想在于,通过为三级Clos交换网络引入新的矩阵模型,对并对矩阵进行同行内元素的行交换或者同列内元素的列交换,从输出矩阵推导出中间矩阵,然后将输出矩阵、输入矩阵分别与推导出的中间矩阵进行比较,得到各级交换单元内部的开关状态,从而在所述三级Clos交换网络中找到从输入端到输出端的合适路由。
为了表示方便,将本发明所述三级Clos交换网络的所有输入信号用一个r×n的输入矩阵IM表示,如下所示。其中,该输入矩阵IM的第k行表示所述Clos交换网络第一级中的第k个交换单元的n个输入,k=1,2,...,r。
IM=i11i12i13···i1ni21i22i23···i2n···············ir1ir2ir3···irn]]>同时所述三级Clos交换网络的所有输出信号也可以用一个r×n的输出矩阵OM表示,如下所示,其中,该中间矩阵OM的第k行表示所述Clos交换网络第三级中的第k个交换单元的n个输出组成了,k=1,2,...,r。
OM=o11o12o13···o1no21o22o23···o2n···············or1or2or3···orn]]>这样,在只考虑单播、不考虑组播和广播的情况下,所述Clos交换网络的交换操作将等价于将输入矩阵IM中的元素变换到输出矩阵OM的方法,也就是说,上述输出矩阵OM实际上是由输入矩阵IM变换得来的。
从上述输入矩阵IM的表达形式以及三级Clos交换网络的连接方式可以看出,在m=n时,对于所述Clos交换网络的第一级交换单元而言,其中,第k个交换单元所完成的其内部n个输入信号之间的任意交换均能够通过对输入矩阵IM中第k行元素之间的变换来模拟。这样,当上述Clos交换网络的所有输入信号经过第一级交换单元的交换操作输出后,相当于对矩阵IM的每一行内的元素都进行了某种交换,也称行交换,由此可以得到一个中间矩阵PM,该中间矩阵PM可以表示所述Clos交换网络第一级交换单元的输出信号。
从图4所示的Clos交换网络中第一级和第二级交换单元之间的连接关系可以看出,所述中间矩阵PM第k列的r个元素就是第二级交换单元中第k个交换单元的r个输入信号。由于所述第二级交换单元中的每个交换单元能完成其r个输入信号的任意交换,并且这种交换可以通过对中间矩阵PM中每一列元素之间的变换来模拟,因此,由第二级交换单元进行的交换操作就相当于对矩阵PM的每一列内的元素进行某种交换,也称列交换,并由此得到另一中间矩阵NM,该中间矩阵NM可以表示所述Clos交换网络第二级交换单元的输出信号。
类似地,从图4所示的Clos交换网络中第二级和第三级交换单元之间的连接关系可以看出,所述中间矩阵NM第k行的n个元素就是第三级交换单元中第k个交换单元的n个输入信号。因此,由第三级交换单元进行的交换操作相当于对矩阵NM的每一行进行了行交换,并由此应当得到所述的输出矩阵OM。
根据上述内容,在三级Clos交换网络中进行路由选择的问题就可以转换为找出输入矩阵IM的正确行交换操作得到中间矩阵PM;找出中间矩阵PM的正确列交换得到另一中间矩阵NM;以及找出中间矩阵NM的正确行交换,使其行交换结果为所述的输出矩阵OM。
如图5所示,这四个矩阵IM,PM,NM和OM以及它们之间的变换关系组成了三级Clos交换网络的矩阵模型。这样,在得到了上述四个矩阵之后,就可以根据这四个矩阵之间的变换关系得到各级交换单元内部的开关状态了,从而得到从所述Clos交换网络的一个输入端到其对应输出端的路由。
由此可以看出,本发明所述路由选择方法的任务就是通过找出这四个矩阵之间的三级交换关系从而找到一种从输入矩阵到输出矩阵的变换。所述三级交换包括(1)输入矩阵IM每一行的行交换;(2)中间矩阵PM每一列的列交换;以及(3)中间矩阵NM每一行的行交换。
进一步,由于输入矩阵IM和输出矩阵OM均是已知的,还可以将上述三级交换的问题转化为(1)通过对输出矩阵OM每一行内元素的变换得到中间矩阵NM,为描述方便,将其称为第一中间矩阵;(2)通过对中间矩阵NM每一列内元素的变换得到中间矩阵PM,将其称为第二中间矩阵;以及(3)通过对中间矩阵PM每一行内元素的变换得到输入矩阵IM。通过上述方法也可以得到上述四个矩阵,从而根据这四个矩阵之间的变换关系得到从Clos交换网络一个输入端到其对应输出端的路由。
基于上述内容,本发明所述的路由选择方法主要包括以下几个步骤,如图6所示步骤1通过对输出矩阵OM的每一行进行行交换得到第一中间矩阵NM;步骤2通过对第一中间矩阵NM的每一列进行列交换得到第二中间矩阵PM;步骤3分别比较输入矩阵IM与第一中间矩阵PM,第一中间矩阵PM与第二中间矩阵NM,以及第二中间矩阵NM与输出矩阵OM得到各级交换单元内部的交换路由,即各级交换单元内部的开关状态,从而得到该Clos交换网络任意输入端到其对应输出端的路由。
下面将通过具体示例详细说明通过上述的路由选择方法是如何实现路由选择的。
在该例中,假设m=n=5,所需从输入端到输出端的交换为P=(1 25 17 1314 5 24 12)(2 16 9 22 4 6 8 3 23 18 7 15 11),也就是,将输入信号从输入端口1交换到输出端口25,从输入端口25交换到输出端口17,从输入端口17交换到输出端口13,......,从输入端口12交换到输出端口1,从输入端口2交换到输出端口16,从输入端口16交换到输出端口9,......,从输入端口11交换到输出端口2。由此,可以得到如下的输入矩阵IM和输出矩阵OM。其中,每个元素表示输入端的编号。
IM=12345678910111213141516171819202122232425OM=25162362481532210211451191371920214181217]]>为了表示及运算方便且不失一般性,可以使用矩阵IM和OM每个元素的二维下标来表示各个元素,其中,每个元素的第一个下标表示第一级交换单元的编号,而第二个下标则表示每个交换单元中的入线编号,从而得到两个新矩阵I’M和O’M。这两个新的矩阵与矩阵IM和OM是完全等价的。
I′M=11121314152122232425313233343541424344455152535455O′M=55415321542335135225121134153124332244455114433242]]>现假设通过某种算法(具体方法将在后面的描述中详细说明),对输出矩阵O’M的每一行进行行交换得到第一中间矩阵N’M,如下所示。该第一中间矩阵N’M的特征是它的每一列元素的第一个下标所组成的向量必定是(1,2,3,4,5)T的某种变换。其中,运算符()T表示向量的转置运算。
N′M=41555321543523135225121134153124332244455143423214]]>接下来,再通过对第一中间矩阵N’M每一列的列交换,将第一中间矩阵N’M转换成第二中间矩阵P’M,使第二中间矩阵P’M每一列元素的第一个下标所组成的向量是(1,2,3,4,5)T,如下所示。由于所述第一矩阵N’M的每一列元素的第一个下标组成的向量是(1,2,3,4,5)T的某种变换,因此从第一中间矩阵N’M到第二中间矩阵P’M的转换是很简单且显而易见的,即根据第一中间矩阵N’M每一列元素的第一个下标对该列元素进行重新排列即可得到所述第二中间矩阵P’M。
P′M=12111315142423222125353334323141434244455155535254]]>从得到的中间矩阵P’M可以看出,只要对所述第二中间矩阵P’M每一行进行行交换,即使该矩阵每一行元素的第二个下标组成的向量是(1,2,3,4,5),就可以得到输入矩阵I’M了。
一旦得到矩阵P’M和矩阵N’M,就可以很简单地通过使用这些矩阵之间的关系为各级交换单元内部的开关设定状态,确定从所述三级Clos交换网络的任意输入端到其对应输出端的路由了。现结合图7具体说明如下首先,比较输入矩阵I’M和第二中间矩阵P’M,根据输入矩阵I’M和第二中间矩阵P’M中对应行元素第二个下标之间的交换关系,对第一级的交换单元内部的开关进行设置。例如,如图7所示,从第二中间矩阵P’M的第一行元素的第二个下标(2,1,3,5,4)可以得到第一级交换单元中的第一个交换单元的输出端口1,2,3,4,5应该分别交换连接到其输入端口2,1,3,5,4。从第二中间矩阵P’M的第二行元素的第二个下标(4,3,2,1,5)可以得到第一级交换单元中的第二个交换单元的输出端口1,2,3,4,5应该分别交换连接到其输入端口4,3,2,1,5,并依此类推,可以确定第一级交换单元中每个交换单元内部的开关状态。
其次,比较第二中间矩阵P’M和第一中间矩阵N’M,根据第二中间矩阵P’M和第一中间矩阵N’M中对应列元素第一个下标之间的交换关系,对第二级的交换单元内部的开关进行设置。例如,如图7所示,根据第二中间矩阵P’M的第一列元素的第一个下标(1,2,3,4,5)T及第一中间矩阵N’M的第一列元素的第一个下标(4,3,1,2,5)T,设置第二级交换单元中的第一个交换单元的输出端口1,2,3,4,5分别连接到其输入端口4,3,1,2,5。类似地,根据第二中间矩阵P’M第二列元素的第一个下标(1,2,3,4,5)T及第一中间矩阵N’M第二列元素的第一个下标(5,2,1,3,4)T,设置第二个交换单元的输出端口1,2,3,4,5分别连接到其输入端口5,2,1,3,4,并依此类推,可以确定第二级交换单元中每个交换单元的开关状态。
最后,按照与上述类似的方法,比较第一中间矩阵N’M和输出矩阵O’M,根据第一中间矩阵N’M和输出矩阵O’M中对应行元素之间的交换关系,对第三级的交换单元内部的开关进行设置。例如,如图7所示,根据第一中间矩阵N’M的第一行元素(41,55,53,21,54)及输出矩阵O’M的第一行元素(55,41,53,21,54),设置第三级交换单元中的第一个交换单元输入端口1,2,3,4,5应分别连接到其输入端口2,1,3,4,5,并依此类推,可以确定第三级交换单元中每个交换单元的开关状态。
由此上面的例子可以看出,通过本发明所述的路由选择方法,在给定输入和输出信号的情况下,可以在所述三级Clos交换网络中找到从输入端到对应输出端的合适的路由,实现所述路由选择。另外,还可以看出,本发明所述路由选择方法的步骤1,即经每一行的行交换从输出矩阵O’M得到第一中间矩阵N’M的方法是本发明所要解决的最关键的问题。
下面将通过具体的示例详细说明通过对输出矩阵O’M的每一行进行行交换得到第一中间矩阵N’M的方法。
由于第一中间矩阵N’M具有其每一列元素的第一个下标组成的向量必定是(1,2,...,n)T的某种变换,且与其第二个下标无关的特点,这样,在求解上述从矩阵O’M变换得到第一中间矩阵N’M的问题时,可以暂时忽略矩阵O’M及N’M中每个元素的第二个下标,仅用第一个下标来表示所述矩阵O’M及N’M,此时对输出矩阵O’M进行行交换得到第一中间矩阵N’M的问题可以等价于假设A是n×m的均匀矩阵,即矩阵A具有m个为1的元素,m个为2的元素,......,m个为n的元素,仅仅对该均匀矩阵A每一行内的元素进行行交换,将矩阵A转换为一个正规均匀矩阵B,即使矩阵B中每一列的元素所组成的向量为(1,2,...,n)T的一个交换,即矩阵B中每一列的元素的集合等于{1,2,...,n},其中,运算符{}表示集合运算。
在描述从均匀矩阵A求解正规均匀矩阵B的方法之前,首先需要证明这样的正规均匀矩阵B是存在的。
为了描述方便,假设S是一个集合,Ai⊆S,]]>并且当0≤i≤k时,ai∈Ai,当i≠j时,如果ai≠aj,称元素ai是Ai的不同样本的集合。
下面根据霍尔(Hall)定理(存在一个Ai的不同样本的集合,对于任意的K⊆{1,2,...,k},]]>满足|∪i∈KSi|≥|K|]]>)证明如果M是一个n×m的均匀矩阵,则M的一个列可以通过行内变换转化为正规列。
其证明过程如下矩阵M第i行的所有元素(数字)形成一个集合,假设S=∪i=1nSi,]]>下面将证明对于{Si},不同样本集合的存在条件成立。
假设K⊆{1,2,...,n},]]>当|K|=1时,每一个最少包含一个元素,在这种情况下,一行中的所有元素都相同。如果对于其他的K,|K|>1,并且|∪i∈KSi|≥|K|,]]>这意味着矩阵M中有|K|行元素,并且这些行中至多包含|K|-1个不同的元素。因为M是一个均匀矩阵,对于每一个数字,它最多包含m个,所以矩阵M中至多有m×(|K|-1)个不同的数字,但是矩阵M中的|K|个行应该包含m×|K|个{1,2,...,n}中的数字。必定存在m=m×|K|-m×(|K|-1)个数字,这些数字与|K|-1个不同的数字都不相同。这是矛盾的,因为我们假设|K|个行至多包含|K|-1个不同的数字。所以{Si}的不同样本集合存在,而且必定是{1,2,...,n},这些不同的数字分布在矩阵的不同的行中。我们可以使用行内的变换将这些数字移动到一列,这一列就变成正规列。
根据上面的证明结果可以进一步证明任何一个n×m的均匀矩阵都能通过行内的变换转化为正规均匀矩阵。
其证明方法如下任意均匀矩阵A的一个列可以通过行内变换转化为正规列,从而得出一个具有正规列的矩阵A1。矩阵A1的其余列组成了一个(n-1)×m的新均匀矩阵。对这个新的均匀矩阵而言,还可以将另一列转化为正规列,得到一个具有2个正规列的矩阵A2,如此类推,最后我们能得到一个具有n个正规列的正规均匀矩阵。由此,可以得出,仅仅使用行内或列内变换,就可以将均匀矩阵转换成正规的均匀矩阵。
在证明了任何一个n×m的均匀矩阵都能通过行内的变换转化为正规均匀矩阵之后,接下来将结合图8详细说明仅仅使用每一行内的行交换,将n×m均匀矩阵A转换为一个正规均匀矩阵B的方法,又称为正规化均匀矩阵的方法,包括对矩阵A的每一列k,令k从1到m,依次执行图8所示的列正规化操作a、检测本列k的元素是否缺少集合{1,2,...,n}中的数字,如果是,则执行步骤b;否则,结束本列的列正规化操作,继续执行矩阵A下一列的正规化操作;b、将本列k的元素所缺少的所有数字记录在一个缺少集合Missing中;c、在本列k的元素中查找重复的数字,将找到的重复数字加入一个检测集合tested中,并将这些重复数字所在的行数组成一个集合压入一个行数堆栈Layer_all;d、取所述行数堆栈Layer_all栈顶的集合作为当前的行数集合Layer,在该集合Layer所包含的行数且列数大于k的范围内查找是否存在所述缺少集合Missing中的数字,如果有,将该数字所在的行数x及列数y组成一个坐标(x,y)记入一个临时变量temp,然后执行步骤g;否则,执行步骤e;e、在当前行数集合Layer所包含的行数以及列数大于k的范围内查找除所述检测集合tested所包含数字之外的数字,将它们组成集合C,并将他们加入所述检测集合tested,然后执行步骤f;f、在本列k的元素中查找集合C所包含的数字,将这些数字所在的行数组成集合D,压入行数堆栈Layer_all,然后返回步骤d;g、判断行数堆栈Layer_all是否为空,如果是,则执行j;否则,执行步骤h;h、弹出所述行数堆栈Layer_all栈顶的集合作为当前的行数集合Layer,并在当前的行数集合Layer所包含的行数且列数大于k的范围内查找与临时变量temp所保存坐标(x,y)表示的行数及列数上数字相等的元素,将该元素所在的行数以及当前的列数k组成一个坐标(x,k)记入临时变量temp,然后执行步骤i;i、将所述临时变量记录的行数和列数组成的坐标(x,k)以及该数字所在的行数和列数组成坐标(x,y)压入一个交换堆栈,返回步骤g;j、根据交换堆栈所记录的坐标进行对应位置的元素交换,然后返回步骤a。
在每执行完一次上述步骤a~j,本列k就会减少一个缺少的数字。这样,在整个步骤a~j的循环执行完毕后,本列k将不再由缺少的数字了,即本列k被正规化。由于上述步骤a~j是对矩阵A的每一列依次执行的,因此,当矩阵A的所有列均被正规化之后,就得到了正规化的均匀矩阵B。
上述步骤j所述的行交换方法如图9所示,具体包括j1、判断所述交换堆栈是否为空,如果是,则结束;否则,执行步骤j2;j2、从所述交换堆栈中弹出两个由行数和列数组成的坐标,并交换这两个坐标位置上的元素,然后返回步骤j1。
上述正规化均匀矩阵的算法没有回溯,并且效率很高,为可重排非阻塞三级Clos交换网络路由算法提供了一种新选择。
下面在通过一个具体的例子详细说明本发明优选实施例所述的正规化均匀矩阵的方法。
假设A=12142224131433554553.]]>首先正规化矩阵A的第1列执行步骤a~c通过检查,发现本列缺少数字5,并且有两个数字1分别位于第1行和第3行,故将行数1和3组成集合{1,3}压入行数堆栈Layer_all。
接下来执行步骤d~f在行数堆栈Layer_all栈顶的集合{1,3},即第1行和第3行里查找数字5,在没有找到数字5的情况下,将第1行和第3行内不等于1的其他数字2、4和3记入集合C,并在本列内查找集合C内2、4、3所在的行数,为第2、4和5行,将这几行组成集合{2,4,5}压入行数堆栈Layer_all,然后返回步骤d;接着再在行数堆栈Layer_all栈顶的集合{2,4,5},即在第2行、第4行及第5行内查找数字5,结果在第5行的第2列找到了数字5,将行数5、列数2组成的坐标(5,2)记录在临时变量temp中。
接下来执行步骤g~i弹出行数堆栈Layer_all当前的栈顶集合{2,4,5},得到行数2、4和5,在这几行内查找与第5行、第2列上数字5相等的元素,得到该数字位于第5行、第2列,将行数5、本列列数1组成的坐标(5,1)记录在临时变量temp中,并将坐标(5,1)和(5,2)压入所述交换堆栈,然后返回步骤g;接着再弹出行数堆栈Layer_all当前的栈顶集合{1,3},得到行数1和3,在这两行内查找与第5行、第1列上数字4相等的元素,找到该元素位于第1行、第4列,将行数1、本列列数1组成的坐标(1,1)记入临时变量temp,然后再将坐标(1,1)和(1,4)压入所述交换堆栈,此时,行数堆栈Layer_all为空,得到交换堆栈{{(1,1)(1,4)},{(5,1)(5,2)}}。
接下来在步骤j交换所述交换堆栈中用坐标表示的元素,即在该步骤中,将第1行、第1列的元素与第1行、第4列的元素交换;再将第5行、第1列的元素与第5行、第2列的元素交换,由此得到了如下所示的矩阵A’。由矩阵A’可以看出矩阵A的第一列被正规化了。
A′=42112224131433555453]]>接下来,用同样的方法正规化上述矩阵A’的第二列,得到矩阵A”。
A′′=41212224131435355453]]>再用同样的方法正规化矩阵A”第三列得到正规化均匀矩阵B。
B=41212242131435355453]]>由此可以看出,采用上述正规化均匀矩阵的方法,就可以通过对均匀矩阵A进行每一行的行交换得到正规的均匀矩阵B,也就是说,采用上述正规化均匀矩阵的方法,就可以从所述输出矩阵O’M得到所述第一中间矩阵N’M,即实现了本发明所述的步骤1。
为了测试本发明所述正规化均匀矩阵方法的正确性以及性能,使用内存为256M、CPU为赛扬2.4G的计算机,对使用C语言编程的路由选择方法进行了测试。测试使用的矩阵包括1000个n×m<900的矩阵,300个n×m<2000的矩阵,100个n×m<3000的矩阵以及30个n×m>3000的矩阵。所有测试都得到了正确的结果。
并且根据分析,本发明所述正规化均匀矩阵方法的复杂度的上界是O(n4)。当n=m,并且n<100时,得出的复杂度曲线如图10所示,在图10中的X轴为均匀矩阵的行数,Y轴为所述正规化均匀矩阵方法的比较操作次数。为了比较,在所述复杂度曲线中还画出了函数y=x3的曲线。由此可以看出本发明所述正规化均匀矩阵方法的复杂度大致与O(n3)相当,是非常高效的。
这样,通过上述正规化均匀矩阵的方法,从所述输出矩阵O’M推导出所述第一中间矩阵N’M之后,即实现本发明所述路由选择方法的步骤1之后,再通过所述步骤2和步骤3推导出第二中间矩阵P’M,进而通过比较输入矩阵I’M及中间矩阵P’M、中间矩阵P’M及中间矩阵N’M、以及中间矩阵N’M及输出矩阵O’M得到各级交换单元内部路由,从而得到从三级Clos交换网络任一输入到其对应输出的路由。
需要说明的是,本发明的优选实施例虽然均是以m=n为例进行说明的,本领域的技术人员可以理解,在m>n时,由于存在比m=n时更多的二级交换单元以及交换单元之间的级间连接,因此,本发明所述的路由选择方法也可以适用于m>n的三级Clos交换网络的路由选择。
权利要求
1.一种路由选择方法,适用于可重排非阻塞三级C1os交换网络,其特征在于,所述方法包括A、根据所述三级Clos交换网络的输入和输出信号建立输入矩阵和输出矩阵;B、通过对所述输出矩阵的每一行进行行交换得到第一中间矩阵;C、通过对所述第一中间矩阵的每一列进行列交换得到第二中间矩阵;D、分别比较所述输入矩阵与所述第二中间矩阵、所述第二中间矩阵与所述第一中间矩阵、以及所述第一中间矩阵与所述输出矩阵,对各级交换单元的内部开关进行设置,确定所述Clos交换网络任意输入端到其对应输出端的路由。
2.如权利要求1所述的路由选择方法,其特征在于,步骤A所述建立输入矩阵和输出矩阵为将由表示第一级交换单元的编号的第一个下标以及表示每个交换单元中的入线编号的第二个下标所组成的二维下标作为所述输入和输出矩阵的元素建立所述输入和输出矩阵。
3.如权利要求1或2所述的路由选择方法,其特征在于,步骤B所述行交换通过正规化均匀矩阵方法实现。
4.如权利要求3所述的路由选择方法,其特征在于,所述正规化均匀矩阵方法包括对所述输出矩阵的每一列k,令k从1到m,依次执行列正规化操作;所述列正规化操作包括a、检测本列k所包含元素的第一个下标中是否缺少集合{1,2,...,n}中的数字,其中,n为所述输出矩阵的行数,如果是,则执行步骤b;否则,结束本列的列正规化操作,继续执行所述输出矩阵下一列的列正规化操作;b、将本列k所包含元素的第一个下标中所缺少的所有数字记录在一个缺少集合中,在本列k所包含元素的第一个下标中查找重复的数字,将查找到的重复数字加入一个检测集合,并将这些重复数字所在的行数组成集合压入一个行数堆栈;c、取所述行数堆栈栈顶的集合作为当前的行数集合,在该行数集合所包含的行数且列数大于k的范围内查找第一个下标为所述缺少集合中的数字的元素,如果有这样的元素,将该元素所在的行数及列数组成一个坐标记入一个临时变量,然后执行步骤f;否则,执行步骤d;d、在当前行数集合所包含的行数以及列数大于k的范围内查找第一个下标不是所述检测集合所包含数字的元素,将这些元素的第一个下标组成集合C,并将集合C所包含的数字加入所述检测集合,然后执行步骤e;e、在本列k所包含元素的第一个下标中查找集合C所包含的数字,将这些数字对应元素所在的行数组成集合D,压入所述行数堆栈,然后返回步骤c;f、判断行数堆栈Layer all是否为空,如果是,则执行h;否则,弹出所述行数堆栈栈顶的集合作为当前的行数集合,并在当前的行数集合所包含的行数且列数大于k的范围内查找与所述临时变量所保存坐标表示的行数及列数上元素第一个坐标相等的元素,将该元素所在的行数以及当前的列数k组成一个坐标记入所述临时变量,然后执行步骤g;g、将所述临时变量记录的行数和列数组成的坐标以及步骤f中查找到的元素所在的行数和列数组成坐标压入一个交换堆栈,返回步骤f;h、根据交换堆栈所记录的坐标进行对应位置的元素交换,然后返回步骤a。
5.如权利要求4所述的路由选择方法,其特征在于,步骤h所述根据交换堆栈所记录的坐标进行对应位置的元素交换包括h1、判断所述交换堆栈是否为空,如果是,则结束;否则,从所述交换堆栈中弹出两个由行数和列数组成的坐标,并交换这两个坐标位置上的元素,然后返回本步骤h1。
6.如权利要求1或2所述的路由选择方法,其特征在于,步骤C所述列交换为根据所述第一中间矩阵每一列元素的第一个下标依次对所述第一中间矩阵的每一列元素进行重新排列,使每一列元素第一个下标所组成的向量为(1,2,3,...,n)T,n为所述输出矩阵的行数。
7.如权利要求1或2所述的路由选择方法,其特征在于,步骤D所述对各级交换单元的内部开关进行设置包括D1、比较所述输入矩阵和所述第二中间矩阵,根据这两个矩阵对应行元素第二个下标之间的交换关系,对第一级的交换单元内部的开关进行设置;D2、比较所述第二中间矩阵和所述第一中间矩阵,根据这两个矩阵对应列元素第一个下标之间的交换关系,对第二级的交换单元内部的开关进行设置;D3、比较所述第一中间矩阵和所述输出矩阵,根据这两个矩阵对应行元素之间的交换关系,对第三级的交换单元内部的开关进行设置。
全文摘要
本发明公开了一种可重排非阻塞三级Clos交换网络中的路由选择方法,包括根据所述三级Clos交换网络的输入和输出信号建立输入矩阵和输出矩阵;通过对所述输出矩阵的每一行进行行交换得到第一中间矩阵;通过对所述第一中间矩阵的每一列进行列交换得到第二中间矩阵;分别比较所述输入矩阵与所述第二中间矩阵、所述第二中间矩阵与所述第一中间矩阵、以及所述第一中间矩阵与所述输出矩阵,对各级交换单元的内部开关进行设置,从而快速并且高效地在所述三级Clos交换网络中找到从输入端到输出端的合适路由。
文档编号H04L12/56GK1767501SQ20051012594
公开日2006年5月3日 申请日期2005年11月28日 优先权日2005年11月28日
发明者韩俊刚, 刘杰, 张德慧 申请人:西安邮电学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1