上面的算法的算法流程图
时间: 2023-11-28 19:46:18 浏览: 17
根据提供的引用内容,我们可以回答您的问题:
以下是A*算法的流程图:
```flow
st=>start: 开始
op1=>operation: 将起点加入open列表
op2=>operation: 重复如下工作:
- 寻找F值最小的节点。我们称它为当前节点。
- 把它切换到close列表。
- 对相邻的4个节点的每一个节点做如下操作:
- 如果它不可通过或者已经在close列表中,略过它。反之如下。
- 如果它不在open列表中,将它加入open列表。并且将当前节点设置为这个节点的父亲。
- 如果它已经在open列表中,检查这条路径(即经由当前节点到达它那里)是否更近,更好的选择。更具体地讲,比较这条路径的G值是否更小。更小的G值表示这是更好的路径。如果是这样,更改它的父亲节点为当前节点,并重新计算它的G和F值。如果你的open列表是按F值排序的话,改变后你可能需要重新排序。
- 停止,当你
- 把终点加入到了关闭列表中,此时路径被找到,或者
- 无法找到开放列表中的节点。此时,你应该得出一个失败的结论,或者,当你确信你的open列表已经按照F值排序,停止搜索也是可以的。
ed=>end: 结束
st->op1->op2->ed
```
阅读全文