具有双向加权边的图上的路径生成

时间:2019-06-30 16:20:21

标签: java algorithm graph-theory

我正在尝试在具有双向加权边的图形上执行路径生成器的Java实现。问题在于基于兴趣点(POI)列表和用户兴趣向用户提供路由。已经计算了所有兴趣点之间的用户兴趣,距离和旅行时间。利用这些数据,我能够创建具有双向边缘的图形,其中边缘的权重是源节点和目标节点之间的传播时间。

有一些相关的用户输入:

  • 他想旅行的时间范围,即6月30日下午4点到6月30日晚上8点。
  • 行程的起点(坐标),从中选择最近的POI作为行程的起点。

由于节点的权重是POI之间的传播时间,因此结果路径的权重总和不能超过用户定义的时间跨度。这将是停止条件,而不是目标节点。

用户对兴趣点的兴趣是在0到5之间的范围内定义的。理想情况下,在路径计算中也会考虑此变量,因为用户希望访问得分更高的兴趣点。

这个问题是在学术界提出的,我在这方面的知识不是很好。如果您有任何算法建议或其他想法可以在合理的时间内解决此问题,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

请考虑以下步骤:

  • 运行搜索时会累积旅行时间和兴趣得分
  • 如果满足以下条件之一,请停止探索当前路径:
    • 超出旅行时间限制
    • 所有访问过的POI
  • 如果满足以下条件之一,则将当前路径保留为最佳路径:
    • 这是探索的第一条路
    • 当前路径的兴趣得分高于最佳路径
    • 当前路径与最佳路径具有相同的兴趣得分,并且行程时间较短
  • 回溯以探索另一条路