我希望有1个广泛的东西能够路径查找,以便考虑到在同一条2宽路径上的其他流。
让我们说我有这样的地图:(" 0"它不能去," - "你是它可以," 1"和" A"是起点,而" 2"和" b"是目的地)
000000000000
0000000001A0
000000000--0
0B200------0
0--00------0
0------00000
0------00000
000000000000
如果我有" A"路径 - 找到" B"使用A *算法,它将阻止来自" 1" to" 2"。(" ="是路径)
000000000000
0000000001A0
000000000-=0
0B200======0
0=-00=-----0
0=====-00000
0------00000
000000000000
是的,我可以找到" 1"到" 2"然后制作AB路径但不会总是有效。一个很好的例子是:
00000000000000000000
000000000000000001A0
00000000000000000--0
0B200------00------0
0--00------00------0
0------00------00000
0------00------00000
00000000000000000000
来自" 1"的A *路径发现到" 2"阻止" A"到" B"
000000000000000001A0
00000000000000000=-0
0B200------00=====-0
0-=00=====-00=-----0
0-====-00=====-00000
0------00------00000
00000000000000000000
" A"到" B"块" 1"到" 2"
000000000000000001A0
00000000000000000-=0
0B200------00======0
0=-00=====-00=-----0
0=====-00=====-00000
0------00------00000
00000000000000000000
额外澄清:" A"," B"," 1"和" 2可以在用户创建的地图中的任何位置。虽然AI只需要考虑其他当前路径,但会有1到10个路径同时进行并且分别启动和停止。它还需要实时发生,因此计算时间不会太长。
那么我怎样才能让AI足够聪明,不会阻挡另一条道路呢?现在我使用A *所以它是否有改进或者我应该使用全新的AI系统? (两者都适合我)
答案 0 :(得分:2)
如果我理解正确,您正在搜索合作寻路。在过去十年中,已经提出了许多针对该问题的解决方案。您可以在this paper找到一个很好的摘要。
我会给你一个小小的回顾:
我希望如果你需要的话,这可以自己开始探索这个领域。 :)
答案 1 :(得分:0)
与大多数问题一样 - 找到实际约束可以帮助识别您正在查看的搜索空间。
从示例问题中不清楚两条路径是否可以采用截然不同的路径,或者路径是否必须彼此并排?您是否知道是否总会有一个解决方案可以同时路由地图上的所有路径?
如果你只是需要一条支持n宽间隙的道路(对于n条平行路径),这似乎是对搜索空间/问题表示的简单调整,可能是用A *来完成的。
另外 - 你提到了流 - 随着时间的推移,行为是问题的一个方面吗? - 是否可以选择分时(交替使用)多个流之间的狭窄间隙?或者更简短的流元素车队可以自行寻路?