我在Android上制作路由应用程序时,用户可以输入一个地方旅行的小时数,而我的应用程序会输出用户可以旅行的路线。
我正在使用遗传算法(GA)为用户提供路线,我使用PHP来执行我的GA。
问题在于,为了使路由有效,我需要知道每个城市之间的距离,以验证路线是否可行以及距离是否最小化。如何存储每个城市之间的距离,以便更快地执行?我试图直接远距离 来自Google Maps API但需要更长的执行时间。
我正在考虑将距离存储到json文件,但是可能吗?还是有其他有效的方法吗?
请注意,目标将是动态的。用户可以添加新目的地,因此只要有新目的地,就需要更新矩阵距离。
请帮帮我:)谢谢。
答案 0 :(得分:0)
您知道用户的初始位置,并想知道不同的目的地距离。我建议你使用像Dijkstra这样的单源最短路径确定性算法,而不是进化算法。该实现基于由在O(E.logV)中运行的Fibonacci堆实现的最小优先级队列,其中E是边数,V是顶点数。它比遗传算法运行得快得多,也找到了最好的答案,而不是一些近似的答案。它还具有首先找到适合您的第一个最近目的地的属性。