《人工智能》之《确定性推理》

教材:《人工智能及其应用》,蔡自兴等,2016m清华大学出版社(第5版)

参考书:
在这里插入图片描述

1 图搜索策略

人工智能要解决的问题,大部分不具备明确的解题方法,这类问题可以用搜索方法解决。

1.1 数据结构

除了图本身之外,还需要两种辅助的数据结构,即存放已访问但未拓展节点的OPEN表,以及存放已拓展节点的CLOSED表。

下面给出OPEN表和CLOSED表的数据结构:
OPEN表:

节点父节点编号

CLOSED表:

编号节点父节点编号

1.2 图搜索的一般过程

GRAPHSEARCH:

  1. 建立一个只含有起始节点S的搜索图G,图中每个节点有一个指向其父节点的指针,S的这一指针为一特殊值(如0),并把S放入未扩展节点表OPEN中。
  2. 建立已扩展的节点表CLOSED,初始时该表为空。
  3. LOOP:若OPEN表为空,则失败退出。
  4. 把OPEN表中的第一个节点移出,放入CLOSED表中,称其为n节点。
  5. 若n为目标节点,则成功退出。问题的解是沿指针追踪G中从n到S的路径而得到的。
  6. 扩展节点n,生成不是n的祖先的那些后继节点的集合M。如果没有后继节点,则转LOOP。
  7. 把那些不在G中的M的成员作为n的后继节点加入G,并设置一个通向n的指针,把它们加入OPEN表。对已在G中的M的成员,调整有关指针。
  8. 按某种方式或按某个试探值,重排OPEN表。
  9. GO LOOP。

在这里插入图片描述

在搜索图中,除初始节点外,任意一个节点都含有且只含有一个指向其父节点的指针。因此,由所有节点及其指向父节点的指针所构成的集合是一棵树,称为搜索树。

1.3 八皇后问题(Eight Queens Puzzle)

问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。如果经过±90度、±180度旋转,和对角线对称变换的摆法看成一类,共有42类。计算机发明后,有多种计算机语言可以编程解决此问题。

穷举8皇后问题过于复杂,这里只展示4皇后问题的图搜索方法:
在这里插入图片描述

2 盲目搜索

不需要重新安排OPEN表的搜索叫做盲目搜索或无信息搜索,它包括宽度优先搜索、深度优先搜索和等代价搜索。盲目搜索只适用于求解比较简单的问题。

2.1 宽度优先搜索

宽度优先搜索(BFS)是一种以接近起始节点S的程度逐层扩展节点的搜索方法。

特点:一种高代价搜索,但若有解存在,则必能找到它。
在这里插入图片描述

宽度优先算法如下:

  1. 把起始节点放到OPEN表中(如该起始节点为一目标节点,则求得一个解答)。
  2. 如OPEN是个空表,则没有解,失败退出;否则继续。
  3. 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。
  4. 扩展节点n。如没有后继节点,则转向上述第2步。
  5. 把n的所有后继节点放到OPEN表的末端,并提供从这些后继节点回到n的指针。
  6. 如n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第2步。

在这里插入图片描述

2.2 深度优先搜索

深度优先搜索(DFS)是一种首先拓展最新产生的(即最深的)节点的搜索方法。

特点:防止搜索过程沿着无益的路径扩展下去,往往给出一个节点扩展的最大深度(深度界限)。

与宽度优先搜索算法最根本的不同在于:将扩展的后继节点放在OPEN表的前端。
在这里插入图片描述
深度优先算法如下:

  1. 把起始节点放到OPEN表中(如该起始节点为一目标节点,则求得一个解答)。
  2. 如OPEN是个空表,则没有解,失败退出;否则继续。
  3. 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。
  4. 如果节点n的深度等于最大深度,则转向上述第2步。
  5. 把n的所有后继节点放到OPEN表的前端。如果没有后继节点,则转向上述第2步。
  6. 如n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第2步。

在这里插入图片描述

2.3 等代价搜索

等代价搜索是是宽度优先搜索的一种推广,不沿着等长度路径断层进行扩展,而沿着等代价路径断层进行扩展。其搜索树中每条连接弧线上的有关代价,表示时间、距离等花费。

