小老鼠回家之迷宫解法——分别使用dfs和bfs实现

版权声明: https://blog.csdn.net/qq_36786991/article/details/80589066

小老鼠回家之迷宫解法——分别使用dfs和bfs实现

背景

本人今年参加了2018年计算机设计大赛,报了两项,一个是人工智能方案设想,另一个是微课类教学辅助软件——— 回溯和递归,微课类我在设计这个软件的时候借用了汉诺塔问题迷宫问题来辅助教学的,今天我们就来一起来说说后者的故事。

正题

迷宫问题为了描述的形象生动,我采用了小老鼠回家的这个故事。

程序截图
dfs版小老鼠回家

这里写图片描述

程序截图
bfs版小老鼠回家

这里写图片描述

思路

在我看来使用这种图形化界面的展示,会让人更容易懂这个优先搜索的过程,具体官方定义的解释请百度,这里只是博主的个人思路,小老鼠的找自己的家

dfs(深度优先搜索)

先一直向上走,走不通的时候向右走,走到不能在往右走时,再选择向后走,依此类推,最终如果四个方向都无法走通的时候,进行返回,这个的前提是你得记住你走过的点,这样才能回来
注:以上如果有错误希望大家指出!

bfs(广度优先搜索)

广度搜索和深度不一样,不是一条道走到黑,是每一个层级层级的走下去,这个难度大于深度搜索,得实现怎么记住哪个点在哪一层,通过这种思想,很容易得出,广度搜索是可以求出最小路程的,这个很神奇,做出来感觉就像一个慢慢往外围扩散的过程,对不,这样就很好啦,可以基于每一点,每一层,一层一层的扩散,就可以了,直到扩散到该点为止,然后通过分析路程得出最短路径,我个人认为难点还是在如何记住你上一步走了哪一步

扫描二维码关注公众号,回复: 6057489 查看本文章

注:以上如果有错误希望大家指出!

因为代码写的乱,注释不全,所以这里不贴出来了,如果想要(Java代码)可以评论留下邮箱

猜你喜欢

转载自blog.csdn.net/qq_36786991/article/details/80589066
今日推荐