- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工智能搜索
在人工智能中的搜索Search in Artificial Intelligence Name: Bojin Zheng郑波尽 Telephone:Email: zhengbojin@ 2010/3/1 第一章 搜索问题 内容: 状态空间的搜索问题。 搜索方式: 盲目搜索 启发式搜索 关键问题: 如何利用知识,尽可能有效地找到问题的解(最佳解)。 搜索问题(续2) 讨论的问题: 有哪些常用的搜索算法。 问题有解时能否找到解。 找到的解是最佳的吗? 什么情况下可以找到最佳解? 求解的效率如何。 问题与求解 找到一个数,该数大于等于13548并且能够被13547整除。 搜索法 在不知道直接方法的情况下,可以采用搜索法。 它是人工智能的一个框架,是智能问题求解的基础和核心。 原因是:人工智能系统需要解决的问题都比较复杂,常常没有直接方法可以用。 搜索法中的问题表示 对问题进行形式化描述,便于计算机处理。 描叙方法对搜索效率有很大的影响。 一般用状态空间来表示待求解的问题。 状态空间法(1) 找到一个数,该数大于等于13548并且能够被13547整除。 问题的论域为【13548,+∞】,为了计算机处理,可以选择一个足够大的数。 因此,问题的状态空间可以定义为【13548,1E20】。所有的状态空间构成一个连续自然数序列。 用状态空间表示法描叙问题时,要定义状态空间,表示问题的全部可能状态和相互关系。 状态空间法(2) 可行的方法:从13548开始,每次加1,看得到的数能否被13547整除,直到找到一个数为止。(搜索法) 要定义一个或多个状态,用于描叙问题求解过程开始时的可能状态。这些状态被称为初始状态。 状态空间法(3) 可行的方法:从13548开始,每次加1,看得到的数能否被13547整除,直到找到一个数为止。(搜索法) 要规定一个或一组规则,用于描叙问题从一个状态转变到另一个状态时可以采取的操作(算子operator)以下称该算子为邻域算子(该算子定义了邻居)。 在本问题中,operator 使得从一个状态到另一个状态的序列成为了链表。 状态空间法(4) 可行的方法:从13548开始,每次加1,看得到的数能否被13547整除,直到找到一个数为止。(搜索法) 规定一个或多个状态,用以描述问题求解过程最终应当达到的状态(即问题的解)。称为目标状态。 或者规定一个判断是否目标状态(解)的方法。 知识表示的观点 状态空间表示法表示的陈述性知识。 程序性知识表示? 如何控制搜索? 搜索的主要控制问题: 邻域算子的选择,合适的邻域算子可以产生较好的后继节点,有利于算法性能的提高。 测试算法过程终止的条件。 已遍历状态和已使用规则的禁止。 搜索的方向 搜索可以采用两种方法: 正向搜索(数据驱动) 逆向搜索(目标驱动) 也可以组合上述两种方法。 数据驱动的正向搜索 从初始状态出来,寻找一条从初始状态到目标状态的解路径。 是一个求解过程。 目标驱动的逆向搜索 从目标状态出发,寻找从目标状态到初始状态的路径。 适用于求解一个方案。即如何获得解的过程,即解就是这条路径。 双向搜索 同时从初始状态和目的状态出发,寻找相同的状态。 如果找到中间状态,就可以找到一个路径。 如果找不到,则可能返回两个以上解。 搜索树与搜索图 邻域关系可以使用数组或者矩阵表达 也可以使用树和图表达 搜索的过程就是遍历数组、矩阵、图、树的过程 对树的搜索称为搜索树,对图的搜索成为搜索图 水壶问题 一个10升的桶里有10升水,现有3升和4升两个空桶,如何得到5升的水? 以两个空桶的状态考虑,其搜索树(部分)为: 搜索图 搜索图与搜索树的比较 如果采用广度优先搜索算法,优点为实现简单,但是有可能需要重复处理多次。 如果采用深度优先搜索算法,有可能陷入死循环。需要采用一定的策略避免。 图搜索需要额外的计算去检查下一个节点是否已经生成过。(可以使用广度或深度优先来遍历图产生生成树) 搜索算法的衡量标准 搜索算法的完备性,即只要有解,就一定能找到 搜索的效率,避免生成或扩展无用的点。 控制开销。即控制策略的开销要尽可能小。 几个目标之间有冲突,在以上几个目标中寻求平衡。 1.1 回溯策略 例:皇后问题 递归的思想 递归的思想(续) 一个递归的例子 int ListLenght(LIST *pList) { if (pList == NULL) return 0; else return ListLength(pList-next)+1; } 回溯搜索算法 BACKTRACK(DATA) DATA:当前状态。 返回值:从当前状态到目标状态的路径 (以规则表的形式表示) 或FAIL。 回溯搜索算法 递归过程BACKTRACK(DA
文档评论(0)