- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
迷宫、过河、状态空间搜索 王磊 wanglei@cis.pku.edu.cn 各种迷宫 广义的迷宫 人鬼过河 小游戏 冷静~ 有点条理 分析 使用演草纸 从初始状态开始 有几种选择?(操作) 每条路径通向一个新的状态 每到一个状态,又面临新的选择 一个迷宫? 状态=路口 操作=通路 限制条件=死胡同 无形的迷宫。。。 如何表示状态? 怎么描述当前状态? 对岸人的个数:p (0、1、2、3) 对岸鬼的个数:g(0、1、2、3) 船的位置:b(left,rght) p, g, b p, g, b//3-p, 3-g 或 p, g//b, 3-p, 3-g 特殊状态 什么样的状态不合法? i, j // b, k, m 或i, j, b // k, m i j, 且i!=0 或者 k m, 且k!=0 什么样的状态算成功? 几种算符(操作/转移函数)? 所有可能的操作步骤(算符)5种: 运1人。 运1鬼 运2人 运2鬼 运1人1鬼 OK? 我们来试试! 找一张演草纸 深度优先搜索 Bool DeepSearch(state){ 判断当前状态S:If S 是终点,return true;算法结束! For 每一条路径(操作)oi 执行操作(前进一步):对当前状态S执行操作oi,得到新状态S’。 If S’是合法状态 搜索子树S‘: If (DeepSearch( S’ )) == true, return true;搜索成功! Return false;(每棵子树都无解,所以该状态无解) } OK? 鬼打墙? 重复搜索 鬼打墙? 如何避免重复状态? 在路口做标记: 需要有一张“迷宫地图” 还没搜索,哪来的地图? 对比历史状态: 记录历史状态 时间代价 对比历史状态? 记录所有历史状态? 空间消耗? 时间消耗?顺序比较所有的历史状态。。。 只比较当前路径上的历史节点? 可以避免“鬼打墙” 不能避免重复 麻烦? 傻瓜一点的解决方案 广度优先搜索 肯定能找到解 地毯式搜索! 广度优先搜索 层层推进 搜索的层数不超过答案所在的层数 广度优先搜索 广度优先搜索 记录下待处理的状态(节点): 0, 广度优先搜索 广度优先搜索 广度优先搜索 广度优先搜索 广度优先搜索 广度优先搜索 广度优先搜索 地毯式搜索! 看来总要存储历史状态? 走迷宫是怎么做的? 一张迷宫“地图” 把所有的可能到达的状态(位置)全部装入了内存! 随便标记 迷宫的全貌:状态空间 状态=路口 操作=通路 限制条件=死胡同 所有可能的状态构成了一个“迷宫” 状态空间 想看看迷宫的全貌? 所有可能的状态? 对岸人的个数:p (0、1、2、3) 对岸鬼的个数:g(0、1、2、3) 船的位置:b(left,rght) 4*4*2 = 32种。 画个地图 此岸 对岸画出全貌有点困难,看概貌吧。 此岸 对岸其实是一个3d的迷宫,画出全貌有点困难,看概貌吧。 所以,我们可以用一个三维数组:map[4][4][2] 来表示这个“迷宫” 广搜与深搜比较 深度优先搜索符合人走迷宫的习惯 栈 可以写成回溯法,占用空间小,不需要将整个“迷宫”搬入内存 要想办法避免“鬼打墙” 广搜与深搜 广度优先搜索 只能用队列存储待处理的状态 一般来说占用空间大 不会“鬼打墙” 两者时间效率都是指数级 狼羊菜过河 状态:wolf, sheep, cabbage, farmer(0,1,0,1) 0,1分别代表两岸 操作(算符)4种: 运farmer 、wolf 运farmer 、 sheep 运farmer 、 cabbage 运farmer 状态空间大小?24 =16 Map[2][2][2][2] 状态空间 状态空间搜索 是否存在环路? 状态空间大小? 小:可以整个搬入内存,普通迷宫 大:无法存储整个状态空间 深度优先搜索,防止死循环 广度优先搜索,考虑空间问题 有规律?盲目搜索? 围棋 “大约连书万字四十三,即是局之大数。” 沈括 《梦溪笔谈》 棋盘上每个点有黑,白,空三种状态, 棋盘状态就有3的361次方,约为10的172次方,也就是连书万字四十三 因为棋盘每个点状态不能独立,排除非法状态,合法的状态数约为10的160次方 在可观测的宇宙空间,总共约有10的80次方个基本粒子. 如何做决策? 盲目的搜索是最后的方法 最好找出问题的规律 幸好,这是个有规律的宇宙 思考题:骷髅人回家 怎么表示状态?几种算符? 状态空间规模? 可以在内存中建立地图吗? 深度搜索VS广度搜索? 深度搜索,如何避免死循环? 广度搜索,如何存储历史状态? 谢谢大家 参考文献: 未名小游戏版(littlegame) 精华区 wanglei@cis.pku.edu
您可能关注的文档
- B002学生信息管理系统论文2.doc
- Bjdwoua局域网毕业论文.doc
- BYVoid 魔兽世界模拟赛 解题报告.ppt
- ch1 密封技术的基本问题.ppt
- CH1--第1讲数据挖掘技术引论.ppt
- Ch2 电子商务的基本模式f1.ppt
- ch2(框架与环境20119)电子商务.ppt
- chapter4-数据资源.ppt
- Chapter17-分支定界-New.ppt
- cjp毕业设计任务书.doc
- 小升初专项复习:盈亏问题(含解析)-人教版六年级数学下册.pdf
- 五年级解方程专项练习题大全(每日一练,共14份).pdf
- 人教版六年级数学下册期末考试综合复习检测卷(一)含解析.pdf
- 2024人教版七年级生物下册期末易错知识点背诵提纲.pdf
- 高考历史一轮复习讲义:20世纪的战争与和平 课型1:知识体系讲解.pdf
- 火车过桥问题(含解析)-人教版六年级数学下册.pdf
- 小升初专项复习:逆推还原问题(含解析)-人教版六年级数学下册.pdf
- 流水行船问题-(含解析)-人教版六年级数学下册.pdf
- 小升初专项复习:火车过桥问题(含解析)-人教版六年级数学下册.pdf
- 2024-2025学年人教版七年级英语下册Unit7 A Day to Remember提升训练.pdf
文档评论(0)