(通俗易懂)基于A*算法的有障碍寻路

本文介绍了如何使用A*算法在C++中实现有障碍的寻路问题。通过生成20x20的网格并随机设置障碍,从随机起点到终点寻找最优路径。详细阐述了地图生成、节点定义、障碍与起点终点的随机生成,以及A*算法的具体步骤,包括估值函数的选择和路径代价计算。实验结果显示,A*算法能有效地找到不碰撞障碍的最短路径。
摘要由CSDN通过智能技术生成

基于A*算法的有障碍寻路

919106840637实验1
应课程要求,我们需要完成三个代码实验,其中利用A*寻路算法完成无人车路径规划 便是其中第一个实验。通过对该算法的浅略学习,基本完成了这个实验

实验所用语言

C++

实验内容

生成一个NxN的二维网格,随机指定一些格子为障碍, 并设定左上角有辆无人车(占一个格子)要去右下角,使用A*算法为该无人车计算起点到终点的不撞到障碍的最优路径。

在这里,我生成的是20*20的网格,随机生成若干个横向以及纵向障碍。关于起点与终点的设定我并没有按照实验内容中规定的左上角和右下角,而是在关于被 y=x 切割的两块区域内随机生成,使实验更具有随机性。其实是因为障碍的生成算法存在问题导致左上角和右下角的连线永远存在。

实验思想及部分代码

本次实验主要分为两个部分,第一是生成对应的地图网格以及起点终点,第二是使用A*算法对终点进行寻路。
用到的头文件有

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <cstring>
#include <windows.h>
#include <vector>
#include <algorithm>

地图的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值