当前位置:
文档之家› 人工智能原理ch45(2013)
人工智能原理ch45(2013)
在基于规则的正向演绎系统中,所要 做的第一步是将其变换(或叫化成)非 蕴含形式的与或形。要把一个公式化成 与或形,可利用以下恒等式或方法: (1) W1=>W2 = W1∨W2(利用恒等式, 去蕴含符号),在事实表达式中,很少 有=>符号出现 (2) 用德.摩根公式(定律)把否定符号移 进括号内,直到每个否定符号都只含一 个谓词为止。
在本节中,我们介绍一种有序搜索(也称 为最好优先搜索)方法。这种搜索总是选择 “最有希望”的节点作为下一个被扩展的节点。 何为“最有希望”,取决于你所选的估价函数 f(n)(性能指标)。有序搜索算法中,一个节点 的希望程度越大,其估价函数值就越小。被选 为扩展的节点,是估价函数最小的节点。 给定一个问题后,根据问题的特性和解的特性, 可以有多种方法定义估价函数,用不同的估价 函数指导搜索,其效果可以相差很远。如果选 得不好,那么有序搜索就可能失去一个最好的 解,甚至全部的解。
搜索树: R1 R2 A. B. R1: 如X/12为整,则X/6为整。 R2 R3 R1 R4 C. D. E. . R2: 如X/20为整,则X/10为整 R3 R4 R2 R3 R4 S F . .G . H I R3: 如X/6为整,则X/2为整。 R4 S R4 R4 S R4: 如X/10为整,则X/5为整。 S 输入数据库:N/12,N/20 判断是否N/5 S S=success S
(3) 对所得表达式进行skelem化,消除存在 性量词。 X Y mother(Y , X) X mother( f(X) , X ) (4) 删去全称量词,而余下的变量都被认为 具有全称量化作用。
Q(V, f(V))∧{[(R(V)∧P(V))]∨S(f(V),V)}
2. 事实表达式的与或图表示 根节点 Q(V,f(V))∧{[(R(V)∧P(V))]∨S(f(V),V)} 与、合取 Q(V,f(V)) [(R(V)∧P(V))]∨S(f(V),V) 或、析取
对于许多问题,其状态空间搜索树 的深度可能为无限深,或者可能至少要 比某个可接收的解答序列的已知深度上 限还要深。为了避免考虑太长的路径 (防止搜索过程沿着无益的路径扩展下 去),往往给出一个节点扩展的最大深 度—深度界限。任何节点如果达到了深 度界限,那么都将它们作为没有后继节 点处理。 和宽度优先法不同之处在于:扩展的节 点,其后继节点放入OPEN表的前端
然而,和发明创造的所有规则一样,启发式策略 也是极易出错的。在解决问题的过程中,启发仅仅 是下一步将要采取措施的一个猜想。常常根据经验 和直觉来判断。由于只利用有限信息,一个启发式 搜索可能得到一个次最佳解,也有可能一无所获。 上述两种情况第一种多出现在专家系统中,第二种情 况多出现在博奕和定理证明中。 下面的讨论主要限制在第二种情况。在这种情况下, 一般都是:初始状态、算符和目标状态的定义都是 完全确定的,然后决定一个搜索空间。进行搜索时, 一般需要某些有关具体领域的特性信息。我们把这 种信息叫做启发信息,并把利用启发信息的搜索方 法叫做启发性搜索方法。
人工智能求解者在两种基本情况下运用启发 式策略: (1) 一个问题由于问题陈述和数据获取方面固有 的模糊性可能使它没有一个确定的解。 医疗诊断即是一例:所给出的一系列症状可 能有多个原因,医生运用启发式搜索来选择 最有可能的论断,并依此产生治疗计划。 视觉问题又是一例。看到的景物经常是模糊 的。各方面原因造成。河和桥、马路。海面 上船、鲸鱼或潜水艇。视觉系统可运用启发 式策略选择一给定景像的最有可能的解释。
例:事实 A∨B 规则 A=>C∧D , B=>E∧G 目标 C∨G (C∨E, D∨G ,D∨E) A∨B 消解否证法 A A B B A∨C C G B∨G A∨B A B
R(V)∧P(V)
叶节点
S(f(V),V)
文字
R(V)
P(V)
通常,把事实表达式的与或图表示 倒过来画,即把根节点画在最下面,而 把其后继节点往上画。
3. 与或图的F规则变换 我们把允许用作规则的公式类型限制为 下列形式: L => W 式中,L是单文字;W是与或形表达式
例如:事实表达式:P∨[S∧(T∨U)] 规则:S =>(X∧Y)∨Z P∨[S∧(T∨U)]
O
搜索树: R1 R2 A. B. R1: 如X/12为整,则X/6为整。 R2 R3 R1 R4 C. D. E. . R2: 如X/20为整,则X/10为整 R3 R4 R2 R3 R4 S F . .G . H I R3: 如X/6为整,则X/2为整。 R4 S R4 R4 S
R4: 如X/10为整,则X/5为整。 S S S
5.1 规则演绎系统 我们通常习惯用if then规则形式表示知识求解 问题。基于规则的问题求解系统运用下述规则 来建立,IF - THEN , 即: IF IF1 IF2 THEN THEN1 THEN2 其中:IF部分可能由几个IF组成,而THEN部 分可能由一个或一个以上的THEN组成。
通常称每个IF部分为前项(条件、 断言),THEN部分为后项(新断 言)。这种基于规则的系统叫做规则 演绎系统。 有时,THEN部分用于规定动作,这 时称这种基于规则的系统为反应式系 统或产生式系统。
4.1.1 宽度优先搜索 如果搜索是以接近起始节点的程度依次扩展 节点的,那么这种搜索就叫做宽度优先搜索。 也就是说,这种搜索是逐层进行的。在对下 一层的任一节点进行搜索之前,必须搜索完 本层的所有节点。 宽度优先搜索算法(流程框图)如下: (1)把起始节点放到OPEN表中(如果该起始 节点为目标节点,则求得一个解答)。 OPEN
R4: 如X/10为整,则X/5为整。 S 输入数据库:N/12,N/20 判断是否N/5 S S=success S
这是一个产生式系统的例子。 节点用 表示。每一个节点对应于一个 状态,反映当时数据库的情况。如节点 O:N/12,N/20;节点A:N/12, N/20,N/6;节点D:N/12,N/20, N/6,N/2。每条连线对应于一个操作 符。 棋局对应走步,这里对应于一条产生 式规则。
O 规则库
OPEN表
O AB CDB FSDB O R1 A C
CLOSED表
O OA OAC S R2 R4(回溯)
三步操作,不是最短 。如知道最短2步,深度 界限定为2,肯定有解且可找到最短路径。但有些 情况下(多数),不限定深度不好。
4.2 启发式搜索
盲目搜索的效率低,耗费过多的计算空间 与时间。如果能够找到一种用于排列待扩展 节点的顺序,即选择最有希望的节点加以扩 展,那么,搜索效率将会大大提高。 “启发”(heuristic)是关于发现和发明规则 及方法的研究。在状态空间搜索中,启最有希望到达问题解的路径。
该搜索树给出了所有可能的求解证明渠 道。抽象地描述:给定初始节点和目标 节点,求图中的一条合理路径(所谓合 理有的指只要找到就行;有的要求搜索 步骤最少或路径最短等等)。 就这个例子,我们看一下宽度优先搜索、 深度优先搜索是如何进行的。当然,并 不是所有问题都可以画出图示的搜索树 (深度不深、每条支路都有解且支路不 多)。
(2) 一个问题可能有确定解,但是求解 过程中的计算机的代价令人难以接收。
在很多问题上(如象棋)中,状态空间的 增长特别快,可能的状态数随着搜索的深度 呈指数级增长、分解。在这种情况下,用盲 目搜索的办法就不行了(不象前面所举的简 单例子)。给定棋局,可能的下一状态、对 手可能的应对步骤太多。这时需用启发式策 略通过指导搜索向最有希望的方向前进,以 降低复杂性。通过删除某些状态及其延伸, 以消除组合爆炸,并得到令人能接收的解。
第四章 一般搜索原理
知识表示的目的是为了便于计算机 求解,是为了解决问题。从问题的描述 (表示)到问题的解决,有个求解的过 程,也就是搜索过程。在这一过程中采 用适当的搜索技术,包括各种规则、过 程和算法等推理技术,力求找到问题的 解答。 本章讨论一些早期的搜索技术或用于 解决比较简单问题的搜索原理(启发式 搜索、宽度优先、深度优先、有序搜 索)。
4.1 盲目搜索 盲目搜索又叫做无信息搜索。 一般只适用于求解比较简单的 问题。
O 规则库 搜索树: R1 R2 A. B. R1: 如X/12为整,则X/6为整。R2 R3 R1 R4 C. D. E. . R2: 如X/20为整,则X/10为整 R3 R4 R2 R3 R4 S F . .G . H I R3: 如X/6为整,则X/2为整。 R4 S R4 R4 S
5
第五章 高级求解技术
上一章我们介绍了几个基本的(早期 的)搜索技术,如宽度优先、深度优先 (盲目搜索)、有序搜索(启发式搜索、 最好优先)。 对于许多比较复杂的系统和问题,用这 些方法就很难甚至无法使问题获得解决。 这时,就需要应用一些更先进的推理求 解技术。 本章讨论规则演绎系统、不确定性推理。
5.1.1 规则正向演绎系统 (事实、规则、目标)
在基于规则的系统中,无论是规则演绎系统或规则产 生式系统,均有两种推理方式,即正向推理和逆向推 理。从IF部分向THEN部分推理的过程,叫做正向推 理。也就是说,正向推理是从事实或状况向目标或动 作进行操作的。反之,对于从THEN部分向IF部分推 理的过程,叫做逆向推理。逆向推理是从目标或动作 向事实或状况进行操作的。 1. 事实表达式的与或形变换 通常用谓词演算公式来表示事实(用作事实表达式)。 如事实表达式: ( V){Q(V,U)∧[(R(V)∨P(V))∧S(U,V)]} U)( 通常还存在蕴含关系。
对于八数码难题,我们采用了简单的估 价函数 f(n)=d(n)+w(n) 其中:d(n)是搜索树中节点n的深度 w(n)用来计算对应于节点n的数据库中 错放的棋子个数。 也就是说,该估价函数考虑了两个因数。 第一个因数考虑希望节点距根节点(起始 节点)越近越好,第二个因数考虑希望节 点距目标节点看上去越近越好。 考虑八数码难题,其搜索过程见图。