信息家电智能协作系统的设计与实现 联系客服

发布时间 : 星期三 文章信息家电智能协作系统的设计与实现更新完毕开始阅读925c3da3bcd126fff6050b51

信息科学与技术学院学士学位论文

这些激活规则,推理机把结论加到临时事实库中,并进行处理,直到再没有其他规则的先决条件与事实库中的事实相匹配为止。首先推理机根据工作存储器中已经具备的临时事实搜索规则库,如果有匹配的规则,则触发相应的动作,并且将新触发动作完成后对应的状态加到临时工作存储器中,在加入新事实的情况下再搜索规则库看能否触发新的规则发生,直到再没有其他规则的先决条件与事实库中的事实相匹配为止。例如存在28+2→5和5→3两个规则在规则库中,初始时缺少事实分别为2和1,假设当前临时事实库中有28、2两个临时事实,从事实28开始推理,通过搜索规则库可以满足28+2→5的前项,使这一规则的缺少条件数Con_Lack减1,由于缺少条件数Con_Lack不为0,则继续推理下一个事实2,2满足28+2→5的前项从而使缺少条件数Con_Lack再减1,得到这一规则的缺少条件数Con_Lack为0则激活这条规则,触发5事实对应的动作,动作完成后将5事实加入到临时事实库中。从事实5开始继续搜索规则库,发现可以激活5→3这一规则,则继续触发3事实对应的动作,将事实3加入到临时事实库中,以事实3继续搜索规则库,无法搜索到匹配的规则前项来激活,由于没有新的事实再进一步进行推理而且没有规则可以被匹配激活则推理过程结束。推理流程如图4-3所示。 4.2.3产生式规则的冲突解决

当存在的事实满足多个规则的前件时,需要采取一定的策略进行冲突的解决。在2.3中讲到冲突解决的方法有很多,例如可以像2.3中讲述的按照规则的专一性来进行编排顺序来优先处理条件数多的规则。系统中是采用按规则在规则库中的存放顺序来依次处理规则,即先搜索出能满足前项的所有规则,如果搜索出的记录条数大于两条,则先激活在规则库中第一条能满足规则前项的规则,将其缺少条件数Con_Lack减1,如果Con_Lack为0则触发动作,在处理完第一条规则后,继续处理第二条搜索出来的规则,依次进行。

运用这种方法相对简单,而且也避免了在搜索出的规则间频繁地移动和比较,在搜索出的规则间按照规则的存放顺序依次处理规则。如果采用关系数据库来存储规则,则只需要在搜索出的记录中按照记录集的顺序,依次让指针依次移动一条记

26

信息科学与技术学院学士学位论文

录来遍历规则;如果采用将链式结构和树型结构结合的方式来存储规则库,则只需要按照链表的结构依次遍历每一个结点即可,对于链式结构每一次按照Next域来依次遍历结点是比较方便的,但是如果采用专一性来解决冲突则需要指针的来回频繁移动,而且需要保存指针前一次所遍历到的结点地址。

开始 否 临时事实库中有未推理事实 是 搜索规则库 否 条件匹配 是 是 结论事实是否存在 否 触发动作 新产生动作和已有事实互斥 否 互斥处理 是 结束 图4-3 产生式规则推理

4.3产生式规则自主学习优化

在产生式规则系统中存在类似于A+B→C,C→D这样具有传递性的规则,对于这样的规则需要进行优化。在专家系统中类似于A+B→C,C→D这样的规则是存在着传递冗余的,可以直接将这两条规则优化成A+B→D一条规则

[16]

但是在信息家电智能协作系统中,因为规则中的每一个结论都是需要对应到信

27

信息科学与技术学院学士学位论文

息家电的动作反应,所以如果直接将A+B→C,C→D优化成A+B→D那实际上就少了在有A和B两个条件时对C动作的触发。例如假设有晚上7:00+主人下班到家→打开车库大门,打开车库大门→打开车库灯光这两条规则,如果我们简单地将其优化成晚上7:00+主人下班到家→打开车库灯光这一条规则,那如果具备晚上7:00 和主人下班到家这两个事实时,只会触发打开车库灯光这一动作,而没有相应的开车库门这一动作,而且打开车库大门这一事实也无法推理出打开车库灯光这一结论,这显然是不合理的。因此在系统中采取在有A+B→C,C→D两条规则的情况下,在规则库中增加一条A+B→D的规则而不是代替A+B→C,C→D这两条规则。

在增加了A+B→D这一规则的情况下在只有A和B两个事实时,系统可以推理出C和D两个结论,而且在只有C事实存在时,也可以通过C→D推理出D的发生。增加A+B→D这一规则,在只有A和B两个事实的情况下也优化了推理的速度。在有A+B→C,C→D,A+B→D三条规则时,有A和B两个事实,可以在第一次以A为推理事实时搜索到A+B→C,A+B→D这两条规则,分别使得缺少条件数Con_Lack减1,再以B为推理事实时,再使缺少条件数减1,从而两条规则的缺少条件Con_Lack都变为0,触发了C和D两个结论事实。如果只有A+B→C,C→D这两条规则,在只有A和B两个事实条件时,在以A为推理事实和以B为推理事实后只能触发C这一结论,只有再将C加到临时事实库中,以C为推理事实,搜索规则库,才能推理出D结论的发生,这显然增加了一次搜索规则库的过程。

规则库的自主学习优化,主要是通过扫描规则库来优化A+B→C,C→D这样具有传递性的规则。优化算法中需要设置一个两层循环,第一层循环结构从第一条规则开始遍历,得到第一条规则的结论,在第二层循环中遍历整个规则库看是否存在只有一个条件而且条件的事实ID为一层循环中正在判断的规则的结论事实ID的规则,如果存在这样的规则组合,则在规则库的最后加一条以一层循环中所判断规则的条件为条件,以二层循环中的规则结论为结论的新规则,优化算法中需要代码自己去判断规则是否可被优化、该如何优化,所以将这个过程称为规则库的自主学习优化。通过上面的分析可知规则的优化如果是以一条完整的规则来判断将简化搜索和判断的难度,如果对关系数据库中所表示的产生式进行优化则需要在多个表中进

28

信息科学与技术学院学士学位论文

行查找和判断,所以系统可以采取在树型结构和链表结构结合的信息家电协作产生式规则表示的结构下来实现规则的自主学习优化算法,具体算法流程如图4-4所示。

开始 是 外层遍历规则完毕 否 得到结论事实ID 外层遍历规则完毕 否 否 是 增加一条优化规则 当前规则条件为外层循环判断结论 是 结束 图4-4 产生式规则自主优化

4.4本章小结

本章主要是介绍了信息家电智能协作系统中的知识的表示和推理实现以及系统中产生式规则的自主学习优化过程,结合产生式规则专家系统的原理,将信息家电智能协作系统中事实和规则库作为产生式系统中的知识库,将从信息家电设备中获取的事实以及推理中产生的新事实作为临时事实库存储到工作存储器中,推理机则用于完成按照临时事实和规则库的推理过程。通过将产生式规则知识表示并实现到数据库中进行存储或用树型结构和链式结构结合的方式存储知识库,再运用分别适合于不同结构的推理算法,则可以简单地模拟出信息家电智能协作的雏形,通过规

29