控制策略

       我们先看下面的例子               

   设有以下事实:

F1: “FIDO是一只狗”。            DOG(FIDO)      

F2: “FIDO不叫”。                ØbarKS(FIDO)

F3: “FIDO摇尾巴”。              WAGS-TaiL(FIDO)

F4: “MYrtLE喵喵叫”。            MEOWS(MYrtLE)

     规则集合如下

R1:“摇尾巴的狗是友好的”。

              [WAGS-TaiL(x1)ÙDOG(x1)]®FRIENDLY(x1)

R2:“友好且不叫的是不令对方害怕的”。

              [FRIENDLY(x2)ÙØbarKS(x2)]®ØAFRaiD(y2,x2)

R3:“狗是动物”。

              DOG(x3)®ANIMAL(x3)

R4:“猫是动物”。

              cAT(x4)®ANIMAL(x4)

R5: “喵喵叫的是猫”。

              MEOWS(x5)®cAT(x5)

    证明目标:“是否存在一只猫和一只狗,使这只猫不怕这只狗”。

             ($x)($y)[cAT(x)ÙDOG(y)ÙØAFRaiD(x,y)] 

    逆向系统的一个一致解图如下图所示。解图中匹配弧上所标记的置换包括:{x/x5},{MYrtLE/x}、{FIDO/y}、{x/y2,y/x2}、{FIDO/y}、{y/x1} 、{FIDO/y}和{FIDO/y}。这些置换的合一复合为{MYrtLE/x5,MYrtLE/x,FIDO/y,MYrtLE/y2,FIDO/x2,FIDO/x1},这个合一复合作用于目标表达式就得到解答语句:

             cAT(MYrtLE)ÙDOG(FIDO)ÙØAFRaiD(MYrtLE,FIDO) 

        

                               逆向系统的一致解图示例

    由此我们归纳控制策略如下:

    演绎系统的目标在搜索图中建立一个一致解图基本的策略寻找候选解图验证它的一致性。如果不一致,再寻找另一个解图,直到找到一个一致解图为止。

    一个比较好的策略是在生成了局部解图时就检验其一致性。如果局部解图就不一致,就可以立即放弃生成该解图,因此减少了搜索量。

    另一个策略是预先计算规则所有可能的匹配并存贮产生的各个置换,建立一个称为规则连接图的结构。在推理过程中可直接使用规则连接图,从而提高了效率。在规则集合比较小时,这个策略是适宜的。

    以上策略对正向演绎系统也是适用的。  

习题

      1、“猴子和香蕉问题”经常用来说明人工智能中关于规划生成的概念。这个问题可以叙述如下:一个猴子在有一个箱子和一串香蕉的房间里,天花板上吊着一串香蕉,猴子伸手抓不到。猴子试图得到这香蕉。

    用b规则表示这个问题,使规划生成系统可以生成包括下列动作的规则:走向箱子,把箱子推到香蕉底下,爬上箱子,得到香蕉。

         2、我们来考虑下列一段指示:Tony、Mike和John属于Alpine俱乐部,Alpine俱乐部的成员不是滑雪运动员就是登山运动员。登山运动员不喜欢雨,而且任何不喜欢雪的人不是滑雪运动员。Mike讨厌Tony所喜欢的一切东西,而喜欢Tony所讨厌的一切东西。Tony喜欢雨和雪。

    以谓词演算语句的集合表示这段知识,用逆向系统回答问题:“有没有Alpine俱乐部的一个成员,他是一个登山运动员但不是一个滑雪运动员呢?”  

                                                                返回