查询路由建议的图形实现

时间:2017-10-28 06:51:00

标签: java algorithm data-structures graph

我有一组动态数据,比如旅行时间或航班持续时间,我需要建立类似谷歌地图的东西,提供替代路线的建议,我从哪里开始?我特意在寻找以下问题的指示。

  1. 我认为我们需要使用某种Graph。如果是这样,我如何开始构建图表?当数据进入或是否涉及任何最佳实践时,我是否应该开始连续填充图表?
  2. 2。)用户搜索源和目的地时是否预先绘制了图形并搜索了顶点,或者是在用户搜索期间构建的图形?

    3。)当路线更新时会发生什么 - 比如说是禁止进入的道路等。图表需要重新绘制还是通常更新?

    有关如何在java中开始使用此示例和示例的任何其他数据都会有所帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

IMO,这个过于雄心勃勃的项目无法在SO上得到充分回答。然而,以下可能是有用的指针:

  1. 图算法是一般线性/整数的特例 程式。这些问题可以通过诸如CPLEX之类的通用求解器,或者通过专门为现有问题实例开发的更专业的算法来解决。

  2. 交通设计师和无线路由电气工程师经常处理这些问题。 One example based on a simple google scholar search for dynamic routing. GPS软件还内置了此类算法。

  3. 设计最短路径算法并不困难。但是,如上所述,您的问题需要重复解决稍微不同的问题。因此,如果从头开始解决这些问题,您的性能可能会受到影响。在许多情况下,线性编程/整数编程求解器(例如CPLEX)足够智能,可以尝试使用以前的解决方案,以便更快地解决密切相关但不同的问题。请参阅以下主题,例如:Are boost::graph algorithms capable of using previous solution to solve closely related newer problems faster?

  4. 我曾经/仍然自己编写网络流问题的代码,因为我需要设计的许多算法都比较专业。但是,您可以从使用C ++中的预构建库(不确定Java)中受益,例如boost::graph