回 帖 发 新 帖 刷新版面

主题:请教: 求最短路径

有 A-Z 26个点
其中 A可以到达 B,E,O,K
     K可以到达 E,D,C,A,Q,T
     Y可以到达 C,N,P,D,O
     .........等等....

即一个点只能到达26个点中的几个点
如何编写求 : 从任意点到达任意点最短路径
             也即求从任意点到达任意点 该走的下一个点

说明一下:我这是应用在游戏的传送上的
请高手指点一下,谢谢!!
应该如何递归才有效率
我试过穷举所有的路径,48个传送点需要好几秒的时间,直接晕死,游戏需要实时计算

回复列表 (共5个回复)

沙发

如果条件是有限的、固定的
可以事先生成路径集
使用时便可以直接得出结果

板凳

晕,说了,穷举需要几秒的时间,怎么可能事先生成,那需要保存上亿个路径
现在增加了3个传送点,是51个了,每个点都可以到达任意点,但每一个点能传送的下一个点只有几个

3 楼

可以使用图

4 楼

深度优先或广度优先应该也可以

5 楼

似乎是NPhard问题,目前好像没什么好方法~~运筹学里面好像有,看看吧~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册