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

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


                  5.2.3    最短路径查询算法比较
                    本节针对最短路径查询问题, 将本文提出的基于统一索引的最短路径查询算法                            SPUI 同现有的   Bit-parallel
                 BFS  算法、IS-Label 算法  [36] 和基于  H2H  索引的最短路径查询算法的执行效率做以比较. 首先随机选取 10 000              对
                 查询顶点   u 和  v, 在  4  组数据集上执行上述   4  种最短路径查询算法, 查找顶点         u  到顶点  v 的最短路径的距离     D s (u,
                 v), 查询时间取   10 000  次查询时间的平均值. 然后为了使结果更有意义, 这里选取顶点的规则同可达查询算法比较
                 时选取顶点的规则相同, 即保证顶点            u  的出度大于  0, 顶点  v 的入度大于   0, 确保每次查询无论顶点        u  和顶点  v 之
                 间是否存在路径, 必定会访问一些顶点并消耗一定的时间.
                    Bit-parallel BFS、IS-Label 算法、基于  H2H  索引和本文基于统一索引提出的        SPUI 这  3  种最短路径查询算法
                 在不同数据集上所消耗的时间如图             12  所示, 同样为了方便比较, 将统一索引结构和           H2H  索引在不同数据集上所
                 消耗的空间也展示在了图         12  中. 可以看出, 基于   H2H  索引的查询算法和      SPUI 算法与  Bit-parallel BFS  算法进行
                 对比, 执行效率提高      13%–33%; 与  IS-Label 算法进行对比, 在前  3  个数据集下执行效率提高        6%–11%, 但在规模较
                 大的  Facebook  数据集下略差于    IS-Label 算法. H2H  算法和  SPUI 算法的流程相似, 最终     D s (u, v) 的结果都是由  3
                           D s = D s (u,v) = D s (u,u )+ D s (u ,v )+ D s (v,v ). 除此之外, 基于统一索引的  SPUI 算法与基于  H2H  索引
                                                           ∗
                                                    ∗
                                                 ∗
                                           ∗
                 部分构成, 即
                 的查询算法的执行效率相似, 且在大规模图中               H2H  算法的查询效率略快一些. 以上         IS-Label 算法和基于  H2H  索
                 引的最短路径查询算法是现有大图查询处理机制针对最短路径距离查询提出的高效算法, 相似的结果证明了基于
                 统一索引的    SPUI 算法仍可高效地解决最短路径查询问题, 并且               SPUI 算法中涉及的统一索引在大规模图中占用
                 较少的存储空间.


                                         20                                    60
                                                  H2H-index
                                         18
                                                  SPUI-index
                                         16       B-P BFS                      50
                                                  H2H
                                         14
                                        Running time (ms)  12 8  IS-Label      30 Space cost (MB)
                                                  SPUI
                                                                               40
                                         10
                                          4 6                                  20
                                                                               10
                                          2
                                          0                                    0
                                             WordNet  DBLP    US Patent  Facebook
                                              图 12 最短路径查询算法的效率比较

                  5.2.4    关键字查询算法比较
                    本节针对关键字查询问题, 首先验证了查询关键字组                  q k 中关键字的个数对本文提出的基于统一索引的关键
                 字查询算法    KSUI 的影响, 随后, 将   KSUI 算法与现有的双向搜索算法, 以及结合最新索引技术                  BiG-index  加速后
                 的  BLINKS  算法  (命名为  BLINKS-BiG) 在执行效率上进行了对比分析.
                    本文在   4  组数据集的标签上随机选取         10 000  个查询关键字组, 每组含有      k 个关键字, 其中    k≤10. 执行  KSUI
                 算法得到关键字匹配的查询结果, 图           13  给出了  KSUI 算法的执行效率与查询关键字组中含有关键字个数的关系.
                 可以看出, 整体趋势上关键字组          q k 中含有的关键字个数越多, 其查询响应的时间越长. 除此之外, 数据集中所含的
                 标签数量越多, 标签分布越稀疏, 当查找的关键字较多时, 前向搜索需计算最短路径的顶点对反而越少, 从而可以

                 提高整体的查询效率. 例如, DBLP        数据集中的标签分布较为稀疏, 当查询的关键字变多时, KSUI 算法的查询效率
                 并没有像在    US Patent 和  Facebook  数据集上那样呈线性增长, 反而比较平缓.
                    本文在各组数据集的标签集合中随机选              10 000  组关键字, 为避免上述查询关键字组中关键字的个数对算法的
                 影响, 每组关键字统一含有        4 个关键字, 执行上述     3 种关键字匹配算法, 查找与该组关键字匹配的结果, 查询时间取
   368   369   370   371   372   373   374   375   376   377   378