基于A*搜索和深度优先搜索解迷宫问题
摘 要
迷宫问题是指能够从起始点寻找一条通往目标点的路径,迷宫的传统搜索是采用深度优先和宽度优先搜索,虽然也能够解决迷宫的求解问题,但是这些方法效率比较低。我们已经知道深度优先和广度优先搜索归于为盲目搜索,搜索中缺乏启发信息,时间和空间浪费较大。本文利用A*算法求解迷宫,按照A*算法的思想,针对迷宫问题提出了求解方案、制定了启发函数、在搜索中使用启发信息,缩小搜索的空间,尽快的求得问题的解,并编程验证了该算法的有效性。
关键词:迷宫问题 ;A*算法;启发函数
1.1 实验问题的描述
迷宫问题可以表述为:一个二维的网格,0表示点可走,1表示点不可以走,点用(x,y)表示,寻找从某一个给定的起始单元格出发, 经由行相邻或列相邻的单元格(可以通过的),最终可以到达目标单元格的、所走过的单元格序列。在任一个单元格中,都只能看到与它邻近的4个单元格(如果位于底边,则只有3个;位于4个角上,则只有2个是否能通过。迷宫问题用传统的广度优先搜索或带回溯的深度优先搜索等算法都能很好地解决。当