Page 363 - 《软件学报》2026年第5期
P. 363

2242                                                       软件学报  2026  年第  37  卷第  5  期


                 和入边界顶点集合       IN. 最终提取重要顶点的结果如图         4 所示, 每一划分区域中, 十字交叉背景的顶点为出边界顶点,

                 斜线背景的顶点为入边界顶点, 即入边界顶点集合              IN = {{2,3},{12},∅,{5}}, 出边界顶点集合  OUT = {{4,10},∅,{1,0},∅}.
                  3.2   构建索引
                    本文提出的统一索引结构由           3  部分组成: 其一是基于中心顶点集合建立中心索引, 其二是基于各划分区域的
                 重要顶点得到临界顶点集合, 其三是基于最小划分覆盖建立关键字的倒排索引.
                    中心索引是一个索引图         G CI (V CI , E CI ), 可用于加速可达、最短路径和关键字的查询. 其顶点集合       V C 即为算法  1
                                                                                               I
                 得到的中心顶点集合        C, 为保证不破坏图     G 中原有的可达性, 需为这些顶点添加带有准确权值的有向边. 根据上
                 述划分策略可知, 两个可达的中心顶点的距离不大于                 2ε. 因此, 生成中心索引图边集合        E C 的主要思想是: 对于集
                                                                                      I
                 合  V C 中任意顶点  u 做距离   2ε 的前向广度优先遍历, 若在       2ε 距离内访问到其他中心顶点         v, 则说明顶点   u 和顶点
                     I
                 v 在图  G 中可达, 需为   u 和  v 添加一条边, 即  (u, v) ∈ E CI , 并且该条边的权值是  u 到  v 的最短路径距离. 例如, 图   3
                 的中心索引图     G C 如图  5  所示.
                              I

                                                        0
                                                            3
                                                    4
                                                             8
                                                        3        3

                                                    5               12
                                                      图 5 中心索引

                    临界顶点集合      B, 采用  key-value 的形式存储第  3.1  节中提取出的入边界顶点集合和出边界顶点集合, 可用于
                 加速图匹配查询. 其中       key 为入边界顶点集合和出边界顶点集合中的顶点, value 可取{1, 2, 3}这             3  个整数中的任
                 意一个, 其中   1  代表顶点  key 为入边界顶点, 2   代表顶点    key 为出边界顶点, 3   代表顶点   key 既为入边界顶点又为出
                 边界顶点. 待图匹配查询时, value 中存放的值可以给出当前划分区域应向哪个方向进行扩展. 例如, 基于图                           4  的近
                 优划分结果和提取出的重要顶点, 可以得到图              3  的临界顶点集合     B={<2, 1>, <3, 1>, <5, 1>, <12, 1>, <0, 2>, <1, 2>,
                 <4, 2>, <10, 2>}.
                    倒排索引    II (inverted index), 也采用  key-value 的形式存储标签的分布情况, 可用于加速关键字和图匹配的查
                 询速度. 倒排索引     II 包含两部分, 其一是关键字与划分区域           (KP) 映射的关系列表     L KP (k), 记录着含有关键字   k 的
                 划分区域, 其中    key 为关键字, value 为划分区域, 基于图     4  的划分结果可得到如图       6(a) 所示的  L KP (k); 其二是各划
                 分区域中关键字和顶点        (KN) 的关系列表    L KN (P, k), 记录着划分区域  P 中含有关键字    k 的顶点, 其中  key 为划分区
                 域和关键字的二元组, value 为顶点, 基于图        4  的划分结果可得到如图       6(b) 所示的  L KN (P, k).

                                    L KP (a)={P 1 ,P 3 }               L KN (P 4 , d)={11}
                                                        L KN (P 1 , a)={2}
                                    L KP (d)={P 1 ,P 2 ,P 3 ,P 4 }  L KN (P 3 , a)={0,17}  L KN (P 1 , e)={7,8,9}
                                    L KP (e)={P 1 }
                                                        L KN (P 1 , d)={7}  L KN (P 1 , h)={3,4}
                                    L KP (h)={P 1 ,P 2 ,P 4 }  L KN (P 2 , d)={16}  L KN (P 2 , h)={12,15,16}
                                                                       L KN (P 4 , h)={5}
                                                        L KN (P 3 , d)={1}
                                       (a) L KP (k)               (b) L KN (P, k)
                                                      图 6 倒排索引

                  3.3   复杂度分析
                    构建统一索引结构的时间复杂度主要包括               5  个部分, 总体可以简化为图中顶点数          N V 与边数  N E 的函数: 第一,
   358   359   360   361   362   363   364   365   366   367   368