在无向图中查找路径的简单算法是什么?查找无向图路径的算法
回答
此问题的答案依赖于您的图形表示。典型的算法是Dijkstra算法(注意,这个算法会找到最短路径,但是工作正常)。
http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
这是一个相当简单的算法来实现,也可能是寻路算法的最直观之中。
我必须写的函数只是假设有或没有路径时返回true或false。此外,该图被定义为 is_path? '(3((1 2)(2 3))1 3)其中3是顶点数,((1 2)(2 3))是边。然而,顶点的数量是可选的。我看着Dijkstra的算法,但是我仍然完全迷失。进一步的帮助将不胜感激。 – IAQ 2012-02-27 01:57:31
Dijkstra算法的本质是它使用图边之间的一种传递闭包。例如,在第一次迭代中,您将看到,如果a - > b和b - > c,然后是a - > c,则基本上会继续此操作,直到发现图形中两个节点之间存在路径,或者尝试所有可能的边缘之间的不同方式,并发现没有可能的路径。布鲁斯指出你在Scheme中实现这一点。 – 2012-02-27 02:04:22
查找路径是否存在的最简单方法是实施depth-first search。如果您在Scheme中执行了其他类型的递归编程,深度优先搜索将非常自然。这个想法是,对于每个节点,如果它是你完成的目的地;否则你会在每个孩子身上复发。
唯一的问题是您需要跟踪遍历期间已经访问过的节点,这样可以避免两次访问同一个节点;否则如果你有一个图A < - > B < - > C并且你正在检查A是否连接到C,那么你可能无限循环从A到B,然后B到A,然后A到B,永远等等。
- 1. 在无向树中查找路径的算法
- 2. C中的路径查找算法
- 3. 算法找到的不同路径的数目有向图
- 4. 迷宫算法路径查找器
- 5. 查找路径使用算法A *
- 6. 路径查找应用算法
- 7. 返回无向图中一个循环的路径的算法
- 8. 在2点之间的无向图中的路径算法
- 9. 查找具有特定成本的无向图中的路径
- 10. 考虑节点和边的图上的路径查找算法
- 11. 在无向图中优化Neo4j Cypher路径查找与有限路径
- 12. 使用高程查找最短路径的图算法
- 13. 在无向图中查找路径BFS - Java
- 14. 在无向图中查找第n级路径?
- 15. A *查找路径无效
- 16. 图路径查找器
- 17. MSBuild:无法找到路径
- 18. Rails无法找到路径
- 19. 无法找到类路径
- 20. 无法找到路径
- 21. 径向绘图算法
- 22. 使用Boost的图breadth_first_search()在未加权的无向图中查找路径
- 23. Dijkstra找到最短路径的算法?
- 24. 寻找最短路径数的算法
- 25. 算法找到前进的路径不是向后
- 26. 找到有向图的最短路径
- 27. 查找路径
- 28. 在有向无环图中查找层次树的算法?
- 29. 无向图算法
- 30. 查找分散点列表中的路径的算法
在过去的一两天内,有一组与图形相关的Scheme问题进入Stack Overflow。示例:http://stackoverflow.com/questions/9426788/depth-first-search-dfs-for-undirected-graphs。这是一个功课问题吗? – dyoo 2012-02-27 04:13:44
是的,但另一个不是我的帖子 – IAQ 2012-02-27 04:31:30
强烈建议:请参阅:http://www.htdp.org/2003-09-26/Book/curriculum-ZH-35.html#node_chap_28以及http ://www.htdp.org/2003-09-26/Book/curriculum-ZH-38.html – dyoo 2012-02-27 04:44:18