摘 要

迷宫问题是指能够从起始点寻找一条通往目标点的路径,迷宫的传统搜索是采用深度优先和宽度优先搜索,虽然也能够解决迷宫的求解问题,但是这些方法效率比较低。我们已经知道深度优先和广度优先搜索归于为盲目搜索,搜索中缺乏启发信息,时间和空间浪费较大。本文利用A*算法求解迷宫,按照A*算法的思想,针对迷宫问题提出了求解方案、制定了启发函数、在搜索中使用启发信息,缩小搜索的空间,尽快的求得问题的解,并编程验证了该算法的有效性。

关键词:迷宫问题 ;A*算法;启发函数

1.1 实验问题的描述

迷宫问题可以表述为:一个二维的网格,0表示点可走,1表示点不可以走,点用(x,y)表示,寻找从某一个给定的起始单元格出发, 经由行相邻或列相邻的单元格(可以通过的),最终可以到达目标单元格的、所走过的单元格序列。在任一个单元格中,都只能看到与它邻近的4个单元格(如果位于底边,则只有3个;位于4个角上,则只有2个是否能通过。迷宫问题用传统的广度优先搜索或带回溯的深度优先搜索等算法都能很好

基于A*搜索和深度优先搜索解迷宫问题相关推荐

  1. 算法导论--广度优先搜索和深度优先搜索

    广度优先搜索 在给定图G=(V,E)和一个特定的源顶点s的情况下,广度优先搜索系统地探索G中的边,以期"发现"可从s 到达的所有顶点,并计算s 到所有这些可达顶点之间的距离(即最少 ...

  2. 二叉树广度优先搜索、深度优先搜索(前序、中序、后序)遍历,动图详解-Java/Kotlin双版本代码

    自古逢秋悲寂寥,我言秋日胜春朝 二叉树结构说明 本博客使用树节点结构,如下所示: Kotlin 版本 class TreeNode(var value: String, var leftNode: T ...

  3. AI(人工智能:一种现代的方法)学习之:无信息搜索(uninformed search)算法——广度优先搜索、深度优先搜索、Uniform-cost search

    文章目录 参考 搜索算法 深度优先搜索 depth-first search 性能分析 完整性 complete 最优性 optimal 时间复杂度 空间复杂度 广度优先搜索 breadth-firs ...

  4. 八数码深度优先搜索_深度优先搜索和广度优先搜索

    深度优先搜索和广度优先搜索 关于搜索&遍历 对于搜索来说,我们绝大多数情况下处理的都是叫 "所谓的暴力搜索" ,或者是说比较简单朴素的搜索,也就是说你在搜索的时候没有任何所 ...

  5. 广度优先搜索与深度优先搜索

    广度优先搜索(宽度优先搜索,BFS)和深度优先搜索(DFS)算法的应用非常广泛,本篇文章主要介绍BFS与DFS的原理.实现和应用. 深度优先搜索 图的深度优先搜索(Depth First Search ...

  6. 深度优先搜索和深度优先搜索的区别

    一)深度优先搜索的特点是: (1)无论问题的内容和性质以及求解要求如何不同,它们的程序结构都是相同的,即都是深度优先算法(一)和深度优先算法(二)中描述的算法结构,不相同的仅仅是存储结点数据结构和产生 ...

  7. 用python深度优先遍历解迷宫问题

    这篇文章主要给大家介绍了关于python迷宫问题深度优先遍历的相关资料,深度优先搜索算法(Depth-First-Search),是搜索算法的一种,需要的朋友可以参考下 一.迷宫介绍 用python解 ...

  8. 根据邻接表求深度优先搜索和广度优先搜索_深度优先搜索/广度优先搜索与java的实现...

    度:某个顶点的度就是依附于该顶点的边的个数 子图:一幅图中所有边(包含依附边的顶点)的子集 路径:是由边顺序连接的一系列定点组成 环:至少含有一条边且终点和起点相同的路径 连通图:如果图中任一个到另一 ...

  9. 广度优先搜索_深度优先搜索和广度优先搜索[09]

    搜索与遍历 绝大多数搜索的处理叫暴力搜索,或者说比较简单朴素的搜索.如果数据结构本身没有任何特点,很普通的树或者图,我们要做的一件事就是把所有节点都遍历一次. 每个节点都要访问一次 每个节点仅仅要访问 ...

最新文章

  1. 【转】sql if else 语句
  2. TCP第4次挥手为何要等待2MSL才关闭?
  3. Nacos客户端配置
  4. 【bzoj2820】YY的GCD 莫比乌斯反演
  5. ajax获取php的数组,使用AJAX请求获取数组并将其传递到php数组中 - javascript
  6. oracle 12 sqlplus 使用,oracle 12.2 sqlplus history
  7. 心脏与阴影,求阴影部分
  8. Python-三元运算符和lambda表达式
  9. PDE6 Transport with decay
  10. JQuery Jcrop—JQuery Jcrop 图像裁剪工具学习
  11. Java 常用的 4 种加密方式(MD5+Base64+SHA+BCrypt)
  12. 电力技术监督导则_会议报道:2019年电力行业燃煤发电企业节能监督管理专业技术人员及燃煤发电机组能效水平对标管理办法培训班...
  13. 阶段3 1.Mybatis_10.JNDI扩展知识_2 补充-JNDI搭建maven的war工程
  14. QT虚拟小键盘设计--qt事件循环,事件发送的理解
  15. 电影售票系统项目介绍
  16. 微信小程序通过点击事件传参(data-)
  17. 学习笔记 Tianmao 篇 RecyclerView.Adapter 的封装
  18. 【PyTorch深度学习项目实战100例】—— 基于UNet实现血管瘤超声图像分割 | 第30例
  19. nsh 自定义启动脚本
  20. 增益与功率电压的关系

热门文章

  1. Win10睡眠后自动唤醒启动的问题
  2. 艾美捷SequENZ测序级改造型胰蛋白酶特异性和应用
  3. Scrapy框架整合英雄缩略图(APP)
  4. no transaction is in progresss
  5. android ps2 模拟器,手机目前安卓系统PS2模拟器最好用的是一款叫做呆萌PS2模拟器的APP!这一款竟然是国产的!...
  6. 苹果Iphone/Ipad--L2TP虚拟教程
  7. 单片机万年历c语言程序设计,基于AT89C51单片机的多功能
  8. GNU通用公共许可协议--GPLV3中文翻译
  9. Biu+生态大会三路出击,苏宁小Biu露出“实战派”面目?
  10. 是非人生 — 一个菜鸟程序员的5年职场路 第6节