从A*算法看AI寻路问题

一.寻路问题

寻路问题一直以来都是十分经典和有趣的问题,在我们生活中以及人工智能方面有着及其重要的研究价值。简而言之,寻路问题就是在给定起点和终点的情况下,找出一条可到达的最短路径,一路上可能有墙,坑,湖等不可经过的地段。

表现在数据结构里面就是一张图,如下所示。

我们可以对模型进行一下简化,便于我们分析问题。我们将寻路问题简化成一张方格表,类似于棋盘一样:

 

 

图中,空五角星为起点,红五角星为终点,图上有河流,山峰等无法穿越的地区,需要从空五角星走到红五角星。

 

 

二.寻路问题的几种解法

寻路问题很古老也很经典,目前比较常见的算法有广度优先,Dijkstra算法,A*算法以及“万能的”遗传算法等等。

 

1.深度优先搜索也是遍历图的一种方法,但是对于求最短路径作用不大。广度优先算法比较适合用来求最短路径,因为它本质上是从起点遍历所有相邻点,继而往外扩散直到找到终点。

   广度优先的基本步骤如下:

   a.将根节点加入队列

   b.从队列取出节点,判断是否是目标节点,是则输出,否则遍历所有相邻节点,并加入队列

   c.如果队列为空,则输出无法找到目标节点

   可以看出来,BFS算法存在盲目搜索的感觉,简单的遍历所有节点而不考虑可能性大的节点。

 

2.遗传算法也可用于寻路问题,之所以说遗传算法是“万能”的,因为只要是演化计算求最优解的案例都可以采用遗传算法。基

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值