等代价搜索算法如下:
在等代价搜索算法中,把从节点i到其后续节点j的连接弧线记为c(i,j),,把从起始节点S到任一节点i的路径代价记为g(i)。在搜索树上,假设g(i)也是从起始节点S到节点的最少代价路径上的代价。

在这里插入图片描述

把dist看成OPEN表,把path看成CLOSED表,则Dijkstra算法就是等代价搜索。

3 启发式搜索

启发式信息:与具体问题求解过程有关的,并可指导搜索过程朝着最有希望方向前进的控制信息。

启发式搜索,又称为有信息搜索,是一种利用启发式信息的搜索方法。

特点:重排OPEN表,选择最有希望的节点加以扩展

种类:有序搜索、A*算法等

3.1 启发式搜索策略和估价函数

利用启发信息来决定哪个是下一步要拓展的节点,这种搜索总是选择“最有希望”的节点作为下一个被拓展节点,这种搜索叫做有序搜索(Ordered Search)或最佳优先搜索(Best-first Search)。

估价函数(Evaluation Function):为获得某些节点“希望”的启发信息,提供一个评定侯选扩展节点的方法,以确定哪个节点最有可能在通向目标的最佳路径上 。

应用节点的估价函数值来重排OPEN表。

3.2 有序搜索

Nilsson(尼尔逊)方法:一个节点的"希望"越大,则其 f 值越小。被选择的节点是估价函数最小的节点。

在这里插入图片描述
估价函数的重要性:

  • 有序搜索的有效性直接取决于 f , 是提高搜索效率的关键;
  • 如 f 不准确,可失去最佳解,也可失去全部解;

估价函数一般选择策略:

  • 搜索时间、空间的折衷;
  • 保证有解或有最佳解;

估价函数选择的三种典型情况:

  1. 最优解答:状态空间中有多条解答路径,求解最优解答。如A*算法。
  2. 最小搜索代价:不考虑解答的最优化 (只有一个解答或多个解答间无差异),尽量使搜索代价最小。如:定理证明。
  3. 搜索代价与解答质量的综合:问题类似于 (1),但搜索过程可能超出时间、空间的界限。在适当的搜索实验中找到满意解答,并限制满意解答与最优解答的差异程度。如:TSP问题。

3.3 A*算法

在这里插入图片描述

在这里插入图片描述
可纳性: 对任一状态空间图,当从初始节点到目标节点有路径存在时,如搜索算法总能在有限步骤内找到一条从初始节点到目标节点的最佳路径,并在此路径上结束,则称该搜索算法是可采纳的。

A* 算法的可纳性 : A* 算法的搜索效率很大程度上取决于估价函数h(n)。一般来说, 在满足h(n) ≤h*(n)的前提下,h(n)的值越大越好。h(n)的值越大,说明它携带的启发性信息越多,A* 算法搜索时扩展的节点就越少,搜索效率就越高。

4 消解原理

消解原理,又称为归结原理,是对谓词演算公式进行分解、化简,消去一些符号, 以求得导出子句。

  • 一种用于子句公式集的重要推理规则
  • 子句是由文字的析取组成的公式
  • 一个原子公式、原子公式的否定叫作文字
    注意: 不含任何文字的子句称为空子句。
  • 由子句、空子句所构成的集合称为子句集

在这里插入图片描述

空子句不含有任何文字,也就不能被任何解释所满足, 因此空子句是永假的, 不可满足的。
消解原理, 力图从子句集中推导出一个表示矛盾的空子句。

鲁滨逊归结原理的基本思想:

  1. 由谓词公式转化为子句集的方法可知,在子句集中子句之间是合取关系。只要有一个子句为不可满足,则整个子句集就是不可满足的。
  2. 空子句是不可满足的。一个子句集中如包含有空子句,则此子句集就一定是不可满足的。
  3. 首先把欲证明问题的结论否定,并加入子句集,得到一个扩充的子句集S’。
  4. 然后检验子句集S’是否含有空子句,若含有空子句,则表明S’是不可满足的;若不含有空子句,则继续使用归结法,在子句集中选择合适的子句进行归结,直至导出空子句或不能继续归结为止。

在这里插入图片描述

4.1 子句集的求取

