当前位置:   article > 正文

A* 算法的实际应用-路径规划(附Python实现代码)_路径规划的实际运用

路径规划的实际运用

A* 算法的理解,请看这里:

  A算法的示例程序请查看 paulQuei 。本文着重于将实际问题的数学化,并用A算法求解。源码我已经上传至Gitee,安装好git后可以直接Clone:

git clone https://gitee.com/ascloudwalker/algorithem.git
  • 1

1 .问题描述:
  在一个矩形区域内,已知一关键路径点,实现起点到终点的自动路径规划。规则:只能移动到X方向,或者Y方向相邻的点,不能对角线移动。

在这里插入图片描述2.方法描述:
  面对这个问题,我首先想到了A Star算法,下图就是示例程序中A Star算法的路径寻找过程:首先构建了一个正方形(矩形)的map,每一个坐标点用一个小矩形表示,灰色表示障碍物,规划目标是从左下角到右上角。蓝色方块表示算法在寻找路径的过程,绿色方块表示找到的路径。
在这里插入图片描述

  本文中的问题与上述示例的差别在于:示例中的坐标是相邻的整数,数据本身就说明了各点之间的相邻关系,比如(1,2)和(2,2);而本文的问题中,坐标并不是一定相邻的,例如(1,2)和(2,4)是否能够直接连接(直接到达)需要建立新的相邻关系。于是我想到了图(graph),通过node(节点)和edge(边)来建立点的相邻关系。所以,在我的计算中,map不再是上图的矩形网格,而是下图所示的图(graph)。
在这里插入图片描述  除此以外:我自定义了Cost(指标)计算表达式、障碍点判断表达式。依然使用示例程序给出的A*算法结构流程,可以得到如下结果:(蓝色是算法的寻找路径过程,绿色为最终寻找的轨迹)
在这里插入图片描述
  更多点以及增加不可用障碍点后的效果:
在这里插入图片描述
附:动图生成方法
程序中将每一次生成的图保存为图片(如png),再使用ImageMagick 进程处理:

magick *.png image.gif #生成gif
magick images.gif -layers Optimize dest.gif #压缩衣gif
  • 1
  • 2

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/520026
推荐阅读
相关标签
  

闽ICP备14008679号