当前位置: 首页 > news >正文

学校网站制作素材北京网站设计公司排行

学校网站制作素材,北京网站设计公司排行,网站建设开发图片,上海做网站哪家好简单介绍一下 该项目不过是一个平平无奇的小作业#xff0c;基于python3.8开发#xff0c;目前提供两种迷宫生成算法与三种迷宫求解算法#xff0c;希望对大家的学习有所帮助。 项目如果有后续的跟进将会声明#xff0c;目前就这样吧~ 效果图如下所示#xff1a; 环境…简单介绍一下 该项目不过是一个平平无奇的小作业基于python3.8开发目前提供两种迷宫生成算法与三种迷宫求解算法希望对大家的学习有所帮助。 项目如果有后续的跟进将会声明目前就这样吧~ 效果图如下所示 环境介绍 刚刚说了这是python3.8同时我们还包含了两个第三方库这些我将会放在requirement.txt中。是的我现在意识到它非常重要因为跑别人代码没有它真的很容易环境冲突。 文件介绍 项目很简单一共只有三个文件所以如果是想要学习的朋友应该很容易可以梳理清楚文件的关系。 ui.py 是项目的UI设计以及运行入口所有的逻辑都是基于此开发的 Generate.py 是项目中负责生成迷宫的提供了DFS、PRIM两种生成方式具体的逻辑一会会介绍 solve.py 是项目中负责迷宫求解的部分提供了DFS、BFS、A*三种迷宫求解方案。 生成算法逻辑实现 该部分介绍一下两个迷宫生成算法的主要逻辑。 DFS 生成迷宫 深度搜素算法构建迷宫。我在实现该算法的时候和网络上的方法略有出入大体流程如下 首先构建迷宫大小的两个矩阵分别位记录迷宫形状的maze_map和记录迷宫访问状态的maze_state同时还有一个记录DFS状态的memory列表。将起点添加进上述三个空间中当memory列表不为空时开始循环 如果memory最后一个元素可以向外扩展即与该元素相邻的元素存在未被访问过的元素则将该元素添加进入列表中如果有多个未被访问过的元素则随机选择一个进入来确保迷宫的随机性。并将添加进来的元素的maze_state标记为1。如果memory最后一个元素无法向外扩展则将该元素从memory中弹出。 这里需要注意的时如何判断一个元素是否可以向外扩展呢这里的判断条件如下 不可以超出迷宫限定的大小范围扩展的点不能被访问过被扩展的点不能联通两个两条路线防止出现环 PRIM 生成迷宫 PRIM构建迷宫。该算法构建迷宫构建流程如下图所示 构建一个迷宫大小的深度为5的向量分别包含访问标记、四周墙体的状态。同时包含一个memory来记忆以及打通的墙体将起点添加进去当memory长度不为空的时候开始循环 随机从memory中抽取一个节点m获取节点m所有合法的探索方向如果探索方向合法且新的节点未被访问过则添加进入memory并标记为访问过否则弹出memory。 同样的这里的合法的探索方向也有限制条件 不可以超出迷宫限定的大小范围扩展的点不能被访问过 通过PRIM生成的迷宫图效果如下图所示: 求解路径算法逻辑实现 在完成了迷宫设计后接下来开始设计求解方法。 DFS 迷宫求解 DFS是经典的迷宫求解算法通过深度搜索探索全部路径直到到达终点这在仅有一条通路的情况下是还不错的。但通常现实环境是复杂的存在多条通路的在这种情况下DFS很难获得最优路径。 接下来介绍DFS的实现流程 建立地图的标记坐标以及存放以及走过位置的memory;开始循环 如果当前坐标无法扩展新的坐标则弹出如果当前坐标可以扩展新的坐标则将新的坐标入栈且新坐标的标志位设置为1若新的坐标为终点时结束循环。 同样的算法方向的选择也是核心问题之一 新的坐标未超出地图位置新的坐标不是墙体且未被访问过。 BFS 迷宫求解 BFS也是常用的迷宫问题求解算法通过广度优先的方法通常来说广度优先搜索在路径搜索中可以得到最优解。如果迷宫有且仅有唯一解该算法所探索的格子一般远高于DFS探索的空间但如果迷宫中有多个路径存在时该算法可以获得最优解。接下来时BFS算法逻辑 建立地图的标记坐标以及存放以及走过位置的memory同时我们还需要一个存放每一次迭代的所有坐标的列表;开始循环 对坐标列表中的所有位置进行迭代将可以到达的坐标添加到新的坐标列表中并更新memory和标志位检查是否到达终点到达则跳出循环。 在方向的统计上同BFS一样。 A* 迷宫求解 DFS虽然可以求得最优路径但由于其的复杂度极高且遍历空间极大的问题在实际使用中通常不被采用A*算法是在其后的佼佼者通过启发式搜索的方式在程序运行的阶段对于其当前位置的移动损耗和预计损耗作为评估指标来实现剪枝的作用。其流程如下所示 建立地图的标记坐标、存放以及走过位置的memory、损耗优先队列cost;开始循环 对cost最小的元素进行拓展如果拓展结果为空则弹出如果拓展结果存在值则计算新节点的cost并添加入cost队列中。检查是否到达终点到达则跳出循环。 一些问题 还有一些迷宫生成方法没有加入如递归分割迷宫生成法。 在UI输出坐标移动位置时如果地图过大会导致页面卡死。 完整源码 https://download.csdn.net/download/DeepLearning_/88167896
http://www.hkea.cn/news/14437559/

相关文章:

  • 一个人做网站原型公众号推广一个6元
  • 常州的网站建设长沙网站建设王道下拉惠
  • 做服装外贸网站org域名怎么注册
  • 怎么做微信钓鱼网站吗建网站不想用怎样撤销
  • 做耳机套的网站西安建站公司模板
  • 最好的网站服务器百度经验网站建设
  • asp.net网站开发工程师(c三折页设计那个网站做的好
  • 建设网站功能定位做磁力搜索网站违法吗
  • 用cms做个网站如何制作海报宣传图片
  • 做暧网站软件技术的就业前景
  • 广州百度网站推广天津品牌网站制作
  • 国外网站做推广2021年重大新闻事件
  • 百度网站的域名地址建设制作外贸网站的公司
  • 莱州网站建设公司电话网站开发推荐书籍
  • 北京网站优化体验专业网站建设 公司排名
  • 教育门户网站建设方案展示型网站怎么做
  • 为什么建设银行网站打不开建模外包网站
  • 医药网站开发网站客户留言
  • 网站后期的维护管理网站后台支持的字体
  • 网站建设公司方唯手机编程的app
  • 企业自建网站营销论文建设工程的在建设部网站
  • 新城镇建设官方网站手表网站背景素材
  • 给别人搭建网站普通电脑可以做网站服务器
  • 太原seo网站建设从入门到精通网站建设
  • 成功的网站必须具备的要素宁波网络公司联系方式
  • 网站设计展示体育馆路网站建设
  • 暗网是什么网站动感地带套餐
  • 网站域名分析做微网站的公司
  • 外贸网站如何做的好处全国婚孕检服务平台小程序
  • 外链网站有哪些设计制造中国第一架飞机的人是