四种寻路算法计算步骤比较

本文对比了四种寻路算法:DFS、BFS、Heuristic DFS 和 Heuristic BFS (A*)。在两种不同障碍环境中,通过计算尝试节点数、合法节点数和步数,发现深度优先结合启发式(Heuristic DFS)在效率和路径长度方面表现最佳,但A*算法在实际应用中可能存在不真实、较慢和空间消耗大的问题。代码示例展示了DFS结合启发式的实现。
摘要由CSDN通过智能技术生成

四种算法是DFS,BFS,Heuristic DFS, Heuristic BFS (A*)

用了两张障碍表,一张是典型的迷宫:

char Block[SY][SX]=

{ {1,1,1,1,1,1,1,1,1,1,1 },

{1,0,1,0,1,0,0,0,0,0,1 },

{1,0,1,0,0,0,1,0,1,1,1 },

{1,0,0,0,1,0,1,0,0,0,1 },

{1,0,1,1,0,0,1,0,0,1,1 },

{1,0,1,0,1,1,0,1,0,0,1 },

{1,0,0,0,0,0,0,0,1,0,1 },

{1,0,1,0,1,0,1,0,1,0,1 },

{1,0,0,1,0,0,1,0,1,0,1 },

{1,1,1,1,1,1,1,1,1,1,1 }};

第二张是删掉一些障碍后的:

char Block[SY][SX]=

{ {1,1,1,1,1,1,1,1,1,1,1 },

{1,0,1,0,1,0,0,0,0,0,1 },

{1,0,1,0,0,0,1,0,1,1,1 },

{1,0,0,0,0,0,1,0,0,0,1 },

{1,0,0,1,0,0,1,0,0,1,1 },

{1,0,1,0,0,1,0,1,0,0,1 },

{1,0,0,0,0,0,0,0,1,0,1 },

{1,0,1,0,0,0,1,0,1,0,1 },

{1,0,0,1,0,0,1,0,0,0,1 },

{1,1,1,1,1,1,1,1,1,1,1 }};

结果:

尝试节点数 合法节点数 步数

深度优先 416/133 110/43 19/25

广度优先 190/188 48/49 19/15

深度+启发 283/39 82/22 19/19

广度+启发 189/185 48/49 19/15

所以可以看出深度+启发是最好的,效率高路径也挺短。A*第一是不真实二是慢三是空间消耗较大。

附:dfs+heu的源程序,bc++ 3.1通过

  1. #include <iostream.h>

  2. #include <memory.h>

  3. #include <stdlib.h>

  4. #define SX 11 //宽

  5. #define SY 10 //长

  6. int dx[4]={0,0,-1,1}; //四种移动方向对x和y坐标的影响

  7. int dy[4]={-1,1,0,0};

  8. /*char Block[SY][SX]= //障碍表

  9. { { 1,1,1,1,1,1,1,1,1,1,1 },

  10. { 1,0,1,0,1,0,0,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值