我正在开发一款地图应用程序,旨在找到用户所需物品之间的最短路径。每个用户想要的物品(如面包或汽油)都有多个可能的位置。目前,我仅规划了用户和每个物品最近实例之间的路径,然而,这并不总是最佳路径。如下图所示,最快的路径有时涉及到访问更远的节点群集:
对于每个物品,我有最多50个可能的节点(位置)。如何规划访问每个节点(以任何顺序)的最短路线?虽然寻找解决此问题的具体示例指针很好,但我真正寻求的只是指引方向,以开始解决此问题。
![enter image description here](https://istack.dev59.com/FBFqT.webp)
如果您的物品数量很少,您可以通过在新图上使用Djikstra来解决它。
为每个位置和您收集的物品组合制作一个节点。
使用Djikstra查找从起点到任何已收集所有物品的节点的最短路径。
对于L个位置和N个物品,这些新节点将有L*2^(N-1),因此仅适用于小N。
我发现蚁群优化在我最近研究的类似问题中得到了非常好的结果,所以这也值得一看。