在专家系统中一种表示知识的方法是对于规则的聚集,如下面的形式:
IF(条件)THEN(动作)
规则的条件部分也被称为起因,或是称为LHS(左手边)或是前提。动作有时候被分别称为结果,或是RHS(右手边)或是结论。
为了获得对基于规则的表示是如何将人类专家的知识转变为机器语言有大体的了解,我们可以考虑汽车驾驶员可能会处理的下面的六条规则,当他或是她在十字路口碰到交通信号灯的时候可能会进行如下处理:
1)IF灯变为绿色
THEN前进动作
2)IF灯变为红色
THEN停止动作
3)IF灯变为黄色AND有足够的时间通过十字路口
THEN前进动作
4)IF灯变为黄色AND没有足够的时间通过十字路口
THEN停止动作
5)IF前进动作
THEN踩下油门
6)IF停止动作
THEN踩下刹车
每一条规则用便于理解的语言去表示,以便使读者清楚规则的意思。常常可以更加方便并且简洁地将每一个子句表达为目标值对,以便每一个子句中只有两个部分。此外,一个更加结构化的注解将在后面帮助我们把规则翻译成为专家系统语言。在本章的后面,我们将讨论CLIPS的语法,这是用来构建专家系统的软件工具。
在目标值配对的注解中,从规则1到规则6可以更加简洁地表示成如下形式:
1)IF(灯变为绿色)
THEN(前进动作)
2)IF(灯变为红色)
THEN(停止动作)
3)IF(灯变为黄色)AND(足够时间为真)
THEN(前进动作)
4)IF(灯变为黄色)AND(足够时间为假)
THEN(停止动作)
5)IF(前进动作)
THEN(踩下油门)
6)IF(停止动作)
THEN(踩下刹车)
子句的第一部分(即对象)能够表示物理对象(如同在灯光中)、属性(如足够的时间,这一属性表示了车辆是否有足够的时间通过十字路口)或是表示状态或条件(如动作)。在本章中所采用的约定表示了作为单独符号的对象,以便通过连字符能将两个或更多的单词合并成为一个符号,例如“足够时间”可以表示为足够时间。子句的第二部分是相应的值,表示了对象将要取得的确定值。
对象也能够表示在两个或更多个实体之间的关系。例如,我们能够通过子句表示比尔(Bill)是萨拉(Sarah)的父亲这一事实,即
(father-of Bill Sarah)
在这一对象值的实例中,father-of表示了关系对象,并且有两个分配给这个对象的值,也就是父亲和孩子。(www.daowen.com)
另一个关系对象的例子中有三个值分配给对象:
(gives John Mary car)
第一个值是作用者,第二个值是接受者,第三个值是要给予的对象。因而注释表示了John给了Mary一辆汽车这一事实。
可以使用下面的规则去确定两个体y和z是否是同属的:
IF(father-of?x?y)AND(father-of?x?z)
THEN(siblings?y?z)
这一规则使用了变量?x、?y和?z。从CLIPS中采纳并借用了对于变量的语法。为了从变量中区别常用符号,CLIPS在变量名之前放置了问号(?)。这一规则表述:如果?x是?y的父亲,并且?x是?z的父亲,那么?y和?z就是同属的。使用变量去对这一规则进行编码能够使我们对其进行一般的规定,以便这一规则适用于所有的?x,?y和?z变量。
规则的条件部分必须总是求取为真或者为假,通过这样,可以构成复杂的布尔表达式去表示条件。这样的表达式可能包含任意数量的关系运算符和(或者)包含任意数量的逻辑运算符。
关系运算符包括下面几种:
1)=等于;
2)<小于;
3)>大于;
4)<=小于等于;
5)>=大于等于;
6)<>不等于[3]。
例如,下面的规则将对中年人进行分类,如果他或者她的年龄是介于45岁到65岁之间的,有IF(年龄>=45)AND(年龄<=65)
THEN(中年人)
无论什么时候,当条件运算符是“=”的时候,在目标值对的注释下常常忽略“=”,例如:
年龄45
性别 男
身高5′7″
也可以使用逻辑运算符AND,OR和NOT去产生更为复杂的表达式。例如,下面的规则中使用了逻辑运算符OR,用来确定两个个体?y和?z是否是同属的:
IF((father-of?f?y)AND(father-of?f?z))OR
((mother-of?m?y)AND(mother-of?m?z))
THEN(siblings?y?z)
如果在上文中?y和?z有同样的父亲?f,或是?y和?z有同样的母亲?m,那么在这一规则中的条件将为真。
直到现在,就将真实的专门技术转译为机器语言而言,在本节中所给出的规则还是相当的简单和无趣的。更现实的专家系统将包含成百甚至上千条的规则,这些规则中的一些会相当的复杂。为了给读者一个更加复杂的规则的例子,这里给出前面所述的MYCIN的一个规则实例,MYCIN是设计用来确定细菌感染起因的专家系统。
IF需要治疗的感染是脑膜炎AND病人有严重的皮肤或软组织感染的症状AND
在培养的感染出没有看到有机物AND感染的类型是细菌感染
THEN有症状表明可能是引起感染的有机物是葡萄球菌(0.75)OR
链球菌(0.25)
通过句子的形式对规则进行了表述,这样能够更容易理解,但是也可以很容易地将每一个子句表示成上面所描述的目标值注释。MYCIN包含大约500个这样的规则。MYCIN的一个很有趣的特性是其能够处理不确定的结论。在规则的动作部分的两种可能性表示了确定因数,或是由葡萄球菌和链球菌所引起的感染的可能性。这是需要指出的很重要的一点,因为多数的专门技术是基于主观判断,而不是基于必须遵守的结论。在第8章中,我们将更详细地探讨不确定性和不确定推理这一主题。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。