- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 5.4.2 启发信息和估价函数 在具体求解中,能够利用与该问题有关的信息来简化搜索过程,称此类信息为启发信息。 启发式搜索:利用启发信息的搜索过程。 5.4.2 启发信息和估价函数 求解问题中能利用的大多是非完备的启发信息: (1)求解问题系统不可能知道与实际问题有关的全部信息,因而无法知道该问题的全部状态空间,也不可能用一套算法来求解所有的问题。 (2)有些问题在理论上虽然存在着求解算法,但是在工程实践中,这些算法不是效率太低,就是根本无法实现。 一字棋:9!,西洋跳棋:1078,国际象棋:10120,围棋:10761。 假设每步可以搜索一个棋局,用极限并行速度(10-104年/步)来处理,搜索一遍国际象棋的全部棋局也得1016年即1亿亿年才可以算完! * * 5.4.2 启发信息和估价函数 启发信息的分类: (1)陈述性启发信息 (2)过程性启发信息 (3)控制性启发信息 利用控制性的启发信息的情况: (1)没有任何控制性知识作为搜索的依据,因而搜索的每一步完全是随意的。 (2)有充分的控制知识作为依据,因而搜索的每一步选择都是正确的,但这是不现实的。 5.2.2 状态空间的图描述 (状态) (操作算子) 状态空间的有向图描述 * 5.2.2 状态空间的图描述 八数码状态空间图 * 例2 旅行商问题(traveling salesman problem, TSP)或邮递员路径问题。 5.2.2 状态空间的图描述 (家) (单位:km) 可能路径:费用为375的路径(A,B,C,D,E,A) * 5.2.2 状态空间的图描述 旅行推销员状态空间图(部分) ABCDEA 375 A A A A B B C C C C D D D D A E E E E E E E D 路径 : 路径 : 路径 : 路径 : ABCEDA ABDCE AB DECA 费用 : 费用 : 费用 : 费用 : 425 525 475 525 475 375 325 400 400 300 275 275 250 225 150 100 75 125 175 225 250 100 175 225 425 . . . . . . . * * 第5章 搜索求解策略 5.1 搜索的概念 5.2 状态空间知识表示方法 5.3 盲目的图搜索策略 5.4 启发式图搜索策略 5.5 与/或图搜索策略 * 5.3 盲目的图搜索策略 5.3.1 回溯策略 5.3.2 宽度优先搜索策略 5.3.3 深度优先搜索策略 * 5.3.1 回溯策略 带回溯策略的搜索: 从初始状态出发,不停地、试探性地寻找路径,直到它到达目的或“不可解结点”,即“死胡同”为止。若它遇到不可解结点就回溯到路径中最近的父结点上,查看该结点是否还有其他的子结点未被扩展。若有,则沿这些子结点继续搜索;如果找到目标,就成功退出搜索,返回解题路径。 递归过程: 5.3.1 回溯策略 Step Track (DataList): Data:= First(DataList); if Member(Data, Tail(DataList)) then return FAIL; *回老路退回 if Goal(Data) then return NIL; *达到目的地成功返回 if DeadEnd(Data) then return FAIL; *达到不合理状态,退出 if Length(DataList) Bound then return FAIL; *已到深度限制,退回 Rules:= AppRules(Data); *得出可应用的规则集 Loop:if Null(Rules) then return FAIL; *进入死胡同,退回 R:= First(Rules); *取出第一条可用规则 Rules:= Tail(Rules); Newdata:= Gen(R,Data); *运用规
文档评论(0)