智闯鬼屋之Python

智闯鬼屋 问题一 总体思路: 第一步 机器人猜想鬼所有可能的位置作为知识库 第二步 输入机器人的位置和寒意值,不断更新知识库 第三步 通过知识库来做决策

本文包含相关资料包-----> 点击直达获取<-------

智闯鬼屋

问题一

总体思路: 第一步 机器人猜想鬼所有可能的位置作为知识库 第二步 输入机器人的位置和寒意值,不断更新知识库 第三步 通过知识库来做决策,前进 or 停止

具体操作步骤:

  1. 通过循环,遍历鬼的可能性,构建知识库
  2. 初始化幽灵,机器人。 这里的幽灵和机器人是通过面向对象的编程来实现的,因为幽灵和机器人的特征明 显,而且数据和函数封闭起来调用,会十分方便。具体的 Ghoust,,Robot 函数在文件 ghoust_robot.py 中

  1. 只要搜集的信息越多,知识库就越接近真实的鬼的位置。 所以我让鬼走右、上、右、上这四步来到(3,3),这样能使鬼探测的区域最大。 为了方便写,直接将这四步路放进 way 的数组中 Select_ghoust 这 个 函 数 是 用 来 更 新 知 识 库 的 , 具 体 在 文 件coolanddead_imagineghoust.py 中

\4. 之后就可以自动走了,判断下一步是否会撞鬼或者越界,如果不撞的话,就可以走

这一步,直到机器人走到[6,6]; 5. 让机器人只能向右或者向上走是符合 A 星算法最优的,A 星算法实现起来不太容易, 所以就直接让机器人只能向上或者向右走

\6. 最后写个函数打印路径即可 最终结果输出路径(图比较长,所以分了三次截图)

问题二

总体思路: 总体思路与第一步类似,只不过要多判断一下是否撞墙、是否陷入死角、是否进入老路

具体操作步骤: 1. 将图中的墙壁读入列表,为了方便调用与代码整洁,墙的初始化函数 wall()定义在 wall.py 文件中,方便调用。墙在两个房间之间,所以用 0.5 来确定墙壁的位置,比如

  1. 墙壁定义完之后,初始化鬼与幽灵,与第一问相同

  2. 仍然是使用 A 搜索的原则,即只进行向右、向上或者停止动作,(向右或者向上优先级相同)(但没有真正实现 A 搜索)

  1. 因为我的知识库是非常聪明的,不会出现被鬼卡两步的情况;因为鬼只有一种可能 吃掉机器人,最坏的情况下,机器人停留一步就知道这个鬼是什么情况了,所以停 留两步就一定是卡进了死胡同,那就让他退回去叭

\5. 然后记录所有的路径和时间耗散,排序,计算成功率,得到最短的两条路径

  1. 结果发现,这种方法成功率比较低,调试发现,这种方法容易停在沟沟角角,从而 被鬼撞死,于是加入一个判断,就是如果停一步会死,那就保命要紧,哪个方向能 走就往哪个方向跑

\7. 最终结果成功率变为了 1,但是平均路径耗散也大约提高了 1,

\8. 也许这就是要在时间与准确率之间权衡叭

问题三

问题三的总体思路:

  1. 让机器人上下左右随机走路

  2. 遍历足够多次

然后将机器人的路径与鬼行走路径比对,如果有一个路径相同,那就是一条失败的 路径 4. 将成功的路径添加进数组,然后排序 5. 得到路径耗散最低的一条路,打印出来 这个方法非常笨拙,但是有了问题一问题二的基础,这种方法是最容易实现的

具体实现方法: 1. 初始化鬼和机器人的方法和问题一问题二相同

  1. 通过,控制 i 和 j 的大小,控制计算次数,j 要大于 10,因为最短的路径就是 10

  2. 清理数据,把重复的路径、遇到鬼的路径去掉,排序得到前三短的路径(但是问题 只要求了最短的)

  1. 最后打印出路径即可,打印方法与问题一一致

总结: 1. 我将函数打包成 py 文件,在写代码时直接 import 文件,这样使主函数行数非常少, 而且更加简洁;但是打包时就要注意函数的编写,尽量让函数独立,这样可移植性 才强

  1. 问题三解决的非常笨拙,使用的是运算时间空间换取求解效果的方法,A 搜索实现 起来效果应该非常好,但是我尝试了并没有写成,所以还是采用第一版的暴力穷举 法;以后有时间将 A 搜索开发出来。

    1. 问题一与问题二解决的较好,主要是因为使用了知识库的推理。其中在编写代码过 程中,最需要注意的是深层拷贝的理解,我就曾因为这个知识没能理解,浪费了 1 个 小时的调试时间

参考文献

  • 基于.NET的桌面提醒软件的设计与实现(中国海洋大学·王学科)
  • 基于网络爬虫的电影集成搜索系统设计与实现(江西农业大学·江沛)
  • 专题资源在线视频学习网站的设计与实现(电子科技大学·余浪)
  • 基于Raspberry Pi的智能家居系统设计与开发(上海交通大学·严正清)
  • 基于隐私保护的房产数据管理平台的设计与实现(山东师范大学·刘聪)
  • 基于隐私保护的房产数据管理平台的设计与实现(山东师范大学·刘聪)
  • 成语电子词典系统的设计与实现(电子科技大学·刘健)
  • 主题爬虫关键技术研究(哈尔滨工程大学·黄正德)
  • 智能家居信息管理系统的研究(吉林大学·吴胜兵)
  • 基于Raspberry Pi的智能家居系统设计与开发(上海交通大学·严正清)
  • 基于ASP.NET的《电路分析》教学网站的设计与开发(山东师范大学·柴晓雪)
  • 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
  • 智能家居信息管理系统的研究(吉林大学·吴胜兵)
  • 基于web的旅游服务平台的设计与实现(内蒙古大学·张凡)
  • 基于Oracle 11g的仓库管理系统的设计与实现(曲阜师范大学·付海龙)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计货栈 ,原文地址:https://m.bishedaima.com/yuanma/36001.html

相关推荐

发表回复

登录后才能评论