求取子句集的步骤:

  1. 消去蕴涵符号
  2. 缩小否定符号的辖域(狄·摩根定律)
  3. 变量标准化(哑元唯一)
  4. 消去存在量词(∃)
  5. 化为前束形
  6. 化为合取范式(∧)
  7. 消去全称量词(∀)
  8. 消去连词符号(∧)
  9. 更换变量名(同一变量名不出现在一个以上子句)

4.2 消解推理规则

令L1,L2为两任意原子公式;L1和L2具有相同谓词符号,但一般具有不同的变量。已知两子句L1∨α和~L2∨β,,如L1和L2具有最一般合一者σ,那么通过消解可以从这两个父辈子句推导出一个新子句(α∨β)σ,即消解式。

消解式求法:取两个子句的合取,然后消去互补对,得到消解式。
在这里插入图片描述

4.3 含有变量的消解式

在谓词逻辑中,因子句集中的谓词一般都含有变元,因此不能像命题逻辑那样直接消去互补文字,而需要先用一个最一般合一对变元进行代换,使父辈(亲本)子句含互补文字后才能进行归结。谓词逻辑的归结要比命题逻辑的归结复杂。
在这里插入图片描述
在这里插入图片描述

4.4 消解反演求解过程

把已知S证明L为真的问题,转化为证明S∧﹁ L为不可满足的问题。

消解反演推理方法:

  1. 给出{S}, L;
  2. 否定L,得~L;
  3. 把~L添加到S中去,把新产生的集合{~L, S}化成子句集;
  4. 应用消解原理,力图推出一个表示矛盾的空子句。

在这里插入图片描述
在这里插入图片描述
从反演树求取答案的步骤:

  1. 把问题的已知条件用谓词公式表示出来,并化为相应的子句集;
  2. 把问题的目标的否定用谓词公式表示出来,并化为子句集;
  3. 对目标否定子句集中的每个子句,构造该子句的重言式(即把该目标否定子句和此目标否定子句的否定之间再进行析取所得到的子句), 用这些重言式代替相应的目标否定子句式,并把这些重言式加入到前提子句集中,得到一个新的子句集;
  4. 对这个新的子句集,应用归结原理求出其证明树,证明树的根子句不为空,称这个证明树为修改的证明树;
  5. 用修改证明树的根子句作为回答语句,则答案就在此根子句中。

在这里插入图片描述

5 规则演绎系统

对于比较复杂的系统、问题,利用搜索技术、消解原理很难甚至无法求解,需要一些更先进的推理技术、系统求解方法,如规则演绎系统、产生式系统等。

对于许多公式来说,子句集是一种低效率的表达式, 一些重要信息会在求取子句集过程中丢失。如:蕴含式:A→B,表示为子句:~AVB,导致因果关系丢失。

我们将研究易于表述的if-then(如果一那么)规则来求解问题,避免了将蕴含式表示为子句的推理方式。

规则演绎系统:运用If→Then规则来建立的问题求解系统,每个if可能与某断言集(事实)中的一个或多个断言匹配,有时把该断言集称为工作内存,then部分用于规定放入工作内存的新断言。在这种系统中,通常称每个if部分为前项,每个then部分为后项

分类:
在这里插入图片描述

正向推理:
在这里插入图片描述
逆向推理:
在这里插入图片描述

5.1 规则正向演绎系统(forward chaining)

正向规则演绎系统:从事实到目标进行操作的,即从if到then的方向进行推理的。

1. 事实表达式的与或形变换

在基于规则的正向演绎系统中,我们把事实表示为非蕴涵形式的与或形,作为系统的总数据库。

与或形:子句集求取法的9步法中不必6(生成合取范式)、8(消去合取符号∧)两步,最后得到的形式:

  1. 无量词约束
  2. 否定符只作用于单个文字
  3. 只有"与"、“或”
  4. 使同一变量不出现在不同的主要合取式中

在这里插入图片描述
2. 事实表达式的与或图表示

在这里插入图片描述

  • 在与/或图中,节点表示事实表达式及其子表达式
  • 根节点表示整个表达式,叶节点表示表达式中的单个文字
  • 对于一个析取表达式(E1∨E2∨…En)的节点,用一个n连接符(图中的半圆弧)连接它的n个子表达式节点
  • 对于一个合取表达式(E1∧E2∧…En)的节点,则直接用单线连接符与它的n个子表达式节点相连

