版权声明: https://blog.csdn.net/qq_36786991/article/details/80589066
小老鼠回家之迷宫解法——分别使用dfs和bfs实现
背景
本人今年参加了2018年计算机设计大赛
,报了两项,一个是人工智能方案设想
,另一个是微课类教学辅助软件——— 回溯和递归
,微课类我在设计这个软件的时候借用了汉诺塔问题
和迷宫问题
来辅助教学的,今天我们就来一起来说说后者的故事。
正题
迷宫问题为了描述的形象生动,我采用了小老鼠回家的这个故事。
程序截图
dfs版小老鼠回家
程序截图
bfs版小老鼠回家
思路
在我看来使用这种图形化界面的展示,会让人更容易懂这个优先搜索的过程,具体官方定义的解释请百度,这里只是博主的个人思路,小老鼠的找自己的家
dfs(深度优先搜索)
先一直向上走,走不通的时候向右走,走到不能在往右走时,再选择向后走,依此类推,最终如果四个方向都无法走通的时候,进行返回,这个的前提是你得记住你走过的点,这样才能回来
注:以上如果有错误希望大家指出!
bfs(广度优先搜索)
广度搜索和深度不一样,不是一条道走到黑,是每一个层级层级的走下去,这个难度大于深度搜索,得实现怎么记住哪个点在哪一层,通过这种思想,很容易得出,广度搜索是可以求出最小路程的,这个很神奇,做出来感觉就像一个慢慢往外围扩散的过程,对不,这样就很好啦,可以基于每一点,每一层,一层一层的扩散,就可以了,直到扩散到该点为止,然后通过分析路程得出最短路径,我个人认为难点还是在如何记住你上一步走了哪一步
扫描二维码关注公众号,回复: 6057489 查看本文章注:以上如果有错误希望大家指出!
因为代码写的乱,注释不全,所以这里不贴出来了,如果想要(Java代码)可以评论留下邮箱