信息家电智能协作系统的的设计与实现 —_毕业论文.doc

信息家电智能协作系统的的设计与实现 —_毕业论文.doc

ID:14368688

大小:875.50 KB

页数:67页

时间:2018-07-28

上传者:zhaojunhui
信息家电智能协作系统的的设计与实现 —_毕业论文.doc_第1页
信息家电智能协作系统的的设计与实现 —_毕业论文.doc_第2页
信息家电智能协作系统的的设计与实现 —_毕业论文.doc_第3页
信息家电智能协作系统的的设计与实现 —_毕业论文.doc_第4页
信息家电智能协作系统的的设计与实现 —_毕业论文.doc_第5页
资源描述:

《信息家电智能协作系统的的设计与实现 —_毕业论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

JIUJIANGUNIVERSITY毕业论文题目信息家电智能协作系统的设计与实现英文题目DesignandImplementationofInformationAppliancesIntellig-entCollaborativeSystem院系信息科学与技术学院专业计算机科学与技术姓名陈丽芳班级学号A081117指导教师刘华中二○一二年五月 信息科学与技术学院学士学位论文摘要随着计算机技术、网络技术和信息技术的不断发展以及人们生活质量的不断提高,家居生活智能化已经成为可能,并且成为了家居生活发展的必然趋势。要实现家居的智能化,必定要解决信息家电间的智能协作问题。信息家电作为智能家居的一个重要组成部分,信息家电间的相互协作、相互识别,自主学习和推理会将智能家居的智能化推向一个更高的层次。系统通过推理算法简单模拟实现信息家电间的智能协作,首先采用面向对象的统一建模语言UML语言来对信息家电的协作模型进行分析,建立了一个统一的协作模型;其次将协作模型中的协作关系用产生式规则进行知识表示;再次结合产生式规则专家系统知识设计推理算法;最后通过C语言结合存储在SQLite数据库中的知识库实现推理算法,简单模拟出了信息家电中的智能协作场景。通过在SQLite中的协作规则存储以及协作算法的C语言实现,系统简单模拟出了信息家电智能协作系统中状态接收,协作推理,动作触发的智能协作过程。关键词:信息家电,智能协作,统一建模语言,产生式规则60 信息科学与技术学院学士学位论文AbstractWiththecontinuousdevelopmentofcomputertechnology,networktechnologyandinformationtechnologyandimprovementofourlivingquality,thesmarthomelifehasbecometobepossible,andhasbecomeaninevitabletrendofourhomelifedevelopment.Torealizetheintelligenthomelife,wemustsolvetheproblemofinformationappliances’collaboration.Informationappliancesasanimportantpartoftheintelligenthomelife,themutualcollaboration,andmutualdistinguish;autonomiclearningandreasoningofinformationapplianceswillpromotetheintelligenthomelifetoahigherlevel.Thesystemsimplysimulatestherealizationoftheintelligentcollaborationthroughthereasoningalgorithm.First,usetheobject-orientedUnifiedModelingLanguage(UML)toanalysisthecollaborativemodelofinformationappliances,builtauniformcollaborativemodel;second,usetheproductionrulestoexpressthecollaborativerelationofthecollaborativemodel;third,combinetheProductionRulesBasedExpertSystemstheorytodesignareasoningalgorithm;Last,realizethereasoningalgorithmbyusingClanguageandcombiningtheknowledgebaseinSQLitedatabase,simplysimulatesthescenarioofinformationappliancescollaboration.ThroughthecollaborationrulesthatsavedinSQLiteandthecollaborationalgorithmthatrealizedbyC,thesystemhassimplysimulatedtheintelligentcollaborativeprocessthatincludingstatusreceiving,collaborationreasoning,actionactivatingofinformationappliancesintelligentcollaborativesystem.Keywords:InformationAppliances,IntelligentCollaboration,UnifiedModelingLanguage,ProductionRules60 信息科学与技术学院学士学位论文目录摘要IAbstractII1绪论1.1课题的提出(1)1.2课题研究背景(1)1.3课题国内外研究现状(2)1.4课题研究意义(3)1.5本文工作及创新点(4)1.6论文结构(5)2相关知识介绍2.1信息家电(6)2.2智能协作(9)2.3产生式规则(10)2.4专家系统(11)2.5本章小结(13)3信息家电智能协作系统的设计3.1基于面向对象的信息家电智能协作系统模型设计(14)3.2智能协作系统UML建模(15)60 信息科学与技术学院学士学位论文3.3信息家电智能协作系统中的概念模型设计(19)3.4本章小结(21)4信息家电智能协作系统中的知识表示和智能推理4.1基于产生式规则的知识表示(22)4.2产生式规则专家系统在信息家电智能协作系统中的应用(24)4.3产生式规则自主学习优化(27)4.4本章小结(29)5信息家电智能协作系统的实现5.1信息家电智能协作规则在数据库中的存储实现(31)5.2信息家电智能协作规则的树型结构存储实现(36)5.3代码设计与实现(38)5.4本章小结(49)6系统功能测试6.1系统数据库各表内容显示(50)6.2系统增加、删除规则功能显示(50)6.3系统推理功能测试(52)6.4系统规则优化功能测试(54)6.5本章小结(55)7总结与展望7.1论文工作总结(56)60 信息科学与技术学院学士学位论文7.2未来工作展望(56)致谢(58)参考文献(59)60 信息科学与技术学院学士学位论文1绪论1.1课题的提出如今,智能家居已经逐步成为一个热点,它已经逐步成为一个平民化的产品。智能家居不仅是体现在给它的使用者提供一个方便、舒适的住宅环境,它还包括在家居安防和家居健康监护等健康家居、安全家居的运用。智能家居所要给大家呈现的将是一个完整的家居体验。虽然说依靠一些简单的信息家电也能给用户提供一些很智能的功能,也越来越多的家电商家推出了众多的类似智能空调、智能冰箱的智能信息家电。信息家电是一种价格低廉、操作简便、实用性强、带有PC主要功能的家电产品[1]。根据以上概念可知信息家电是一种家电产品,那么它也就代表了它其实还只是一个独立的个体,因此单纯的依靠信息家电是很难实现家居的智能化的,我们需要解决信息家电间的进一步协作问题,让信息家电间相互识别,相互协作,相互触发并且能够通过主人的事先设置以及日常的行为习惯来自动地完成一些动作,达到信息家电的自主学习和自我推理。通过信息家电间的协作可以实现智能家居的一体化,让智能住宅中的信息家电成为一个整体,并且拥有自己的智慧和自主学习能力,更大程度上地为用户提供一个智能的家居。要实现信息家电间的智能协作,首先要提供一个合适、全面而且适用性高的协作模型。同时,再将信息家电的协作规则运用产生式规则的方式进行储备,成为信息家电间智能协作的一个参照依据,信息家电智能协作系统在运作过程中根据感应到的各信息家电状态来进行自我推理,自动地去推理控制信息家电间的协作。对信息家电的智能协作模型进行分析与设计,以及运用产生式规则原理来简单模拟信息家电间的智能协作,自我触发是本文的主要研究内容。1.2课题研究背景智能家居概念的起源很早,但一直未有具体的建筑案例出现,直到1984年美国联合科技公司(UnitedTechno1ogiesBuildingSystem)将建筑设备信息化、整合化的60 信息科学与技术学院学士学位论文概念应用于美国康乃迪克州(Conneticut)哈特佛市(Hartford)的CityPlaceBuilding时,才出现了首栋的“智能型建筑”,从此也揭开了全世界争相建造智能家居的序幕。但当时只是对一座旧式大楼进行了一定程度的改造,采用计算机系统对大楼的空调、电梯、照明等设备进行监测和控制,并提供语音通信、电子邮件和情报资料等方面的信息服务[2]。智能家居至今在中国已经历了近10年的发展,在2011年11月27日安徽合肥举办的第五届中国(合肥)国际家用电器博览会中也引入智能家居新概念,筹备智能家居体验馆、家电全产业链和小家电展示展销、家电新产品新技术发布、家电品牌展等内容。海尔、TCL、新科、春兰、格兰仕等知名家电企业也参加了展会。信息家电是应运智能家居而生的,从1999年3月,微软耗资数十亿美元,在全球范围内力推“维纳斯计划”,向信息家电领域挺进,到随后的美国国家半导体公司总裁赫拉在北京世界计算机博览会上在推销“信息家电”概念的同时还推出了如机顶盒、WebPDA等早期的信息家电产品以及之后中科院凯思软件集团与微软针锋相对地提出了称为“女娲”计划的嵌入式操作系统[3]。信息家电发展到现在,已经有越来越多的被冠以“智能”头衔的家电产品被推出市场,但是像海尔集团在物联网时代推出的智能生活解决方案U-home这样的关于信息家电智能协作的完整智能家居协作方案产品却没有很好的发展起来。1.3课题国内外研究现状一些诸如海尔、春兰等的家电企业更多是研究如何推出更多的智能化的信息家电产品,很少致力于信息家电的协作这方面的研究。但是如果要进一步的实现家居的智能化,我们就必须要解决信息家电间的协作问题。要实现信息家电智能协作,必将需要考虑到采用什么样的协作模型来很好地去模拟出信息家电智能协作时的各种场景。目前比较常用协作模型的有基于多Agent系统的协作模型、基于共享工作空间下的协作模型。多Agent系统是研究如何再一群自主的Agent间进行智能行为协调,它具有交互性、社交性、协作性、适应性和分布性等。Agent对环境以及其他的Agent进行适应,然后改变Agent的心智状态来60 信息科学与技术学院学士学位论文实现Agent间的协调[4]。在多Agent系统中,Agents的联合行为空间和联合状态空间是高维的,因此具体实现相对较难,此外,多Agent系统是一个分布式的系统,但是信息家电的智能协作系统是一个集中式控制的协作系统,各个信息家电不具备单独的控制能力。基于共享工作空间下的协作模型是一种更具普遍性的能够刻画群体协作的模型,整个协作过程不一定是结构化,因而具有更大的灵活性。在共享工作空间下的协作模型中,一个协作空间一般由用户空间、任务空间和文档空间所组成[5]。虽然国内对基于共享工作空间下的协作模型已经做了一定的探讨,但都没能对其协作环境给出有效的形式化描述。此外,还有基于CSCW(ComputerSupportedCooperativeWork计算机支持的协同工作)的工作模型,也还有学者提出一种采用多种模型混合,基于几种传统的计算机群体协作模型,参照并行工程理念,通过总结和概括计算机支持的协作工作的结构特点和工作方式的面向对象多层次协作模型[6]。信息家电智能协作的核心在于完成自我推理的过程,要实现信息家电间的互相识别和互相触发,涉及到信息家电协作知识的表示,以及在知识之上的知识搜索和推理技术的运用。知识的搜索与推理是人工智能研究的一个核心问题,对这一问题的研究曾经十分活跃,而且至今仍不乏高层次的研究课题。常用的知识表示方法很多,有图示法、公式法、结构化方法、陈述式表示和过程式表示等,具体的如状态空间法、问题归约法、谓词逻辑发、语义网络、框架。知识的搜索可以采用“盲目”穷举式的盲目搜索,也可以采用启发式搜索,启发式搜索运用启发信息,引用某些准则或经验来重新排列OPEN表中结点的顺序,启发式搜索要比盲目搜索有效得多,因而应用较为普遍。高级求解系统是知识推理和搜索的先进方法,规则演绎系统和产生式系统是两种比较有效的搜索方法[7]。1.4课题研究意义在智能家居不断发展的今天,普通的家电产品已经不能满足广大消费者的消费需求,而且国内众多的家电商家近几年的营销绩效并不是很好。60 信息科学与技术学院学士学位论文信息家电虽然在一定程度上给我国的家电市场带来了效益,但是独立的信息家电产品如果不能在智能家居这个大形势下实现智能协作,那信息家电的功能再是强大也不能很好给用户提供一个完整的、智能化的家居体验。只有实现信息家电间的智能协作才能更好地发挥信息家电的潜在功能,让信息家电系统实现智能化的推理和学习。借鉴面向对象的思想,将信息家电中的各个家电产品看成一个对象处理,然后再结合基于面向对象思想的UML语言来对信息家电的协作模型进行建模,从而实现在一定高度上的抽象和统一。UML语言是一种易于表达、功能强大且适用性强、规范化的语言,采用UML建立的协作模型将具有一定的指导作用。因为产生式系统本身具有表达自然直观,便于推理,可进行模块化处理,格式清晰,设计和检测方便,表示灵活的优点,因而运用产生式规则来表示信息家电间的协作规则也会比较直观,易懂,而且便于推理。基于产生式系统表示灵活的优点,我们可以采用基本的产生式规则表示形式结合数据库来存储规则,也可以采用类似树型结构的数据结构来存储规则,此外还可以尝试将规则与十字链表结合,运用十字链表来表示规则,这些表示方法在一定程度上都具有很好的优化空间,例如良好的数据库结构设计可以优化规则的搜索过程同时减少规则的冗余;合理地设计好树型结构中各结点的域可以使得推理过程得到优化同时可以通过优化结点的存储来减少事实结点的存储的次数以减少空间;运用十字链表的方式则是类似于矩阵式的存储,将规则扩展为二维的平面表示。通过灵活地运用各种数据结构,并在此基础上优化存储,优化搜索和推理效率,将会使得产生式系统在信息家电的智能协作系统中得到良好地运用。1.5本文工作及创新点论文中首先通过UML语言建立了信息家电智能协作模型;其次运用产生式规则将协作模型进行表示;再次结合产生式规则设计出智能协作算法;最后用C语言实现算法。本文的创新点在于通过UML所建立的协作模型能高度抽象出信息家电智能协作模型;其次通过产生式规则对协作模型进行知识表示,通过规则集能将信息家电智能协作场景表示成简单的条件结论形式;再次60 信息科学与技术学院学士学位论文将信息家电中的协作规则分解后存储到关系数据库中使得规则间相互独立;最后基于产生式规则专家系统实现的推理算法具有高度的统一性,适应于大多数协作推理模型。1.6论文结构论文的中英文摘要和目录部分。论文的主要内容主要分为6部分来对课题进行阐述。第一章:论文绪论部分,主要是提出课题,然后分析论文课题的研究背景、现状以及研究意义。第二章:主要是介绍一些论文的相关知识,主要有信息家电、智能协作、产生式规则、专家系统。第三章:主要是对信息家电的智能协作模型进行设计,用面向对象的思想采用UML语言来对信息家电的智能协作模型进行建模,实现对协作模型的一个整体的协作框架。第四章:将第二章中介绍的相关知识结合到信息家电智能协作系统的设计和实现过程中,对知识的表示和推理过程进行阐述和分析。第五章:信息家电智能协作推理算法和规则优化算法的实现部分。第六章:系统的功能测试部分。第七章:系统设计和实现的总结与展望部分。论文的致谢与参考文献部分。60 信息科学与技术学院学士学位论文2相关知识介绍本章主要对系统中所要用到的理论知识进行介绍,包括信息家电、智能协作、产生式规则、专家系统。2.1信息家电2.1.1智能家居智能家居(SmartHome),或称智能住宅,是以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境[8]。智能家居可以定义为一个过程或者一个系统。利用先进的计算机技术、网络通讯技术、综合布线技术、将与家居生活有关的各种子系统,有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全、有效。与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适安全、高品位且宜人的家庭生活空间;还由原来的被动静止结构转变为具有能动智慧的工具,提供全方位的信息交换功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。智能家居的智能性可以体现在生活中的各个方面。例如:智能家居可以在低碳生活方面起到良好的作用,比如家里的电视机、音响设备、电热水器等,这些家电在待机状态下都在不停的耗电,如果我们有了智能家居,有了智能化管理,那么在家中无人的时候,在不需要的时候,它会自动断电,节省了电能。智能家居也还可以运用到健康家居、快捷家居中60 信息科学与技术学院学士学位论文,我们可以设想这样的场景,当你离开家,把电动窗打开,让家里自然通风;在下班的路上通过手机无线控制家居系统,让窗户关上、新风机自动打开,把灰尘滤掉,提供健康环境;下班回到家中,空调根据设置调节好室内的空气温度和湿度,客厅灯光自动打开,浴室热水器烧好热水等待主人使用。通过家居智能,家里的老人在身体不适、出现紧急情况时通过按下紧急按钮,社区健康服务中心就可以迅速上门服务,保证老人的身体健康。此外,智能家居在保障家居财物安全方面也将发挥重要作用,可以通过智能家居中的摄像头实时监控家里的物品,当发现不法分子入室时,安防系统发送警报到远程手机,并通知小区保全和公安部门,让不法分子难逃法网。当然智能家居中的安防系统还可以实时监控家里的煤气等是否出现泄漏等意外情况,当发现意外时报告给小区物业处理,让在办公室办公的你可以完全不用担心家里的状况,另外智能家居系统自动打开窗户和空气清新设备帮你让家里的空气再度恢复到正常,让下班回家的你完全感受不到煤气的泄漏残留。智能家居系统在其使用上也体现了“智能化”的概念。(1)适应人们生活方式的各种变化家居生活的方式和要求是随着社会的变化而变化,智能家居系统也应该随着用户需求的变化而变化。在家居中,生活需求的变化通常表现为前端设备的变化;智能家居交互平台能适应设备品牌的变化、功能的变化、控制逻辑的变化,以及用户操作习惯的变化等各种前端设备的变化。(2)操作简单智能家居交互平台提供了自定义功能和操作菜单,支持各种智能终端,使得操作变得简单方便。应用交互平台式的智能家居系统是开放式系统,用户完全可以根据自己的需求来配置属于自己的智能家居系统,将系统投资成本完全掌握在直己手里。(3)让用户做主智能家居交互平台能真正实现家居“智能”化,即能自动优化控制系统,能自动学习用户的生活习惯,从而把用户从控制操作中解放出来。此外,智能家居交互平台支持各种控制、通信接口和协议,因此允许用户在该平台搭建好以后,对其他所有的控制系统进行自由选择,用户也还通过终端的接口自己来增加、删除规则,让用户真正成为系统的主人。(4)信息服务提供互动平台60 信息科学与技术学院学士学位论文智能家居交互平台可预存智能化信息,可支持用户即时浏览并进行互动,还可以提供更为丰富的内容,例如家庭办公(SOHO)支持、家庭节目编辑制作支持、防电磁辐射报警、室内仿真疗养小气候营造、室内仿真景观营造等。同时,智能家居的系统配置可以支持“菜单”式选择,即用户可以根据当前需要,自由地对配置进行增减,并在日后需求变更时随时调整配置。同时,生动的操作界面、自己动手设计符合自己个性的界面、灵活多样的前端设备能使智能家居系统与家居的氛围和谐一致[9]。2.1.2信息家电自1999年3月比尔.盖茨携维纳斯计划进入深圳以来,信息家电一词便成了时代的流行语。信息家电(3C或IA)是计算机(Computer)、通信(Communication)、消费类电子产品(ConsumerProducts)三者融合的产物,其实质就是将移动通讯设备及传统PC机中一些常用功能,与数字技术和网络技术紧密结合,以简单精巧的形式融入到家电设备中,使其成为具有视听、信息处理、双向网络通讯等功能的家庭信息终端,故也叫网络家电。信息家电既具有双向传输信息的功能:如网络浏览、视频点播、文字处理、电子邮件、个人事物管理等,又具有电器简单易用、价格低廉、维护简便的特点。可以说信息家电就是一种价格低廉、操作简便、实用性强、带有PC主要功能的家电产品。利用电脑、电信和电子技术与传统家电(包括白色家电:电冰箱、洗衣机、微波炉等和黑色家电:电视机、录像机、音响、VCD、DVD等)相结合的创新产品,是为数字化与网络技术更广泛地深人家庭生活而设计的新型家用电器,信息家电包括PC、机顶盒、HPC、DVD、超级VCD、无线数据通信设备、视频游戏设备、WEBTV、INTERNE电话等等,所有能够通过网络系统交互信息的家电产品,都可以称之为信息家电。目前,音频、视频和通信设备是信息家电的主要组成部分。另一方面,在目前的传统家电的基础上,将信息技术融人传统的家电当中,使其功能更加强大,使用更加简单、方便和实用,为家庭生活创造更高品质的生活环境,比如模拟电视发展成数字电视,VCD变成DVD,电冰箱、洗衣机、微波炉等也将会变成数字化、网络化、智能化的信息家电。60 信息科学与技术学院学士学位论文信息家电的诞生是IT产业发展到一定阶段的自然产物,它的核心技术是嵌入式操作系统和网络软件行业的规范。信息家电它能够提供较多的功能和服务,比如安全防范、交互式智能控制、家庭信息服务、智能化的故障自诊断以及家庭医疗保健等。同传统的家电产品相比,信息家电具有网络化功能、智能化、开放性、节能性和易用性。它可以根据周围环境的不同,在不需要人为干预的情况下自动地做出响应,也可以根据周围环境自动调整工作时间状态,从而实现节能。2.2智能协作智能协作一般是通过将协作模型运用到协作过程中来实现的。目前比较常用协作模型的有基于多Agent系统的协作模型、基于共享工作空间下的协作模型。在开放分布式网络环境中Agent是一个抽象实体,由于单个Agent的能力有限,一般情况下一个系统中会存在着多个Agent。多Agent系统是指一个由多个自治运行的Agent组成的一个松散耦合又协作公事的系统。多Agent系统是研究如何再一群自主的Agent间进行智能行为协调,它具有交互性、社交性、协作性、适应性和分布性等。多个Agent间相互协作,共同完成某个目标,这样就使得整个系统的工作能力以及智能性提高了许多。常用的多Agent系统的协作方法有决策网络和递归建模和Markov对策。基于共享工作空间下的协作模型是一种更具普遍性的能够刻画群体协作的模型,整个协作过程不一定是结构化,因而具有更大的灵活性。在共享工作空间下的协作模型中,一个协作空间一般由用户空间、任务空间和文档空间所组成。用户空间是指用户空间是指协作用户的集合。任务空间是指任务集合,在某一协同工作应用系统中,不同成员可以被分配不同的任务(Task),一个成员也可能被分配多个任务。文档空间是指各种共享文档资源的集合,共享文档为CSCW系统中不同的协作任务提供相应的协作资源。智能协作模型在多机器人协调、过程智能控制、网络通信与管理和交通控制领域都有应用[10]。例如在机器人足球比赛中,每一个机器人作为一个单独的Agent,通过任务分解、多级学习、动态角色分配等实施策略,构造球队站位、队形等行为模式一实现球队在比赛过程中的协调。60 信息科学与技术学院学士学位论文将智能协作运用到网络通信中的智能协作信息技术也是智能协作的一个应用,该技术主要研究大型互连网络上多个信息子系统相互作用、协同工作,联合完成信息处理任务的原理和方法。2.3产生式规则产生式系统最早由E.Post于1943年提出,并由A.Newell和E.A.Simon于1972年作为一种人类认识模型引入到人工智能研究领域。在产生式系统中,论域的知识分为两部分:用事实表示静态知识,如事物、事件和它们之间的关系;用产生式规则表示推理过程和行为。产生式系统有三部分组成:总数据库(全局数据库)、产生式规则和控制策略[11]。总数据库用于存放求解过程中各种当前信息的数据结构,如问题的初始状态、事实或证据、中间推理结论和最后结果等。产生式规则是一个以“如果满足这个条件,就应当采取某些操作”形式表示的语句,其基本形式为:IF前提THEN结论。产生式的IF称为条件、前项或产生式的左边,它说明应用这条规则必须满足的条件;THEN部分称为操作、结果、后项或产生式的右边。产生式表示既可以表示确定性知识又可以表示不确定性知识,既便于表示启发性知识又便于表达过程性知识。产生式规则如果表示确定性知识时,一般表示为:IFATHENB,即表示为:如果A成立,则B成立,简化为A→B。控制策略的作用是说明下一步应该选用什么规则,也就是说如何应用规则。通常从选择规则到执行操作分三步:匹配、冲突解决和操作。在匹配过程中,把当前数据库与规则的条件部分相匹配。如果两者完全匹配,则把这条规则称为触发规则,当按规则的操作部分去执行时,称这条规则为启用规则。被触发的规则不一定总是启用规则,因为可能同时有几条规则的条件部分被满足,因此则需要进行冲突的解决。当有一条以上规则的条件部分和当前数据库相匹配时,就需要决定首先使用哪一条规则,这就叫冲突解决。例如存在着如果主人回家,而且室内光线很暗时则打开客厅灯光60 信息科学与技术学院学士学位论文这一规则以及如果主人回家,而且室内光线很暗但现在为白天外面光线很好时,则要做的动作是打开客厅的电动窗帘这条规则。可以说这两条规则是有相同一部分的规则前件的,那当满足主人回家,而且室内光线很暗这一条件时应当如何来进行判断触发哪一条规则则成为了信息家电智能协作控制中需要解决的问题。例如可以按照规则的专一性来进行编排顺序作为冲突解决的策略,或者按照规则排序、数据排序、规模排序和就近排序等策略来解决冲突。按照规则的专一性来解决冲突的思路主要是先判断需要条件更多的规则的所有前件是否满足,然后再判断需要条件少的那条规则,例如在上面的场景中先处理条件更多的那条规则,在满足只有主人回家而且室内光线很暗这两个条件时,必须还要满足现在是白天而且外面光线很好这两个条件,那在只有主人回家而且室内光线很暗而不具备另外两个事实的情况下则不能触发这一规则,继续处理另一条规则,发现条件全部满足,则触发打开客厅灯光这一动作。操作就是执行规则的操作部分,经过操作以后,当前的临时存在事实库将会被修改,将产生出新的事实加入到临时存在事实库中,也有可能会由于新事实的出现而触发其他一些规则的执行。2.4专家系统自从1965年第一个专家系统DENDRAL在美国斯坦福大学问世以来,经过多年的科学研究之后,专家系统的理论和技术日臻成熟,它的应用也得到了飞速的发展。专家系统(ExpertSystems,ES)是以逻辑推理为基础模拟人类思维的符号主义人工智能(ArtificialIntelligence,AI)方法。设计一个专家系统要经历知识获取、知识表示、推理机设计、知识库和数据库维护等阶段。专家系统是利用存储在计算机内的某一特定领域内的专家知识,来解决过去只有专家才能解决的现实问题的计算机系统。从组成结构来看,专家系统是一个由存放专门领域知识的知识库和一个能选择、运用知识的推理机制组成的计算机系统。知识+推理=专家系统,所以与常规的程序、软件相比,专家系统似乎更专业、更特殊。专家系统的结构是指专家系统各组成部分的构造方法和组织形式[12]。专家系统一般的系统结构框图如图2-1所示。各部分的功能如下:(1)知识库(KnowledgeBase)60 信息科学与技术学院学士学位论文知识库存放着以一定形式表示的与领域相关的书本知识、常识性知识和专家凭经验得到的试探性知识,以备系统推理判断之用。一个专家系统性能高低取决于知识库的可用性、确实性和完善性。因此,知识库的设计与建造是专家系统中的一个关键性工作。数据库知识库推理机解释器人机接口用户专家专家图2-1专家系统的基本结构(2)推理机(ReasoningMachine)它利用知识库中的知识,按一定的推理策略,去求解提出的专门问题。它具有启发推理、算法推理,正向推理、反向推理和正反向推理,串行推理和并行推理等功能。(3)解释器(Expositor)根据用户的提问,对系统给出的结论、求解过程和当前的求解状态提供说明,便于用户理解系统的问题求解。在知识库完善过程中便于专家或知识工程师发现和定位知识库中的错误,便于领域的专业人员或初学者能够从问题的求解过程中得到直观学习。(4)数据库(GlobalDatabase)也称为全局数据库,它用于存储求解问题的初始数据和推理过程中得到的中间数据。(5)人机接口(Interface)60 信息科学与技术学院学士学位论文人机接口是系统与用户进行对话的界面。用户通过人机接口输入必要的数据、提出问题和获得推理结果集系统做出的解释;系统通过人机接口要求用户回答系统的询问,回答用户的问题和解释。2.5本章小结本章主要介绍了系统的设计和实现过程中需要用到的理论知识。包括信息家电、智能协作、产生式规则、专家系统,通过这些基础知识的介绍来了解到信息家电智能协作的一些基本场景和智能家居的智能性体现以及了解到在信息家电的智能协作系统中知识的表示和推理过程实现所需要的理论基础知识,也反映出系统的下一步设计和实现的思路所在。60 信息科学与技术学院学士学位论文3信息家电智能协作系统的设计本章采用面向对象的思想对信息家电智能协作模型进行设计,使用UML语言分析智能家居协作中将会出现的协作场景,并用UML语言中的用例图和活动图进行表示。根据分析出的协作场景,再对信息家电中的实体和联系进行关系分析,画出系统的总体E-R图。3.1基于面向对象的信息家电智能协作系统模型设计面向对象的思想主要是把描述事物属性的数据以及对这些数据施加的一组操作封装到一个对象中,构成一个整体,每一个对象都有自己的标识、状态和行为[13]。将信息家电设备作为一个对象,每一个设备都有其自身的状态和操作。在信息家电系统中的对象涉及到用户、智能控制终端以及各种信息家电设备,结合信息家电智能协作的场景,设计信息家电智能协作模型如图3-1所示。家庭网关Web浏览器PDA手持遥控智能手机终端……Network知识库推理机信息家电设备:空调电动窗帘电动窗户电视机……临时事实库专家状态感应动作触发图3-1信息家电智能协作模型用户通过PDA等可以支持Web浏览器功能的终端设备通过Internet或者无线Wi-Fi网来操纵信息家电中的设备和查询信息家电中的状态。家庭网关具备产生式规则专家系统模块,模块中的知识库通过专家知识来进行初始化,临时事实库通过状态感应获取信息家电设备的状态,推理机根据临时事实参考知识库中的事实进行推理,根据结论触发信息家电设备完成相应的动作,60 信息科学与技术学院学士学位论文并将产生动作后的新事实加入到临时事实库中。信息家电智能协作系统自动地根据周围环境的变化,例如外界的光照强度以及气温的变化来自动地控制智能家居中的信息家电进行协同合作。根据用户事先的设置把信息家电的协作规则设定好存储到数据库中,在实际的系统运作过程中根据当前的状态来查找到相应的协作规则,触发规则,若事实满足则根据规则来调动其它的信息家电设备完成相应的动作,自动地完成这个协作过程。例如,在傍晚时分,系统根据感应到的光照强度,得到当前即将夜幕降临的事实,则系统自动地将自动窗帘和自动窗户关上,同时如果接近主人下班时间这一事实满足,则自动地将客厅灯光打开,打开空调将室温调整到一个合适的温度值,打开饮水机,浴室打开烧水设备等,这样当主人下班回到家时,就可以舒舒服服地喝一杯热茶,然后沐浴以解去一身的疲乏。3.2智能协作系统UML建模3.2.1UML语言UML(UnifiedModelingLanguage,统一建模语言)是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。它是一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域[14]。运用UML进行面向对象的系统分析设计,通常都要经过如下的3个步骤:(1)识别系统的用例和角色。首先对系统进行需求分析,分析系统的业务流程图和数据流程图,以及系统涉及的各级操作人员,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,使用UML建模工具画出系统的用例图;最后,勾画系统的概念层模型,借助UML建模工具描述概念层的类图和活动图。(2)进行系统分析并抽象出类。60 信息科学与技术学院学士学位论文系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型,建立域模型有助于开发人员考察用例,从实际需求中抽象出类,并描述各个类之间的关系。(3)设计系统,并设计系统中的类及其行为。设计阶段由结构设计和详细设计组成。结构设计时高层设计,其任务是定义包、包间的依赖关系和主要通信机制。详细设计主要用来细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为[15]。UML的重要内容可以由下列五类图(共9种图形)来定义:第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。第二类是静态图(StaticDiagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。第三类是行为图(BehaviorDiagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。第四类是交互图(InteractiveDiagram)60 信息科学与技术学院学士学位论文,描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。第五类是实现图(ImplementationDiagram)。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。当前比较流行的UML建模工具主要有RationalRose、BorlandTogether、PowerDesigner、Visio、UMLet、StarUML等,本文采用StarUML来对信息家电智能协作模型进行建模。3.2.2利用UML语言对信息家电协作过程的表示用例图是从系统的参与者角度出发,分析参与者的与系统相关的行为。例如作为系统的使用者用户(User),它的用例包括查询显示知识库所有内容、增加规则、删除规则、启动推理流程。具体的用例图如图3-2所示。图3-2用户使用系统的用例图活动图主要是描述活动的顺序,展现从一个活动到另一个活动的控制流,在本质上是一种流程图。以空调的工作活动流程为例,60 信息科学与技术学院学士学位论文首先是检测当前的室温是否适宜,如果室温太高或者太低则打开空调,然后检测窗户是否关闭,如果未关窗户则系统自动关闭窗户,如果室温太低则空调升温,否则降温,之后用户可以设定一个温度值,在打开空调温度后可以设置其风速,然后设定空调的工作时间。具体活动图如图3-3所示。图3-3空调调节温度的活动图另外系统还可以根据用户的模式选择来自动地完成一系列的动作。例如当用户睡觉时,用户选择系统的睡眠模式,则系统自动地关闭空调、窗户、电视、音响等电器设备,将窗帘拉下,之后将客厅及其他房间的灯光关闭,并将卧室灯光打开,将卧室光强调整至弱光的睡眠状态。具体活动图如图3-4所示。60 信息科学与技术学院学士学位论文图3-4用户选择睡眠模式的活动图3.3信息家电智能协作系统中的概念模型设计通过面向对象的思想,分析出每个信息家电它的基本属性和操作,抽象出相应的信息家电智能协作系统中信息家电的基本事实,存储到事实库中。由于活动图主要是描述活动的顺序,展现从一个活动到另一个活动的控制流,在本质上是一种流程图。我们可以将其看成是一个活动之后就推理出另一个活动的发生,将活动之间建立起类似于前提和结论的联系,就可以抽象出应用于信息家电智能协作系统的协作规则,同时一个活动的发生,必将导致信息家电状态的改变,可以说事实本身就是活动之后保留下来的某一个状态,因此活动发生后导致状态的改变,正是这些状态的改变可以让推理得以继续。根据上述在活动和状态之间建立的前提和结论的联系,可以抽象出适用于信息家电智能协作系统的规则。由于实体可以是抽象的概念,将规则分解为抽象的条件和结论,分析出条件和结论其实质都是一些基本的事实60 信息科学与技术学院学士学位论文,而事实又是属于某一个具体的设备的,得到系统的总E-R图如图3-5所示。11nmn1n1nnConditionConclusionFactDeviceCondition_IDConclus-ion_IDFact_IDFact_Des-criptionDevice_IDDevice_DescriptionReas-oningBelongtoCorrespondingCondition_NeedCondition_LackMutexDeviceTypeBelongtoDevice-Type_IDDeviceType_DescriptionCorrespondingCorrespondingn1图3-5系统总E-R图其中多个条件可以推理出一个结论,所以在Condition和Conclusion间存在多对一的推理Reasoning联系。每一个Condition和Conclusion其实质都是一个事实Fact,但其中一个Fact可以在多条规则中作为条件或结论,所以在Condition和Fact之间、Conclusion和Fact之间都存在多对一的对应Corresponding联系。每一个事实都是从属于某一个具体的设备的,一个设备可以由多个状态即存在多个事实,此外每个设备都是属于一个设备类型,每个设备类型下有多个设备,所以在Fact和Device之间也存在着一对多的从属Belongto联系,在Device和DeviceType也存在着一对多的从属Belongto联系。事实与事实之间还存在着多对多的互斥Mutex关系,具体的实体属性如图中所示。Condition实体的属性有Condition_ID;Conclusion实体的属性有Conclusion_ID,Condition_Need,Condition_Lack;Fact实体的属性有Fact_ID,60 信息科学与技术学院学士学位论文Fact_Description;Device实体的属性有Device_ID,Device_Description;DeviceType实体的属性有DeviceType_ID和DeviceType_Description。3.4本章小结本章主要是采用面向对象的思想来对信息家电的智能协作进行建模,抽象出信息家电智能协作系统中的对象,结合智能协作场景,对智能协作模型进行建模。根据信息家电在实际的运作中的活动图,将活动图中活动的顺序发生抽象成产生式规则样式的规则,从而得到一个简单的规则库雏形,分析规则的条件、结论与事实和设备之间的联系,得到系统的总体E-R图。60 信息科学与技术学院学士学位论文4信息家电智能协作系统中的知识表示和智能推理系统要实现智能推理,首先要先将系统中的协作规则进行知识表示,将协作知识进行表示后,结合产生式规则专家系统理论,分析系统中的临时事实存储、推理机的推理机制、产生式规则的冲突解决以及产生式规则的自主学习优化的具体实现流程。4.1基于产生式规则的知识表示条件1条件n……前提结论产生式规则表示知识的基本形式为:if<前提>then<结论>,表示当前提成立时可以推出结论的成立,产生式规则具有如图4-1所示的模型。图4-1产生式规则的模型根据产生式规则的基本模型和所设计的协作模型,将信息家电中的协作规则定义如表4-1所示。表4-1系统总体规则定义ConditionConclusionConditionNeedNumFormulaFactIDRemarkTS01A412TS01+A11→A4128+2→51温度太低+空调打开→升温A11A41A41A211A41→A215→32升温→设定温度TS01A112TS01+A01→A1128+1→23温度太低+空调关闭→打开空调A01A11TS11A312TS11+A11→A3129+2→44温度太高+空调打开→降温60 信息科学与技术学院学士学位论文A31A211A31→A214→35降温→设定温度TS11A112TS11+A01→A1129+1→26温度太高+空调关闭→打开空调A01A11A11W012A11+W11→W012+21→207空调打开+窗户打开→关闭窗户W11W01LS01L112LS01+L01→L1130+9→108光线太弱+灯关→开灯L01L11LS01L212LS01+L11→L2130+10→119光线太弱+灯开→调光L11L21LS11L012LS11+L11→L0131+10→910光线太强+灯开→关灯L11L01GS01G011GS01→G0134→2411煤气泄漏→关闭煤气GS01W111GS01→W1134→2112煤气泄漏→开窗GS01F111GS01→F1134→2713煤气泄漏→打开空气清新设备S1TV011S1→TV0136→1314睡眠→关电视S1AU011S1→AU0136→1615睡眠→关音响S1A011S1→A0136→116睡眠→关空调S1C011S1→C0136→2217睡眠→拉下窗帘S1W011S1→W0136→2018睡眠→关窗S1L011S1→L0136→919睡眠→关灯G1AU111G1→AU1137→1720起床→打开音响G1AU312G1+AU11→AU3137+17→1921起床+音响打开→音响播放古典音乐AU11AU31G1TV111G1→TV1137→1422起床→打开电视G1TV212G1+TV11→TV2137+14→1523起床+电视打开→换台G1C111G1→C1137→2324起床→拉起窗帘G1W111G1→W1137→2125起床→打开窗户60 信息科学与技术学院学士学位论文GS01AR111GS01→AR1134→3926煤气泄漏→报警GS11AR011GS11→AR0135→3827煤气正常→停止报警4.2产生式规则专家系统在信息家电智能协作系统中的应用4.2.1临时事实的存储临时事实库是一个动态的库,在不同的信息家电运行状态下,临时事实库中存放的事实也是不同的。信息家电智能协作系统可以通过感应和监控设备来获取当前系统中各信息家电的状态存储到临时事实库中,然后推理机根据临时事实库中事实搜索规则库进行推理,在满足规则触发规则结论动作后再将新产生的事实加入到临时事实库中。考虑到用户可以自己增加信息家电设备以及移除某一信息家电设备这一信息家电设备数量的不确定性,以及每次所获得的事实数量的不确定性,可以采用单链表结构来存储临时事实。在临时事实链表中按顺序移动指针来对每一个事实结点进行推理。由于在某一时刻下,某一具体的信息家电其状态是不能互斥的,例如空调不能同时具备开和关两个状态,所以获取到的事实应当也是不能互斥的。另外在推理过程中产生的新事实也可能会和之前所具备的事实相冲突,例如假设当前具备空调关和温控设备检测到温度过高的事实,则将触发打开空调这一动作,在动作完成后会增加一个空调开的新事实到临时事实链表的最后,显然空调开和空调关是相互冲突的,因此在增加新事实后需要删除之前的互斥事实空调关。对应到临时事实链表中则是删除一个结点的操作,对于这样删除某一中间结点的操作对链式结构而言也是很方便的,但如果采用顺序结构则需要将数组中被删除元素后面的元素依次往前移动一个空间。60 信息科学与技术学院学士学位论文除了在推理产生的事实后需要考虑到事实间的互斥,还需要考虑到如果某一条规则的结论所对应的事实在临时事实库中应经存在,如果再去触发这一动作发生则会显得多余。例如如果在空调已经打开的情况下,某一规则能推理出开空调的动作,在这种情况下显然不需要再去触发开空调这一动作。此外,如果之前存在空调开这一事实,在推理过程中会将所有具备条件为空调打开的规则结论所对应的Con_Lack减1,如果再去触发开空调这一动作,则在推理到这一新事实时,再将Con_Lack减1也是不合理的。4.2.2产生式规则专家系统的推理产生式系统是专家系统的基础,专家系统就是从产生式系统发展而来的。基于规则的专家系统是一个计算机程序,该程序使用一套包含在知识库内的规则对工作存储器内的具体问题信息(事实)进行处理,通过推理机推断出新的信息。其工作模型如图4-2所示。知识库(规则、事实)工作存储器(临时事实)推理机图4-2基于规则的工作模型在信息家电智能协作系统中,知识库用来存储在实际的推理过程中所要参照的规则以及所有已定义好的事实,规则中的每一个前提和结论都是存储在事实库中的事实编号,例如有事实TS01:Room1'stempistoolow,事实编号为28;事实A11:TurnonNo.1aircondition,事实编号为2;事实A41:TurnupNo.1aircondition'stemp,事实编号为5;存在规则:TS01+A11→A41(温度太低+空调打开→升温),如果用编号来存储的则可以表示为28+2→5。将所有定义好的规则存储到数据库中作为信息家电智能协作过程中所要触发动作的依据,系统根据规则的结论来触发相应的动作来完成一个简单的推理过程。工作存储器中存储当前系统中信息家电状态所对应的临时事实,它是事实库中事实的一个子集。推理机作为信息家电协作过程中的核心部分,它主要是借助于把存放在工作存储器内的临时事实和存放在知识库内的规则结合起来,建立人的推理模型,以推断出新的信息。推理机作为产生式系统模型的推理模块,并把临时60 信息科学与技术学院学士学位论文事实与规则的前项进行比较,确定哪条规则能够被激活。通过这些激活规则,推理机把结论加到临时事实库中,并进行处理,直到再没有其他规则的先决条件与事实库中的事实相匹配为止。首先推理机根据工作存储器中已经具备的临时事实搜索规则库,如果有匹配的规则,则触发相应的动作,并且将新触发动作完成后对应的状态加到临时工作存储器中,在加入新事实的情况下再搜索规则库看能否触发新的规则发生,直到再没有其他规则的先决条件与事实库中的事实相匹配为止。例如存在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则触发动作,在处理完第一条规则后,继续处理第二条搜索出来的规则,依次进行。60 信息科学与技术学院学士学位论文运用这种方法相对简单,而且也避免了在搜索出的规则间频繁地移动和比较,在搜索出的规则间按照规则的存放顺序依次处理规则。如果采用关系数据库来存储规则,则只需要在搜索出的记录中按照记录集的顺序,依次让指针依次移动一条记录来遍历规则;如果采用将链式结构和树型结构结合的方式来存储规则库,则只需要按照链表的结构依次遍历每一个结点即可,对于链式结构每一次按照Next域来依次遍历结点是比较方便的,但是如果采用专一性来解决冲突则需要指针的来回频繁移动,而且需要保存指针前一次所遍历到的结点地址。否否否是是是是否开始临时事实库中有未推理事实搜索规则库条件匹配结论事实是否存在触发动作新产生动作和已有事实互斥互斥处理结束图4-3产生式规则推理4.3产生式规则自主学习优化在产生式规则系统中存在类似于A+B→C,C→D这样具有传递性的规则,对于这样的规则需要进行优化。在专家系统中类似于A+B→C,C→D这样的规则是存在着传递冗余的,可以直接将这两条规则优化成A+B→D一条规则[16]。但是在信息家电智能协作系统中,因为规则中的每一个结论都是需要对应到60 信息科学与技术学院学士学位论文信息家电的动作反应,所以如果直接将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的规则,如果存在这样的规则组合,则在规则库的最后加一条以一层循环中所判断规则的条件为条件,以二层循环中的规则结论为结论的新规则,优化算法中需要代码自己去判断规则是否可被优化、该如何优化,所以将这个过程称为规则库的自主学习优化。通过上面的分析可知规则的优化如果是以一条完整的规则来判断将简化搜索和判断的难度,如果60 信息科学与技术学院学士学位论文对关系数据库中所表示的产生式进行优化则需要在多个表中进行查找和判断,所以系统可以采取在树型结构和链表结构结合的信息家电协作产生式规则表示的结构下来实现规则的自主学习优化算法,具体算法流程如图4-4所示。是否否是否是开始外层遍历规则完毕得到结论事实ID外层遍历规则完毕当前规则条件为外层循环判断结论增加一条优化规则结束图4-4产生式规则自主优化4.4本章小结本章主要是介绍了信息家电智能协作系统中的知识的表示和推理实现以及系统中产生式规则的自主学习优化过程,结合产生式规则专家系统的原理,将信息家电智能协作系统中事实和规则库作为产生式系统中的知识库,将从信息家电设备中获取的事实以及推理中产生的新事实作为临时事实库存储到工作存储器中,推理机则用于完成按照临时事实和规则库的推理过程。通过将产生式规则知识表示并实现到数据库中进行存储或用树型结构和链式结构结合的方式存储知识库,再运用分别适合60 信息科学与技术学院学士学位论文于不同结构的推理算法,则可以简单地模拟出信息家电智能协作的雏形,通过规则的自主学习优化则可以提高规则的推理效率,减少规则库的遍历次数。60 信息科学与技术学院学士学位论文5信息家电智能协作系统的实现信息家电智能协作系统的实现主要包括规则的存储实现,包括基于关系数据库的存储实现和基于树型结构的的存储实现。在实现了协作规则存储的基础上,设计算法流程实现系统的推理,以及产生式规则的自主学习优化,并将算法用C语言代码模拟实现。5.1信息家电智能协作规则在数据库中的存储实现根据在系统总体设计阶段所设计的E-R图,可以将E-R图分解成如下所示关系模式。DevType_Infor(DevType_ID,DevType_Information) ;Dev_Infor(Dev_ID,DevType_ID,Dev_Description);Rule_Fact(Fact_ID,Fact_Value,Dev_ID,Fact_description);Mutex_Fact(Fact_ID,Mutex_FactID);Rule_Condition(Condition_ID,Fact_ID,Conclusion_ID);Rule_Conclusion(Conclusion_ID,Fact_ID,Condition_RequireNum,Condition_Lack).对于多对一的联系,可以将E-R图分解成两张表,将联系所对应的关系模式与多端对应的关系模式合并,将多端的主键作为联系的主键,同时将1端的主键作为联系的外键存在,将1端的实体单独作为一张表。将多对多的联系分解为一个单独的关系模式,两个多端的实体单独为一张表在这个关系模式中将两端的主键共同作为此关系模式的主码[17]。对于事实与事实间的互斥关系,是事实实体与事实实体自身的联系,将互斥间的两个事实的Fact_ID共同作为主键。设备类型信息表用于表示每一类信息家电的信息,DevType_ID作为主键,DevType_Information为设备类型实体的一个属性,用简单的字符串进行描述具体设计如表5-1所示。60 信息科学与技术学院学士学位论文表5-1设备类型信息表DevType_Infor表设计字段名字段类型字段长度主键或外键DevType_IDint4主键DevType_Informationvarchar20设备信息表用于表示每一类信息家电中具体的家电的信息,DevType_ID作为主键,DevType_ID作为外键,具体设计如表5-2所示。表5-2设备信息表Dev_Infor表设计字段名字段类型字段长度主键或外键Dev_IDint4主键DevType_IDint4外键Dev_Descriptionvarchar20规则事实表用于表示所有的信息家电事实,Fact_ID作为表的主键,Dev_IDRule_Fact表的外键,具体设计如表5-3所示。表5-3规则事实表Rule_Fact表设计字段名字段类型字段长度主键或外键Fact_IDint4主键Fact_Valuevarchar10Dev_IDint4外键Fact_descriptionvarchar50互斥事实表用于表示信息家电事实间的互斥关系,Fact_ID和Mutex_FactID共同作为主键,具体设计如表5-4所示。表5-4互斥事实表Mutex_Fact表设计字段名字段类型字段长度主键或外键Fact_IDint4主键Mutex_FactIDint4主键规则条件表用于表示所有协作规则中的条件信息,Condition_ID作为主键,Fact_ID和Conclusion_ID作为外键,60 信息科学与技术学院学士学位论文主要是根据Condition与Fact以及Condition与Conclusion的联系得到,具体设计如表5-5所示。表5-5规则条件表Rule_Condition表设计字段名字段类型字段长度主键或外键Condition_IDint4主键Fact_IDint4外键Conclusion_IDint4外键规则结论表用于表示所有协作规则中的结论信息,Conclusion_ID作为主键,Fact_ID作为外键,具体设计如表5-6所示。表5-6规则结论表Rule_Conclusion表设计字段名字段类型字段长度主键或外键Conclusion_IDint4主键Fact_IDint4外键Condition_RequireNumint4Condition_Lackint45.1.1信息家电事实库定义信息家电的事实库主要是用来存储所有的信息家电所能具备的事实[18]。由于事实Fact和设备Device间存在多对一的联系,因此在Rule_Fact表中Dev_ID字段值需要参考Dev_Infor表中的Dev_ID字段值。而Device和DeviceType间也存在多对一的联系,Dev_Infor表中的DevType_ID字段需要参考DevType_Infor表中的DevType_ID字段。DevType_Infor(DevType_ID,DevType_Information) 主要用于表示信息家电设备中的信息家电类型,DevType_ID为设备类型号,DevType_Information为设备类型描述。Dev_Infor(Dev_ID,DevType_ID,Dev_Description)表主要是用来表示每一个的信息家电设备,Dev_ID作为Dev_Infor表的主键用于区别表示信息家电中的每一个不同的信息家电设备,DevType_ID用以区别每一类信息家电设备,Dev_Description则是简单的描述。具体的表结构如表5-7和表5-8所示。60 信息科学与技术学院学士学位论文信息家电的事实库主要是用来存储所有的信息家电所能具备的事实。在这个表中需要存储事实的ID,以及事实的具体含义。可以设计如Rule_Fact(Fact_ID,Fact_Value,Mutex_Fact,Dev_ID,Fact_description)的关系模式,其中Rule_Fact作为表名,Fact_ID用以唯一标识一条事实记录,作为Rule_Fact表的主键;Fact_Value作为一条事实记录的事实含义的简要字符代码,形如A11,A表示空调(Aircondition),如同3.2.1中描述第一个1表示空调设备的状态,如0表示关,1表示开,第二个数字1表示空调的标号,用以当智能家居中存在多个空调设备标识不同的空调设备;Fact_description用简单的字符串来描述事实类似于“TurnoffNo.1aircondition”的语句。表5-7设备类型信息表DevType_InforDevType_IDDevType_Information1AirCondition2Light…………表5-8设备信息表Dev_InforDev_IDDevType_IDDev_Description11No.1AirCondition21No.2AirCondition32No.1Light42No.2Light53No.1TV………………考虑到在实际的信息家电智能推理过程和维护过程中,存在对某一事实判断其互斥事实是否同时存在于临时事实库的场景以及用户增删信息家电设备的情况,所以在事实表中增加了Mutex_Fact和Dev_Type两个属性。Mutex_Fact用以标识每一个事实的互斥事实编号,例如A01和A02是互为互斥事实的;Dev_ID用来标识当前事实记录属于哪一设备,它是作为系统中Dev_Infor(Dev_Type,Dev_Description)表的主键。事实库表Rule_Fact表的具体结构如表5-9所示。表5-9规则事实表Rule_FactFact_IDFact_ValueDev_IDFact_description1A011TurnoffNo.1aircondition2A111TurnonNo.1aircondition……………………60 信息科学与技术学院学士学位论文对于事实与事实间互斥的联系,将两端的主码共同作为联系的主码,且在Mutex_Fact表中的事实ID均要参考Rule_Fact表中的Fact_ID字段值。具体表结构如表5-10所示。表5-10互斥事实表Mutex_FactFact_IDMutex_FactID124567…………5.1.2信息家电规则库定义在实际的数据库存储中,根据系统的E-R图分解后的关系模式为规则条件表Rule_Condition(Condition_ID,Fact_ID,Conclusion_ID);规则结论表Rule_Conclusion(Conclusion_ID,Fact_ID,Condition_RequireNum,Condition_Lack),具体的表结构如表5-5和5-6所示。由于每一个事实可以作为多条规则的条件或结论,所以设计了Condition_ID和Conclusion_ID两个字段分别用来标识Rule_Condition表中的每一条条件记录和Rule_Conclusion表中每一条结论记录。在两个表中的Fact_ID都是用来表示事实标号的字段,作为Rule_Fact表的外键,其值参考Rule_Fact中的Fact_ID字段值。在Rule_Condition表中的Conclusion_ID用来表示当前条件记录能推理出的结论ID,由于结论的Fact_ID不能唯一标识结论故采用Conclusion_ID来表示不同规则的结论。在Rule_Conclusion表中的Condition_RequireNum,Condition_Lack用来分别表示推理出这条结论所需要的条件数以及所欠缺的条件数,Condition_RequireNum主要是用于在每一次推理结束后将规则库重置时将其值赋给Condition_Lack字段;Condition_Lack是在推理过程中如果推理此结论的条件满足一个则使字段值减1,当该字段值为0时则触发动作的发生。具体表结构如表5-11和5-12所示。60 信息科学与技术学院学士学位论文当存在28和2两个事实时,首先根据事实28可以查找出相应的Conclusion_ID为1的记录,在得到结论ID的情况下,再去Rule_Conclusion表中查找Conclusion_ID为1的记录,将其Condition_Lack的字段值减1,判断Condition_Lack是否为0,不为0则继续下一个临时事实的推理。根据第二个临时事实2在Rule_Condition中也可以查找到一条Conclusion_ID为1的记录,继续在Rule_Conclusion表中查找Conclusion_ID为1的记录,将其Condition_Lack的字段值减1,判断得到Condition_Lack为0而且对应的结论事实5在临时事实链表中不存在,则触发1号Conclusion_ID对应的5号事实的动作发生。得到5号事实继续将其加到临时事实库中,根据临时事实库中的内容可以得到事实5为当前推理事实,按照上述推理过程继续推理直到不能再触发规则为止。表5-11规则条件表Rule_ConditionCondition_IDFact_IDConclusion_ID1281221………………表5-12规则结论表Rule_ConclusionConclusion_IDFact_IDCondition_RequireNumCondition_Lack15222311……………………5.2信息家电智能协作规则的树型结构存储实现每一个产生式都表示成有一个以上条件但只有一个唯一结论的式子,那可以联想到在树型结构中也是出根结点外的结点是只有一个父亲结点而可以有0个以上孩子结点的结构。这样我们可以将产生式规则表示成如图5-1的形式所示[19]。但是由于在推理过程中实际上是从条件来推理出结论的,所以运用到信息家电智能协作系统的产生式规则表示中则会把以上树型结构倒置,表示A和B可以推理出C,D可以推理出E,具体如图5-2所示。60 信息科学与技术学院学士学位论文在信息家电智能协作系统中将会有大量的规则需要用这种结构来进行存储,如果只是简单的将多个树型结构表示一个森林,虽然可以将森林转化成二叉树来进行遍历或者直接对森林进行遍历,但那样都很难在保持一个规则的完整性的同时又能满足以规则为单位的遍历。进而需要进一步对以上结构进行优化和改进以适应协作系统中的规则存储的需要,可以设计如图5-3所示的结构。CABED图5-1产生式规则的树型表示CABDE图5-2产生式规则的倒置树型表示pNextpRea_ConditionRea_ConclusionCondition_NeedCCondition_LackpCurReal_SizeColla_ConditionA∧BpHeadD∧∧E11图5-3产生式规则的树型和链式结构结合表示60 信息科学与技术学院学士学位论文在图5-3所示的结构中,在每一条规则中,如果有两个以上条件,则条件共同指向同一结论,例如结点A和B都指向结论C,此外A和B互相为协作结点,则在A中设立一个域用于指向其协作条件结点B,设计协作结点这一指针域为单向的,故B的协作条件域为空,对于结论结点C每满足一个条件都使Condition_Lack减1。为了将各规则联系起来,系统采用链表的设计来解决,链表中的每一个结点都指向一条规则的第一个条件结点,这样可以通过遍历链表的每一个结点来遍历每一条规则,在规则内部通过协作结点域Colla_Condition来遍历每一个条件。5.3代码设计与实现5.3.1产生式规则在关系数据库中表示的推理流程和代码实现当产生式规则在关系数据库中表示时,系统根据临时事实和数据库中存储的规则的推理流程图如图5-4所示。关键代码如下所示。//用于根据当前所具备的Fact_ID来推理Conclusion_IDWORDRule_Reasoning(sqlite3*db,Fact_LinkList*FL){//根据FL中的每一个链结点来进行推理for(FL->pCur=FL->pHead;NULL!=FL->pCur;){pTemp=FL->pCur;//用于暂存FL->pCur,用于判断删除的是否是当前推理事实itoa(FL->pCur->Fact_ID,str,10);strcat(sql_string1,str);//从Rule_Condition中查询当前推理事实Fact_ID能产生哪些Conclusionret1=exe_select(db,sql_string1,&DB_Result1,&row1,&column1,&pErrMsg1);strcpy(sql_string1,"selectConclusion_IDfromRule_ConditionwhereFact_ID=");//重置sql_string1语句if(OK==ret1){60 信息科学与技术学院学士学位论文//对每一个推理出的Conclusion,使Con_Lack减1,如果Con_Lack为0则执行动作是是否否否开始存在未推理事实在Rule_Condition表中找出当前事实可以推理出的结论的Conclusion_ID根据Conclusion_ID在Rule_Conclusion中将Condition_Lack减1Condition_Lack为0退出当前Conclusion_ID的推理,继续下一个Conclusion_ID的推理此Conclusion的Fact_ID在事实链表中存在执行此Conclusion对应动作将结论Fact加到事实链表最后存在与当前Fact互斥的事实删除互斥事实结束将推理规则状态恢复到此事实不存在的状态否是是图5-4产生式规则在关系数据库中表示时的推理流程图for(n=0;npCur){60 信息科学与技术学院学士学位论文break;}}//endoffor(n=0;npCur){FL->pCur=FL->pCur->pFact_Next;}}//endofforreturnOK;}5.3.2基于树型结构的产生式规则的推理流程和代码实现基于树型结构和链式结构结合的产生式规则的推理流程如图5-5所示。基于树型结构和链式结构结合的产生式规则的推理流程代码如下所示。//根据条件链表推理60 信息科学与技术学院学士学位论文,依次遍历每一个条件链表中的条件结点,并且将新产生的结论事实加到链表最后。是是是是是是否否否否否否开始存在未推理事实按推理链表,遍历结点指向的规则是否满足规则条件Con_Lack减1Con_Lack为0根据结论事实触发动作将产生的新事实加入到临时事实链表中是否和已有事实互斥删除互斥事实结束是否遍历完所有规则所触发的事实是否已经存在将推理规则状态恢复到此事实不存在的状态60 信息科学与技术学院学士学位论文图5-5基于树型结构的产生式规则的推理流程图WORDRule_Reasoning(sqlite3*db,Reasoning_LinkList*RL,Fact_LinkList*Condition_Link){//如果推理链表不存在,或者链表为空,则返回ERRORif(NULL==RL||NULL==RL->pHead){returnERROR;}//用循环依次判断每一个已有的条件for(Condition_Link->pCur=Condition_Link->pHead;NULL!=Condition_Link->pCur;){pFact_Temp=Condition_Link->pCur;//在推理链表指向的当前规则中如果存在当前推理的条件,则将Condition_Lack--for(pTempLinkNode=RL->pHead;NULL!=pTempLinkNode;pTempLinkNode=pTempLinkNode->pNext){pTempTreeNode=pTempLinkNode->pRea_Condition;//如果当前Condition_Link中推理事实Fact_ID和pTempTreeNode->Fact_ID相同while(NULL!=pTempTreeNode){//如果与正在推理的条件相同,则将Condition_Lack--,并且根据结论事实触发动作if(Condition_Link->pCur->Fact_ID==pTempTreeNode->Fact_ID)60 信息科学与技术学院学士学位论文{pTempTreeNode->Rea_Conclusion->Condition_Lack--;if(0==pTempLinkNode->pRea_Condition->Rea_Conclusion->Condition_Lack&&FALSE==FactExist_Judge(pTempLinkNode->pRea_Condition->Rea_Conclusion->Fact_ID,Condition_Link)){Conclusion_Action(Condition_Link,pTempLinkNode->pRea_Condition->Rea_Conclusion->Fact_ID);Mutex_Judge(db,RL,TempLinkNode->pRea_Condition->Rea_Conclusion->Fact_ID,Condition_Link);}break;}else{pTempTreeNode=pTempTreeNode->Colla_Condition;}}//endofwhile//如果当前推理事实被作为互斥事实删除掉了,则从下一个事实开始推理if(Condition_Link->pCur!=pFact_Temp){break;}}//endoffor//如果当前推理事实未被删除,未改变则推理事实后移if(Condition_Link->pCur==pFact_Temp)60 信息科学与技术学院学士学位论文{Condition_Link->pCur=Condition_Link->pCur->pFact_Next;}}//endofforreturnOK;}5.3.3基于树型结构的产生式规则的自主学习优化流程和代码实现基于树型结构的产生式规则的自主学习优化流程如图5-6所示。基于树型结构的产生式规则的自主学习优化代码如下所示。//用自学习来优化推理树WORDOptimize_RuleTree(Reasoning_LinkList*RL){//Rule_LinkList用于存储优化过程中产生的新规则的条件和结论的事实编号,其中链表的最后一个结点为结论结点Fact_LinkList*Rule_LinkList;Init(&Rule_LinkList);//如果推理链表不存在,或者链表为空,则返回ERRORif(NULL==RL||NULL==RL->pHead){returnERROR;}//从第一个链表结点所指向的条件开始搜索是否可以优化for(pTempLinkNode1=RL->pHead;NULL!=pTempLinkNode1;pTempLinkNode1=pTempLinkNode1->pNext){pTempTreeNode1=pTempLinkNode1->pRea_Condition;//60 信息科学与技术学院学士学位论文第一个链表结点所指向的条件Temp_Conclusion=pTempTreeNode1->Rea_Conclusion->Fact_ID;//第一个链表结点所指向的条件指向的结论是否否否是是开始外层循环遍历每一条规则是否遍历完所有规则内层循环遍历每一条规则是否遍历完所有规则得到所遍历规则的结论ID当前所遍历规则是否只有一个条件且为外层循环的结论增加一条以外层循环条件为条件,以内层循环结论为结论的新规则结束图5-6基于树型结构的产生式规则的自主学习优化流程图//从从第一个链表结点所指向的条件开始搜索for(pTempLinkNode2=RL->pHead;NULL!=pTempLinkNode2;pTempLinkNode2=pTempLinkNode2->pNext)60 信息科学与技术学院学士学位论文{pTempTreeNode2=pTempLinkNode2->pRea_Condition;//如果pTempLinkNode2->pRea_Condition没有协作条件而且pTempLinkNode2->pRea_Condition->Fact_ID//恰好是pTempTreeNode1->Rea_Conclusion->Fact_IDif(Temp_Conclusion==pTempTreeNode2->Fact_ID&&NULL==pTempTreeNode2->Colla_Condition){//将当前pTempTreeNode1所在Rule里面的所有条件加入到Rule_LinkList中作为新规则的条件,而且pTempLinkNode1移到当前pTempTreeNode1所在Rule规则之后while(NULL!=pTempTreeNode1){Add_Fact(Rule_LinkList,pTempTreeNode1->Fact_ID);pTempTreeNode1=pTempTreeNode1->Colla_Condition;}//将pTempTreeNode2->Rea_Conclusion->Fact_ID加入到Rule_LinkList中作为新规则的结论Add_Fact(Rule_LinkList,pTempTreeNode2->Rea_Conclusion->Fact_ID);printf("Addonenewrule ");Add_Rule(RL,Rule_LinkList);//增加新规则Free_FactLink(Rule_LinkList);Init(&Rule_LinkList);//删除新规则所有结点,以备下一个新规则使用pTempFact1=Rule_LinkList->pHead;while(NULL!=pTempFact1)60 信息科学与技术学院学士学位论文{pTempFact2=pTempFact1;pTempFact1=pTempFact1->pFact_Next;Delete_Fact(Rule_LinkList,pTempFact2->Fact_ID);}}}}returnOK;}5.4本章小结本章主要是实现产生式规则在数据库中的存储以及基于树型和链表的存储结构再设计和实现系统实现时关键流程的流程图和代码,通过流程图来分析不同形式的产生式规则表示时的推理流程,根据流程图设计代码以及实现代码。由于对于产生式规则的自主学习代码优化以整个规则为单位来判断将便于实现,因此只在基于树型结构和链式结构结合的产生式表示方式上实现了简单的规则自我优化流程。60 信息科学与技术学院学士学位论文6系统功能测试功能测试也叫黑盒测试或数据驱动测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码。功能测试一般根据系统的设计和需求,分析系统中的功能点,然后根据功能点来设计测试用例。验证功能是否实现的过程则是根据测试用例中的输入及测试步骤对系统进行测试。此信息家电智能协作系统中的功能测试主要是对系统的基本表的显示功能、规则的增加和删除功能、以及基于产生式规则的推理功能和规则优化功能进行测试。其中对推理功能的测试包括基本的推理功能测试、对结论事实已存在时的处理流程测试、互斥事实的处理流程测试。测试主要通过设计简单的测试用例以及按照测试用例运行系统进行测试。6.1系统数据库各表内容显示测试点:显示数据表内容。测试分析:数据库中存储了DevType_Infor,Dev_Infor,Rule_Fact,Mutex_Fact,Rule_Condition,Rule_Conclusion6个数据表,因此预期将显示6张表的内容。测试输入数据:选择功能号1显示所有数据表内容。测试预期输出:输出显示所有数据表中的内容。测试实际输出:如图6-1所示(部分内容省略)。6.2系统增加、删除规则功能显示测试点:测试系统增加一条规则功能。测试分析:增加规则后,将在Rule_Condition和Rule_Conclusion表中增加相应记录,新增加的规则将增加到表的最后。测试输入数据:增加规则32+30→36,输入32、30、36。测试预期输出:将规则加入规则库。60 信息科学与技术学院学士学位论文测试实际输出:如图6-2、6-3、6-4所示。图6-1系统数据表显示图6-2系统增加规则时输入图6-3系统增加规则后在Rule_Condition表中增加的记录图6-4系统增加规则后在Rule_Conclusion表中增加的记录测试点:测试系统删除规则功能。测试分析:删除规则后,将在Rule_Condition和Rule_Conclusion60 信息科学与技术学院学士学位论文表中删除相应记录,测试输入删除条件事实号为32的规则,则系统将删除在规则条件表Rule_Condition中事实号Fact_ID为32的记录,并根据在Rule_Condition中的Conclusion_ID查找Rule_Conclusion表,之后删除Rule_Conclusion表中相应的Conclusion记录。测试输入数据:删除以32为条件的规则,输入条件32。测试预期输出:删除规则32+30→36。测试实际输出:如图6-5、6-6、6-7所示。图6-5系统删除规则时输入图6-6系统删除图6-3中增加的以32为条件的记录图6-7系统删除图6-4中增加的以32为条件的结论记录6.3系统推理功能测试测试点:测试系统基本推理功能,系统的基本推理功能主要是根据所输入的条件事实号推理出结论号,触发相应的动作,依据推理出规则的顺序,依次输出结论事实对应的描述。测试分析:根据规则30+9→10,30+10→11,37→17,37+17→19,37→14,37+14→15,37→23,37→21,将推理出10、17、14、23、21、11、19、15,因此根据结论号将分别输出对应的描述。测试输入数据:30(光线太弱)、9(灯关)、37(选择起床模式)。测试预期输出:输出10(开灯)、17(开音响)、14(开电视)、23(拉开窗帘)、21(开窗)、11(调节灯关强度)、19(播放古典音乐)、15(换台)对应的描述。60 信息科学与技术学院学士学位论文实际输出:如图6-8所示。图6-8系统基本推理功能实现测试点:测试系统推理功能以及在事实已经具备时将不触发动作的发生。测试分析:根据规则36→13,36→16,36→1,36→22,36→20,36→9,但20已经存在,将推理出13、16、1、22、9。测试输入数据:20(窗户关闭)、36(选择睡眠模式)。测试预期输出:根据规则输出13(关电视)、16(关音响)、1(关空调)、22(拉下窗帘)、9(关灯)对应的描述。测试实际输出:如图6-9所示。图6-9系统推理重复事实处理实现测试点:当推理出的新事实与现有临时事实互斥时,将删除互斥事实结点。测试分析:根据规则28+2→5,28+1→2,36→13,36→16,36→1,36→22,36→20,36→9由于36推理出1和2互斥,故不根据28+2→5推理出5,而根据规则28+1→60 信息科学与技术学院学士学位论文2推理出2。测试输入数据:28(温度太低)、36(选择睡眠模式)、2(空调打开)。测试预期输出:推理出13(关电视)、16(关音响)、1(关空调)、22(拉下窗帘)、20(关窗)、9(关灯、)2(开空调)对应描述。测试实际输出:如图6-10所示。图6-10系统推理互斥事实处理实现6.4系统规则优化功能测试测试点:测试系统自我优化规则功能。测试分析:根据规则28+2→5,5→3和29+2→4,4→3优化后将增加28+2→3和29+2→3两条规则。测试输入数据:选择进入优化模块。测试预期输出:增加28+2→3和29+2→3两条规则。测试实际输出:如图6-11、6-12所示。图6-11系统优化规则显示60 信息科学与技术学院学士学位论文图6-12系统增加两条优化规则6.5本章小结本章主要通过设计简单的功能测试用例来对系统中的主要功能进行测试,测试用例主要包括测试点、测试分析、测试输入、测试预期输出、测试实际输出。通过测试分析来说明测试中的预期输出结果,验证功能是否实现主要是通过比较实际输出结果和预期结果是否一致,如果一致则证明所测试功能点是通过的。60 信息科学与技术学院学士学位论文7总结与展望论文的总结与展望部分主要是通过简短的文字描述来对论文的撰写工作和课题的研究工作进行总结以及分析论文和系统中存在的需要改进和改善的地方。7.1论文工作总结论文工作主要分为三个阶段,第一阶段主要是对所研究的内容进行初步的分析,通过参考相应的文献和资料明白课题所要研究的内容,分析系统所要实现的功能,以及思考通过什么平台和思路来实现算法。第二阶段是论文的提纲完成阶段,根据第一阶段的学习和积累,列出论文的大致提纲,并且完成论文的前面几章内容,完成系统基本的数据库概念模型和关系模型的设计,定义信息家电的基本设备、基本事实以及定义信息家电智能协作系统的基本协作规则。第三阶段主要是协作算法的实现阶段,根据初步的设计和构思,用C语言结合存储在SQLite中的规则简单模拟信息家电中的智能协作。论文中所设计的基于产生式规则的信息家电智能协作算法主要是根据产生式规则专家系统的思想,通过推理机来依据知识库中的专家知识进行推理,并将在推理过程中的临时事实存储在临时事实库中。通过基于面向对象思想的协作模型的建立,依据协作模型的协作规则的表示,以及依据协作规则的推理算法的实现来模拟出信息家电智能协作系统中的协作场景。7.2未来工作展望由于在系统的实现过程中,只是简单地对所设计的基于产生式规则的推理算法进行模拟实现,并借助于数据库平台,在数据库中的查找是基于线性表的查找,而且推理过程中需要多次地对表进行搜索和查找因此在推理效率上有待提高,在未来的工作中希望可以通过设计出一种具有更高推理效率的算法,并且在规则的存储数据结构上进行优化。此外,由于在定义时所定义的设备和事实以及规则并不是特别完善,在实际的应用中需要考虑到更多的设备和规则的发生,60 信息科学与技术学院学士学位论文在规则庞大的情况下,还需要通过一定的算法来消除规则之间的冗余。系统现在所实现的推理顺序是按照临时事实链表中所接收到的事实结点的顺序来逐个进行推理的,这在实际情况中也不是很合理的,例如如果智能家居系统中出现类似火灾或煤气泄漏等紧急情况时希望能优先处理这些事实,而在这些事实正在处理的情况下,如果有规则能推理出和这些紧急情况结论相悖的结论那也应该阻止这些规则或延后这些规则的执行。系统中的规则库是人手动去添加和设计的,如果能运用类似于神经网络算法这样的智能算法,实现规则的自我初始化、自主学习那系统的功能将更加完善[20]。60 信息科学与技术学院学士学位论文致谢论文完成之际,谨向我的导师刘华中老师致以最衷心的感谢!导师以其深厚的理论知识积累和丰富的编程经验在课题研究阶段给予了本人理论知识以及实践上的多方面指导。在对本人进行指导期间,导师注重在思路上对本人进行引导,并及时纠正本人思路上的错误,给本人提出很多建设性的意见。导师严谨的工作态度、敏锐的学术思维和精益求精的治学态度让本人受益匪浅,让我更加坚实了自己对专业知识多加专研的想法,也激励自己不断学习、不断进取。在此向刘老师的指导工作表示衷心的谢意,对他严谨、求实的工作态度表示最崇高的敬意。在论文完成之际,也感谢所有帮助和关心过我的老师、同学和朋友,感谢他们的每一次鼓励和帮助,希望他们都能工作顺利,前程似锦!由于笔者经验不足、能力有限,论文中难免有一些缺陷和不足之处,希望各位老师和同学多多指正,也希望大家能对论文及课题研究内容提出不同见解,各抒己见,共同充实课题研究内容。60 信息科学与技术学院学士学位论文参考文献[1]朱昌平,林善明.信息家电的发展现状及展望[J].河海大学常州分校学报,2003,09:15~16[2]蒋仙华.智能家居系统的研究与开发:[硕士论文].保存地点:浙江大学(浙江)图书馆,2004[3]马小红.信息家电市场分析及营销渠道选择:[硕士论文].保存地点:广东工业大学(广东)图书馆,2004[4]蔡自兴,徐光祐.人工智能及其应用[M].北京:清华大学出版社,2004.08:328~331[5]黄国言,孙惠学.共享空间下的协作模型研究[J].中国机械工程,2006,10:2144~2145[6]张道春,刘弘.一种面向多层次协作模型研究[J].信息技术与信息化,2006,01:111~113[7]蔡自兴,徐光祐.人工智能及其应用[M].北京:清华大学出版社,2004.08:24~29[8]瞿绍军,刘宏,唐赞玉.信息家电体系结构研究[J].计算机技术与发展,2007,06:224~227[9]杜成仁.智能家居的发展趋势[J].智能建筑与城市信息,2010:93~94[10]丁永生.计算智能[M].北京:科学出版社,2004.08:224~225[11]蔡自兴,徐光祐.人工智能及其应用[M].北京:清华大学出版社,2004.08:55~58[12]冯定.神经网络专家系统[M].北京:科学出版社,2006.09:1~4[13]钱乐秋,赵文耘,牛军钰.软件工程[M].北京:清华出版社,2007.03:148~152[14]蔡敏,徐慧慧,黄炳强.UML基础与Rose建模教程[M].北京:人民邮电出版社,2006.01:19~2360 信息科学与技术学院学士学位论文[15]蔡敏,徐慧慧,黄炳强.UML基础与Rose建模教程[M].北京:人民邮电出版社,2006.01:66~67[16]赵晓东.软件测试在基于规则推理的专家系统评价中的研究与应用:[硕士论文].保存地点:山西大学(山西)图书馆,2005[17]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.05:224~225[18]张培明,马乐群,王春林,基于产生式规则和演绎推理的自动变速器诊断系统研究[J].科学之友,2011,12:66~67[19]索红军.专家系统中产生式规则研究与分析[J].2011,06:63~65[20]陶丽杰.基于专家系统的智能家居节能控制系统研究:[硕士论文].保存地点:西安建筑科技大学(西安)图书馆,201060

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