1.一种基于重叠社团划分的大规模道路网络双层路由方法,其特征在于:所述路由方法包括以下步骤:
步骤一:构建道路网络G=(V,E,W),V表示道路网络交叉路口的点集,每个结点具有精确的坐标,E表示道路的边集,W表示边的权值,在道路网络中W为道路的距离;
步骤二:对道路网络进行社团划分,初始化每个节点为单一社团,对任意社团计算其相邻社团的函数模块化度 其中,v,w表示网络中的两个节
点;Avw表示网络的邻接矩阵,如果节点v,w相连,那么Avw为1;如果节点v,w不相连,那么Avw为0; 表示网络中边的数量;kv=∑wAvw表示节点v的度,kw=∑vAvw表示节点w的度;当节点v,w属于同一个社团δ(cv,cw)为1,否则为0;将该社团和Q值最大的相邻社团合并为一个社团,重复这一过程直到Q值不再增加为止;接着,将每个社团映射为1个节点,社团之间的连接映射为新节点之间的边,其边权为社团间连边的数量,构成一个新的网络,对此新网络再次应用上述社团划分方法,直到Q值不再增加为止,此时,新网络划分为若干社团,其中每个社团分别对应于原始道路网络中的一个较大社团;
步骤三:在社团的边缘节点当中检测社团重叠节点,计算扩展的社团模块度函数值其中,i,j表示网络中的两个节点;Aij表示网络的邻接
矩阵,如果节点i,j相连,那么Aij为1;如果节点i,j不相连,那么Aij为0; 表示网络中边的数量;ki=∑jAij表示节点i的度,kj=∑iAij表示节点i的度,Oi和Oj分别表示节点i和j各自属于多少个社团;c表示网络中的社团数;k表示社团编号(0
步骤四:构建社团内部边缘节点距离表B,采用Dijkstra算法计算每个社团中的边缘节点对之间的最短距离,其中最大的最短距离作为该社团的直径,保存这些信息在B表中,设置第二层网络节点的权重参数为其所对应的社团直径;
步骤五:对任意的出发节点和目的节点计算其路由,如果O和D节点在同一个社团中,而且均在社团边缘,直接从社团内部边缘节点距离表B中查询得到最优路径;如果O和D节点在同一个社团中,而且不同时在社团边缘,通过Dijkstra算法计算得到最短路径;
步骤六:如果O和D节点不在同一个社团中,路由算法被分解为第二层社团节点间的总体路由和第一层社团内部节点的局域路由,过程如下:在第二层加权网络中依据宽度优先算法计算宏观路由,路径中点权和边权值之和最小即为最优宏观路由;宏观路径中的点权为该点对应的社团直径,表示社团内部的路径长度的上界,而社团内部的路径需要由社团局域路由来决定,局域路由可以从社团内部边缘节点距离表B中查询得到最优路径,则最优路由方案为最优宏观路径加上最优局域路径。