有效
基于量子网络的先请求先服务纠缠路由方法和装置
虞万荣、刘博、唐帮盈、刘波、赵宝康、陶静、时向泉、李斯晨
中国人民解放军国防科技大学
摘要
本申请涉及一种基于量子网络的先请求先服务纠缠路由方法及装置。所述方法包括:将量子纠缠分发网络抽象为一个有向图模型,有向图包括节点集、边集和链路损耗矩阵集;利用改进的Dijkstra算法依次找到从纠缠光子源到每个配对用户的最低损耗路径,构建锁定函数将路由路径中所有节点的相关输入输出端口标记为使用状态,构建释放函数,当第一用户节点和第二用户节点请求释放路径资源时,利用释放函数释放第一路由路径和第二路由路径消耗的纠缠网络链路资源。采用本方法能够提高纠缠分发网络路由效率。
1.一种基于量子网络的先请求先服务纠缠路由方法,其特征在于,所述方法包括:步骤1:获取量子纠缠分发网络,将所述量子纠缠分发网络抽象成有向图;所述有向图包括节点集、边集和链路损耗矩阵集;所述节点集由纠缠光子源、用户和波长路由设备组成;所述边集包括节点之间的量子链路;所述链路损耗矩阵集为网络任意两点之间的链路损耗矩阵的集合;步骤2:对所述节点集进行建模,得到节点集的向量表示;步骤3:对所述边集进行建模,得到边集的向量表示,根据边集的向量表示对任意两点间的链路损耗矩阵进行推导,得到链路损耗矩阵集;步骤4:根据第一用户节点请求的波长信道,利用改进后的Dijkstra算法对所述节点集中纠缠光子源节点到第一用户节点之间的路径进行计算,得到第一路由路径;步骤5:构建锁定函数;利用锁定函数占用第一路由路径消耗的纠缠网络链路资源;所述锁定函数用于根据第一用户节点请求的波长通道和第一路由路径将第一路由路径中所有节点的相关输入输出端口标记为使用状态;步骤6:根据第二用户节点请求的波长信道,利用改进后的Dijkstra算法对所述节点集中纠缠光子源节点到第二用户节点之间的路径进行计算,得到第二路由路径;步骤7:利用所述锁定函数将第二路由路径中所有节点的相关输入输出端口标记为使用状态;步骤8:构建释放函数,当所述第一用户节点和第二用户节点请求释放路径资源时,利用释放函数将第一路由路径和第二路由路径中所有节点的端口恢复为未使用状态,从而释放第一路由路径和第二路由路径消耗的纠缠网络链路资源;对所述节点集进行建模,得到节点集的向量表示,包括:将所述节点集中的每个节点定义为一个二元向量;所述二元向量包括传递损失矩阵向量和支持的波长信道向量;所述损失矩阵向量包含多维矩阵;所述多维矩阵包括多个通道矩阵;根据节点是否支持波分复用确定支持的波长信道向量的值,对所述支持的波长信道向量进行计算,得到支持的波长信道的划分数量;根据所述划分数量确定所述通道矩阵的数量;对所述边集进行建模,得到边集的向量表示,根据边集的向量表示对任意两点间的链路损耗矩阵进行推导,得到链路损耗矩阵集,包括:将从节点v i 的第α端口到节点v j 的第β端口的边定义为一个五元向量,形式化表示为 其中 是链路损失;如果节点v i 的第α端口和节点v j 的第β端口间没有链路,则 根据各个节点的各端口之间的链路损失构建链路损耗矩阵集。
2.根据权利要求1所述的方法,其特征在于,所述第一用户节点为节点集中除纠缠光子源节点外的任意一个节点;根据第一用户节点请求的波长信道,利用改进后的Dijkstra算法对所述节点集中纠缠光子源节点到第一用户节点之间的路径进行计算,得到第一路由路径,包括:步骤4.1:用(L,P,U)=Initial(V,C,s)初始化有向图,其中 α=1,2,…,k和β=1,2,…,m α ;m α 是节点α的端口总数, 是从纠缠光子源节点s到节点α的第β端口的链路损失, 是由纠缠光子源节点s到节点α的第β个端口的边组成的向量, 表示节点α的第β个端口是否被访问,0表示未访问,1表示已访问,如果节点α的第β端口没有直接连接到纠缠光子源节点s,则 和 初始化时U中 β=1,2,…,m s ,其他元素为0;步骤4.2:找到未访问过端口中路径损失值最低的端口,输出其节点索引q和端口索引α,同时设置 来更新访问过的端口向量U,对于任意的δ∈{1,2,…,k}和 其中 和 步骤4.3:如果q=i,输出路径 并停止;否则,对于波长通道ch i ,得到节点v q 的传递损失矩阵为M=GM(v q ,ch i );其中ch i 表示节点i请求的波长通道,GM()表示获取传递损失矩阵的函数,如果 返回步骤4.2;其中M有三种情况:步骤4.4:如果 获取锁定端口γ=M[α][α];如果γ=∞,则将M的第α行作为损失向量X,X=M[α,:];否则,设置 将X[γ]更新为M[α][γ];之后,设置r=1和β=1;步骤4.5:计算Z=X T +C qr [:,β],其中C qr [:,β]表示C qr 的第β列,通过y=min_index(Z)得到Z中最小值的行索引y;其中,C qr 表示任意两点之间的链路损耗矩阵的集合,Z表示临时存储变量;步骤4.6:如果 通过 更新损失并且将路径 更新为 再通过β=β+1访问下一个端口;否则,通过β=β+1访问下一个端口; 表示从节点v i 的第α端口到节点v j 的第β端口的边, 是链路损失;步骤4.7:如果β>m r ,更新节点索引r=r+1并转到步骤4.8;否则,返回步骤4.5;m r 表示节点r的端口总数;步骤4.8:如果r>k,返回步骤4.2;否则,设置β=1并返回步骤4.5。
3.根据权利要求2所述的方法,其特征在于,所述锁定函数为V=Lock(V,p x ,ch x ),其中x表示节点的序号;根据第一用户节点请求的波长通道和第一路由路径中所有节点的相关输入输出端口通过Lock操作标记为使用状态,还包括:V=Lock(V,p x ,ch x )实现方式为:对于路径p x 中的任意相邻边 a 和b,a[3]=b[1],当T a[3] ≥0时,首先通过M=GM(v a[3] ,ch x )获取节点a[3]的传递损失矩阵,然后通过M[a[4]][a[4]]=b[2]和M[b[2]][b[2]]=a[4]更改传递损失矩阵中相应元素的值,其中,T a[3] 表示节点a[3]支持的波长信道向量。
4.根据权利要求3所述的方法,其特征在于,所述释放函数为V=unlock(V,p x ,ch x ),其中x表示节点的序号;构建释放函数,当所述第一用户节点和第二用户节点请求释放路径资源时,利用释放函数将第一路由路径和第二路由路径中所有节点的端口恢复为未使用状态,从而释放第一路由路径和第二路由路径消耗的纠缠网络链路资源,还包括:所述释放函数V=unlock(V,p x ,ch x )用于释放用户节点x所使用的路径资源,实现方式为:对于路径p x 中的任意相邻边a和b,a[3]=b[1],当T a[3] ≥0时,首先通过M=GM(v a[3] ,ch x )获取节点a[3]的传递损失矩阵,然后通过M[a[4]][a[4]]=∞和M[b[2]][b[2]]=∞恢复传递损失矩阵中相应元素的值,其中,T a[3] 表示节点a[3]支持的波长信道向量。
5.一种基于量子网络的先请求先服务纠缠路由装置,其特征在于,所述装置包括:抽象模块,用于获取量子纠缠分发网络,将所述量子纠缠分发网络抽象成有向图;所述有向图包括节点集、边集和链路损耗矩阵集;所述节点集由纠缠光子源、用户和波长路由设备组成;所述边集包括节点之间的量子链路;所述链路损耗矩阵集为网络任意两点之间的链路损耗矩阵的集合;节点集建模模块,用于对所述节点集进行建模,得到节点集的向量表示,包括:将所述节点集中的每个节点定义为一个二元向量;所述二元向量包括传递损失矩阵向量和支持的波长信道向量;所述损失矩阵向量包含多维矩阵;所述多维矩阵包括多个通道矩阵;根据节点是否支持波分复用确定支持的波长信道向量的值,对所述支持的波长信道向量进行计算,得到支持的波长信道的划分数量;根据所述划分数量确定所述通道矩阵的数量;边集建模模块,用于对所述边集进行建模,得到边集的向量表示,根据所述边集的向量表示对任意两点间的链路损耗矩阵进行推导,得到链路损耗矩阵集,包括:将从节点v i 的第α端口到节点v j 的第β端口的边定义为一个五元向量,形式化表示为 其中 是链路损失;如果节点v i 的第α端口和节点v j 的第β端口间没有链路,则 根据各个节点的各端口之间的链路损失构建链路损耗矩阵集;第一路由路径计算模块,用于根据第一用户节点请求的波长信道,利用改进后的Dijkstra算法对所述节点集中纠缠光子源节点到第一用户节点之间的路径进行计算,得到第一路由路径;锁定函数模块,用于构建锁定函数;利用锁定函数占用第一路由路径消耗的纠缠网络链路资源;所述锁定函数根据第一用户节点请求的波长通道和第一路由路径将第一路由路径中所有节点的相关输入输出端口标记为使用状态;第二路由路径计算模块,用于根据第二用户节点请求的波长信道,利用改进后的Dijkstra算法对所述节点集中纠缠光子源节点到第二用户节点之间的路径进行计算,得到第二路由路径;锁定模块,用于利用所述锁定函数将第二路由路径中所有节点的相关输入输出端口标记为使用状态;释放路径资源模块,用于构建释放函数,当所述第一用户节点和第二用户节点请求释放路径资源时,利用释放函数将第一路由路径和第二路由路径中所有节点的端口恢复为未使用状态,从而释放第一路由路径和第二路由路径消耗的纠缠网络链路资源。
6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。



