python - 理解 A-star 算法在 Python 中的实现

标签 python path-finding a-star

我是 Python 新手。我有这个代码 http://code.activestate.com/recipes/577519-a-star-shortest-path-algorithm/history/1/

它是A星算法代码。我想知道它究竟是如何产生障碍的。 基本上我有一张黑白图像。我的任务是从起点到达终点,避免空格。 请帮我 谢谢!

最佳答案

函数pathFind()中的寻路算法得到了很好的注释和分解。如果有什么具体的事情让您感到困惑,请告诉我们它是什么。重要的几行是在#generatemoves(childnodes) in all possible paths之后,不可否认,这是密集的代码,而且不是很面向对象。

我建议您将参数 (m,n) 减少到 4x5 或 5x6,然后使用 pdb 调试器(单步或在关键点设置断点)逐步执行它,或者侵入尽可能多的打印语句需要:

# map matrix
n = 30 # horizontal size
m = 30 # vertical size

首先尝试为其提供您自己的自定义 map ,以了解它的工作原理(修改 # fillout the map matrix... 行)。然后在调试器中以交互方式运行它。

关于python - 理解 A-star 算法在 Python 中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23262299/

相关文章:

c# - C# 中是否有相当于 Pythons range(12) 的?

javascript - A* 在 HTML5 Canvas 中开始寻路

path-finding - 如何在寻路情况下处理不同大小的物体(A*、A-star)

algorithm - 使用 A-star 优化 N-Puzzle 上的重复节点搜索(封闭列表、开放列表)

c# - unity OutOfMemoryException List.Add()

python - 在列表中只出现一次的单词的索引

python - Try 语句 - 多个条件 - Python 2

python - 从字典的列表值中删除 'nan',python

python - 单词列表中最长的单词链

java - 如何正确填写自定义数据结构以供 A* 算法使用? (警告 : LONG)