可以说,我的数据集是一个购物中心
我必须为它构建一个图表。每当被问到,我必须从一个商店到另一个商店生成一条路径(最短路径)
现在我的问题是,
构建整个建筑的图形并生成是否有效
路径?
或者在它们之间构建图形(类似于子图)
当用户需要时,只有2个节点及其所有连接器(边缘)
找到路径?
我必须为移动应用程序实现此功能,其中所有数据都是从服务器加载的
我当前的代码构建了整个图形。但是我想将它用作未来使用的库。
如果它仅适用于当前建筑物,那么它可以正常工作。
但假设将来会使用另一种类型的数据集,这种数据集太大而不是当前的数据集,那么这些方法中的哪一种更有效?
这是我能想到实现它的两种方法。如果有任何其他解决方案,那将非常感谢!
其次,我使用Dijkstra的算法进行路径寻找,是否适用于这种情况?
任何帮助都将受到高度赞赏,
感谢。
答案 0 :(得分:0)
- 构建整个建筑的图形并生成路径是否有效?
- 当用户需要找到时,只在2个节点及其所有连接器(边缘)之间构建图形(类似子图) 路径?
醇>
如果图是先验已知的,那么就查询时间而言,最有效的解决方案是生成整个图并对其进行预处理。然后,您将查询合同图并具有非常快的查询时间。在Contraction hierarchies查找示例,因为它是最广泛使用的技术之一。否则,当图形必须在运行时构建时,我认为这就是你的第二点,你可以使用A *或双向Dijkstra。在第一个我认为你可以提出的最好的启发式是直线距离,所以可能不是很有帮助。
其次,我正在使用Dijkstra的算法进行路径查找 适合这种情况吗?
是的,但是我总是使用双向Dijkstra,它实现起来并不困难,并且通常比单向Djikstra的时间要求有很大的改进。 SO中的一些相关问题:1,2