我是一个试图实现A *搜索算法的初学者,我想知道什么是实现它的最佳方式。我创建了一个图结构(邻接矩阵),我的计划是将A *应用于初始顶点和目标顶点。同时创造启发式并随着我的发展而改进。问题是,这可以工作吗?我看了一下其他的实现,他们用不同的数据结构来完成它。实现A *搜索算法
回答
这取决于你如何实现邻接矩阵。
A *的一个关键点是找到一个节点的邻居。如果将矩阵实现为简单密集位字段,其中相邻节点为1,非相邻节点为0,则此搜索效率非常低,因为您必须检查每个节点。尽管效率低下,但这并不妨碍您实施A *。
如果您有更多的涉及到的邻接矩阵的实现,例如作为稀疏矩阵,它允许您直接查询邻居,这将更适合于A *。
是的,我已经实现了它作为一个稀疏矩阵(抱歉,我不知道它的确切名称)。即便如此,与备选方案相比,这仍然是一个效率低下的数据结构吗? – noobatrilla
我将稀疏矩阵定义为双图[] [],我如何直接查询邻居? – noobatrilla
这不是一个稀疏矩阵实现。这是一个存储在密集矩阵表示中的稀疏矩阵。见例如http://www.netlib.org/utk/people/JackDongarra/etemplates/node373.html。通过这种表示,所有邻居都彼此相邻。 –
- 1. A *搜索算法卡住
- 2. 使用A *搜索算法
- 3. 实现A *寻路算法
- 4. 如何实现搜索算法
- 5. 实现一个搜索算法android
- 6. Rails 3的搜索算法的实现
- 7. 二进制搜索Java实现算法
- 8. 深度优先搜索算法实现
- 9. 结合Dijkstra算法和A *搜索?
- 10. A *搜索算法无限循环
- 11. Python A *算法不适当地搜索
- 12. 搜索算法(已经实现了排序算法)
- 13. 实现A * - 搜索作为广度优先搜索/深度优先搜索
- 14. 在Python中实现A *算法
- 15. 使用hexes实现A-Star算法
- 16. 搜索算法
- 17. 搜索算法
- 18. 跳搜索算法
- 19. 树搜索算法
- 20. 搜索算法 - Java
- 21. 谷歌算法的现场搜索
- 22. Linq到实体搜索算法
- 23. 我的插值搜索算法的实现有什么问题?
- 24. 高效的多维数组的搜索算法实现在PHP
- 25. python中BM-25搜索算法的实现
- 26. 在Javascript中实现线性搜索算法
- 27. Erlang实现一个星形搜索算法
- 28. 在Java中搜索和排序算法的高效实现
- 29. 我将如何实现这个蛮力中值搜索算法?
- 30. C实现中的多路树搜索算法
那么问题是什么?你的实施工作? – enkryptor