在这里插入图片描述

一般把事实表达式的与或图表示倒过来,即把根节点画在最下面,而把其后继节点往上画。

由事实表达式的与或图表示的一重要性质是:由变换表达式得到的一组子句则可从与或图中读出,即每个子句相当于与/或图的一个可解树,它是由叶节点组成的公式。
 
从上图可以读出上例表达式的三个子句:Q(w,A)、﹁ S(A,v)∨ R(v) 、﹁ S(A,v)∨ P(v),这三个子句正是原表达式化成的子句集,由此可知:与/或图可看成是一组子句的一个简洁的表达形式。

3. 与或图的F规则变换

基于规则的正向演绎推理中,F规则具有以下形式:L → W。

具体要求如下:

  1. L是单文字(Literal),W是任意的与或形表达式(Well-Formed Fomula)
  2. L、W中的所有变量都是全称量词量化的,默认的全称量词作用于整个蕴含式
  3. 各条规则的变量各不相同,且规则中的变量与事实表达式中的变量也不相同

将F规则的左部限制为单文字,是因为在进行演绎推理时,要用F规则作用于表示事实的与/或图,而该与/或图的叶节点都是单文字,这样就可用F规则的左部与叶节点进行匹配,大大简化了规则的应用过程。

在这里插入图片描述
在这里插入图片描述

4. 推理过程

  1. 首先用与/或图把已知事实表示出来
  2. 用F规则的左部和与/或图的叶结点进行匹配,并将匹配成功的F规则加入到与/或图中,即利用F规则转换与/或图
  3. 重复第2步,直到产生一个含有以目标结点作为终止结点的一致解图为止

如一个解图中所涉及的置换是一致的, 则该解图称为一致解图

含有变量的表达式应注意:

  • 当事实表达式、F规则、目标表达式中包含变量时,只有当解图中所用的置换是一致时,该解图对应的子句才成立
  • 上解图中使用的置换{A/x, A/z}和{A/y, A/z}是一致的, 所以该子句成立
  • 将两个置换的合一复合{A/x, A/y, A/z}作用于子句S(z)∨N(z)得到:S(A)∨N(A), 才是真正的结论
    如 u1={A/y},u2={B/y}, 则U={u1,u2}是不一致的

在这里插入图片描述

5.2 规则逆向演绎系统 (backward chaining)

逆向规则演绎系统是从then向if进行推理的,即从 目标或动作向事实或状况条件进行推理的。

1.目标表达式的与/或图表示

逆向系统中的目标公式采用与/或形表示,其化简采用Skolem 对偶形式(全称量词的约束变量以Skolem函数或常量取代,并使经Skolem化目标公式只剩下存在量词),并进行变元换名,使主析取元之间具有不同的变元名。

在这里插入图片描述
与或形的目标表达式可用与或图表示,但其表示方式与正向演绎中事实表达式的与/或图不同。它的k连接符用来把具有合取关系的子表达式连接起来,而在正向演绎中是把事实表达式具有析取关系的子表达式连接起来 。

在这里插入图片描述
2.与或图的B规则变换

反向演绎推理中的规则称为B规则,其表示形式为:W → L。其中W为任一与/或形表达式(Well-Formed Formula),L为单一文字(Literal)。

将规则右部L限制为单一文字,因为推理时要用它与目标与/或图中的叶结点进行匹配,而目标与/或图中的叶节点是文字,这样可以简化B规则对与/或图的应用。

如规则不符合L为单一文字这一要求,则要变换成这种形式。如规则W→L1∧L2可以化两个B规则, 即:W→L1 ,W→L2。

3.事实节点的表示形式
在这里插入图片描述

4.推理过程

  1. 用与/或图将目标表达式表示出来
  2. 在目标与/或图中,如有一个文字L′能够与L合一,则可应用B规则W→L,并将L′节点通过一个标有L和L′的最简单合一者的匹配弧与L相连,再将匹配成功的B规则加入到与/或图中(一条规则可用多次,匹配弧应标明两文字的最简合一者)
  3. 重复进行第2步,直到与/或图中包括一个结束在事实结点上的一致解图。该解图的合一复合作用于目标表达式就是解答语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 总结与对比

