- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工智能 第三节 基本的问题求解方法
第三章 基本的问题求解方法 问题求解的过程:1)知识表示;2)针对问题,分析特征,选择合适的方法来求解(包括搜索和推理) 方法: 1)基于状态图方法-搜索; 2)基于谓词逻辑方法-推理; 3)基于结构化的知识表示方法来求解问题; 本章介绍搜索技术 搜索(search) 路径 状态序列 搜索 寻找从初始状态到目标状态的路径; 搜索的必要性 AI为什么要研究search? 问题没有直接的解法; 解方程组; 定理证明; 需要探索地求解; 搜索与检索的区别 状态是否动态生成; 检索: 静态; 在数据库中检索某人的纪录; 搜索: 动态生成; 下棋 几个问题 目标状态是否确定? 确定: 定理证明, eight-puzzle 不确定: 求积分, 下棋; 确定目标的性质; 问题的解: 路径(解路径)/目标状态; 需要路径:下棋 不需要路径:电路设计 需要/不需要: 诊病 约束条件 目标状态不确定时, 用来约束目标状态的性质; X+Y=4: 非整数解/整数解 几个问题(续1) 多解性; X+Y=4:整数解 最优解 评价标准/判断准则; min(x*y) 北京-上海: 时间最短/费用最少 最优解是否唯一? 下棋 搜索问题 搜索方法的评价标准 搜索分类 TOPICS TOPIC1 Backtracking 例:四皇后问题 存在问题及解决办法 问题和解决方法: 深度问题 对搜索深度加以限制 死循环问题 状态重复: A→B,B→C, C→A 记录从初始状态到当前状态的路径 TOPIC2 GRAPH SEARCH 图搜索策略 问题的引出 回溯搜索:只保留从初始状态到当前状态的一条路径。 图搜索:保留所有已经搜索过的路径。 一些基本概念 图:一个节点的集合。节点由弧连接起来。 有向图:弧是一个节点指向另一个节点的图,称为有向图。 后继/父亲:如果有一条弧从ni指向nj,则nj称为n i的后继,ni称为nj的父辈(父亲); 一些基本概念(续1) 路径:如果存在一个节点序列(ni0,ni1,……,nik),nij是nij-1是的后继,j=1,……,k,则称这个序列是从节点ni0到节点nik的一条路径,长度为k。 祖先/后裔:如果存在一条从ni到nj的路径,则称nj是n i的后裔,ni称为nj的祖先。 树:每个节点最多只有一个父辈。没有父辈的节点称为根节点。没有后继的节点称为叶节点。 一些基本概念(续2) 节点深度: 根节点深度=0 其它节点深度=父节点深度+1 一些基本概念(续3) 扩展一个节点 生成出该节点的所有后继节点。 弧的费用 有一条弧连接ni和nj两个节点, 用C(ni, nj)表示使用规则从ni到nj的费用(耗散值)。 玉泉路---天安门 路径的耗散值 一条路径的耗散值等于连接这条路径各节点间所有耗散值的总和。用C(ni, nj)表示从ni到nj的路径的耗散值。 GRAPHSEARCH的思路 OPEN表 已经生成但未扩展节点 CLOSED表 已扩展节点 扩展节点i生成节点j 指针 调整指针 图搜索(Graph Search)的一般过程 难点!!!算法中第七步 扩展节点6生成m1={4,7}的调整 再扩展节点1生成m2={2}的调整 最终结果 图搜索与回溯算法的区别 扩展节点: 回溯算法: 生成一个儿子节点. 图搜索: 扩展节点, 生成所有儿子节点. 候选节点: 回溯算法: 一个. 图搜索: 多个. 回溯: 回溯算法:返回父亲节点. 图搜索: 不一定返回父亲节点. TOPIC3 无信息搜索 如果在GRAPHSEARCH中,对节点的排序不使用与问题相关的信息,则称为无信息图搜索(盲目搜索) 宽度优先和深度优先 1、breadth-first search 算法 搜索演示 宽度优先法应用示例 宽度优先法求九宫重排问题 分析 2、depth-first search 演示 分析 3、其他方法 TOPIC4 heuristic search 启发信息的用途 基本思想 估价函数的进一步说明 f*(n)=g*(n)+h*(n):从s经过n到g的最短路径 g*(n):从s到n的最短路径 h*(n):从n到g的最短路径 f(n)=g(n)+h(n):从s经过n到g的最短路径的估计值 g(n)、h(n) 分别是g*(n)、h*(n) 的估计值 g(n) 一般取实际走过的路径的费用和. g(n) ? g*(n) 随着算法的执行,由于指针的变动,g(n)会下降. h?0 没有启发式信息; 启发式搜索算法 A算法 A*算法 A算法 在Graphsearch过程中,如果第8步的重排open表是依据f(n)=g(n)+h(n)进行的,则称该过程为A算法。 g(n)取实际走过的路径的费用和; 节点排序
文档评论(0)