摘要: 游客来到一座陌生的城市,希望游览多个景点,并品尝当地的美食后,最终前往旅馆休息。由于上述的需求,游客希望得到多条距离近、到达自己想去全部地点并且途径的地点受到消费者欢迎的路线。这类路线查询被称为支持关键词搜索的top-k条最优路线查询。该查询涉及给定一个道路网络、道路网络上的兴趣点集合,以及一个包含起点和多个关键词的路线查询。查询的目标是找到经过与查询关键词匹配的多个兴趣点的k条最优路线,这里的评分综合考虑了路线距离和路线经过的兴趣点的热度。然而,目前该问题的一些研究为了降低算法的复杂度,将用户输入的关键词作为到达兴趣点的顺序,不适用于对兴趣点到达顺序没有要求的场景,从而难以满足用户的真实意图,降低了实用性。另一些工作则为了提高查询效率,设定距离阈值对不符合要求的兴趣点进行剪枝,但该类算法不能保证被剪枝的兴趣点一定不能组成最优路线。针对上述算法的问题,本文提出了一种关键词感知的top-k最优路线查询算法。该算法首先将整个道路网络划分为多个子网络,并采用启发式搜索策略从查询起点所在子网络开始逐步扩展搜索范围,直至找到top-k条最优路线或遍历完整个道路网络。在扩展过程中,该算法引入了子图剪枝策略,用于剪去那些不包含top-k最优路线的子网络,从而缩小搜索范围。此外,为了避免对每个可能构成最优路线的兴趣点集合依次进行计算,该算法还设计了兴趣点序列的剪枝策略,以快速过滤掉那些不可能构成最优路线的兴趣点序列,从而降低计算代价。同时,在真实数据集和合成数据集上进行了充分实验,验证了所提出的算法优于基准方法的有效性。