在这里插入图片描述

5.4 双向演绎推理

基于规则的正向演绎推理和反向演绎推理都具有局限性。正向演绎推理要求目标表达式是文字的析取式,而反向演绎推理要求事实公式为文字的合取式。

  • 已知事实用与/或图表示, 由正向演绎的F规则进行操作
  • 目标表达式用另一与/或图表示, 由反向演绎的B规则进行操作
  • 限制:F规则的左部为单文字,而B规则的右部为单文字

双向演绎推理分别从正、反两个方向进行推理, 两个与/或图分别扩展, 最关键也是最复杂的是如何判断推理是否结束。

推理的终止处位于两个与/或图分别扩展后的某个交接处, 当正、反两个方向的与/或图对应的叶节点都可合一时, 推理就结束。

在这里插入图片描述
在这里插入图片描述

6 产生式系统(Production System)

构造知识型系统和建立认知模型时常用的知识表示的形式系统。1943年E.波斯特首先将他提出的一种计算形式体系命名为产生式系统。50年代末期,A.纽厄尔和H.A.西蒙在研究人类问题求解的认知模型时也使用了产生式系统这一术语。产生式系统现代已成为研制人工智能系统时采用的最典型的体系结构之一。

在产生式系统中, 论域的知识分为两部分:

  1. 事实表示静态知识, 如事物、事件和它们之间的关系;
  2. 产生式规则表示推理过程和行为。

这类系统的知识库主要用于存储规则, 因此又把此类系统称为基于规则的系统

在这里插入图片描述
在这里插入图片描述

6.1 产生式系统的组成

在这里插入图片描述

产生式系统由3部分组成:

总数据库事实库。存放求解过程中各种当前信息的数据结构,如问题的初始状态、事实、证据、中间推理结论、最后结果等。
产生式规则规则库。用于存放与求解问题有关的某个领域知识的规则集合及其交换规则. 当某条规则的前提与总数据库中的某些事实相匹配时, 该规则就被激活, 并把其结论作为新的事实存入总数据库。
控制策略推理机构。由一组程序组成,用来控制产生式系统的运行,决定问题求解过程的推理线路,实现对问题的求解。

控制策略:说明下一步应该选用什么规则,也就是如何应用规则。
从选择规则到执行操作分为3步:

  1. 匹配:把当前数据库与规则的条件部分相匹配。若完全匹配, 则启用该规则。
  2. 冲突:当有一条以上规则的条件部分和当前数据库相匹配时, 就需要决定首先使用哪一条规则,这称为冲突解决。如专一性排序、规则排序、数据排序、就近排序等。
  3. 操作:是执行规则的操作部分, 经过操作后, 总数据库被修改, 并记住所应用的规则序列,以便给出解答路径。若满足结束条件, 推理停止。

产生式系统的控制策略:

  1. 不可撤回方式
    在这里插入图片描述

  2. 试探性方式
    在这里插入图片描述

6.2 产生式系统的推理

在这里插入图片描述
在这里插入图片描述
两者的比较:
在这里插入图片描述
在这里插入图片描述

6.3 产生式系统的基本过程

  1. 初始化综合数据库,即把欲解决问题的已知事实送入综合数据库中;
  2. 检查规则库中是否有未使用过的规则,若无转7;
  3. 检查规则库的未使用规则中是否有其前提可与综合数据库中已知事实相匹配的规则,若有,形成当前可用规则集;否则转6;
  4. 按照冲突消解策略,从当前可用规则集中选择一个规则执行,并对该规则作上标记。把执行该规则后所得到的结论作为新的事实放入综合数据库;如该规则的结论是一些操作,则执行这些操作;
  5. 检查综合数据库中是否包含了该问题的解,若已包含,说明解已求出,问题求解过程结束;否则,转2;
  6. 当规则库中还有未使用规则,但均不能与综合数据库中的已有事实相匹配时,要求用户进一步提供关于该问题的已知事实,若能提供,则转2;否则,执行下一步;
  7. 若知识库中不再有未使用规则,也说明该问题无解,终止求解过程。

在这里插入图片描述

6.4 产生式系统的特点

在这里插入图片描述

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值