利用专家系统构建智能家居的研究与设计

时间:2013-10-10来源:网络


(3)推理机的应用

推理机负责控制并执行问题的求解,它从已有的事实出发,根据知识库中给定的规则推导出最终结论。例如,IF门打开,室内光线过暗> THEN灯亮>,这一规则按照特定的形式存储于知识库中。当传感器检测到门已经打开,以及室内光线低于设定值时,推理机即可识别这两个事件与知识库中用户事先设定的某条规则相匹配,从而按照指定的接口调用开灯这一服务。

3.2 知识库的设计

用户通过友好的人机界面将大量规则存储于知识库中,例如,主人回家开门时,客厅里的电灯会因室内的光线过暗自动打开;主人外出关门时,室内的监控系统会因家中无人而自动开启。电灯的打开这个操作会与门打开、室内亮度过低这两个事件联系在一起,我们用产生式规则来表示描述这条知识:

IF 门打开,室内光线过暗> THEN 灯亮 >

产生式描述了事物之间的一种对应关系(包括因果关系和蕴含关系),这种基于规则的符号化模型特别适于反应人们对家电设备的调度,由一台设备的某一事件或状态作为条件,引发对另一设备的使用。此系统中的知识库实际上是一个能够表达用户主观意愿的产生式规则库,在系统中以动态数据结构进行组织。

知识的表示是描述客观事物的一组规定,是知识的符号化过程。规则主要包含规则的前提和规则结论部分,前提部分说明规则可以被引用的条件,而结论部分则说明当前提成立时可进行的操作或引起的领域行为。根据需要,一条规则可以有多个前提和多个结论。在具体用C语言实现时,直接以IF前提条件>THEN动作>语句形式编程是行不通的,为了实现事件的驱动,必须利用C语言强有力的字符串处理能力将抽象的符号变成一个个表单元。根据实际情况我们可以将智能家居监控下的设备看成一个对象,C语言定义为:

struct object{
char *name; /*设备的名称*/
float val; /*设备的特性值*/
enum events {high,middle,low,open,close};USB2.0
/*事件类型的抽象*/
};

这些对象通过规则联系起来,每定义一条规则,都要把它们存放到规则库Rule_Base中,以方便推理机获取有用的规则。在规则表达中,通过rule()函数把规则的外部语言形式转换成内部的特性表的形式,它的Clause和Action特性分别存放了该规则的前提和结论。推理时若要用到某条规则rule_X(X=1,2...n),就直接从它的特性表中取出相应的前提和结论,Clause和Action可以是一个函数调用、常量或变量,每条规则的特性表组织成如下形式:

(Clause(条件1 条件2…)Action (结论1 结论2…))

3.3 推理机的设计

推理机设计采用事件驱动正向推理方式,其基本思想是:推理机通过网关管理模块读取信息家电的当前状态,从中获取由设备产生的事件,这些事件构成了基本事实;从基本事实出发引用规则库中的规则,若某些规则的前提被满足,则执行这些规则的结论,若这些规则的结论部分形成新的事件,则用同样的方法以这些逻辑结果为基础再次进行正向推理。推理过程中的冲突消解采用最先匹配策略,将所有符合当前求解条件的知识放在一张表中,在问题求解过程中一旦找到匹配的规则即采用该规则。

事件驱动是数据驱动的发展形式,所谓事件驱动是指当事件集合中所有的事件都已发生,才能引发另一种操作。在产生式规则中,IF后面的条件便可当作一个事件集合,当用户所设定的条件都满足时,即可得出THEN后的结论或触发相应的操作,本系统通过Event_driven()函数实现了基于事件驱动的正向推理。

Event_driven()算法:

Kbase-Load() /*知识库的装载*/USB2.0
for(所有的事实fact)
{
event=fact中的事件;
for(所有在rulebase中的规则rule)
{
rule_event=出现在规则rule中的所有事件;
if(rule_event至少有一个变量没有值)
continue; /*取规则库中的下一条规则*/USB2.0
else
{
for(规则rule中每一前提clause)
match(clause);/*匹配clause中的条件*/
if(match(clause))
{
do(action); /*执行规则rule中所有action结论*/
value(action); /*用value保存每一个操作结果*/
if(rule(action))/* action产生的事件构成一个新的事实*/USB2.0
Add_Kbase(action) /*将产生的事件加入到知识库中*/
}
}
}
}

4 结束语

本文作者创新点:从智能家居未来发展方向出发,分析了利用专家系统构建AI-IA智能控制模块的必要性和合理性,建立了智能协作模型,并给出了设计专家系统的具体方法,为智能软件的优化以及在嵌入式开发板上的移植奠定了基础。

参考文献:

[1]杜玉清,王新伟.信息家电中实时智能技术的应用研究[J].计算机工程,USB2.0-CY7C68013-128S开发板2003.3:147-165.

[2]伍欣,刘自伟.提高基于规则专家系统效率的技术和方法[J].微计算机信息,2006.4-2:270-272.

[3]史济建,俞瑞钊.专家系统实现技术[M].浙江:浙江大学出版社,USB2.0-CY7C68013-128S开发板 1995

[4] Christos Douligeris,Intelligent Home Systems,IEEE Communications Magazine,1993.10

1 2

关键词: 专家系统 智能家居 AI-IA

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版