双向Dijkstra请教

yyunffu 2012-08-22 05:07:10
有没有人在实际工程中运用过双向Dijkstra算法。
到底如何处理双向搜索进度及双向相接后最短路径选择?
...全文
406 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyunffu 2012-08-27
  • 打赏
  • 举报
回复
各位高人,没有人给个指导么?
jediael_lu 2012-08-26
  • 打赏
  • 举报
回复
终于想起来了,是EIGRP所使用的算法。
yyunffu 2012-08-26
  • 打赏
  • 举报
回复
事实上A*对于真实路网来说,除去最短距离有效外,对时间最短,费用最低这些权重并不好控制。启发信息一般只能是距离,故Dijkstra还是最准确的。但对于数据规模较大情况下,单向又显得效率偏低,双向使得数据搜索规模大量降低,能有效提高搜索效率。

关键问题在于如何处理双向搜索接头问题,比如是必须要双向最短相接,还是仅用广度最外层进行相接,效率还是有差距的。
如果是必须最短详解,那么内存中将要存放所有最短路径,所需空间巨大。
若是仅判断广度最外层是否相接,又如何获取最短的一条路径?****此为重点。
FancyMouse 2012-08-25
  • 打赏
  • 举报
回复
双向dij对于dij的好处远小于双向搜索对于搜索的好处,前者只降常数,后者能降复杂度。
真要用双向dij的时候其实反而不会用dij,直接用A*去降常数了。
carter91620 2012-08-24
  • 打赏
  • 举报
回复
只要按照单向的算法做就可以了。。
carter91620 2012-08-24
  • 打赏
  • 举报
回复
其实只要边权值不为负,双向、单向图Dijkstra都可以搞定。。
daniel-du 2012-08-24
  • 打赏
  • 举报
回复
利用一个标志flag表示当前搜索的方向,每次搜索的时候根据标志选择搜索方向,然后取反,搜索完成后判断两条搜索路径是否相连.楼主可以搜索下 双向广度优先搜索.

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