资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
敖志刚 编制,第13章 基于Prolog程序实现的专家系统开发实例,第13章 基于Prolog程序实现的专家系统开发实例,131 基于规则的动物识别专家系统 1311 动物识别专家系统的基本组成 1312 系统的PDC Prolog源程序及运行 132 基于逻辑的液压故障诊断专家系统 1321 液压故障诊断专家系统的构建 1322 液压故障诊断系统的编程与运行状态,第13章 基于Prolog程序实现的专家系统开发实例,1311 动物识别专家系统的基本组成 动物识别ES从结构上可以分成六个基本部分:知识库、数据库、知识表示、推理机、解释部分、知识获取部分。,1. 动物识别专家系统的知识库,10条规则用Turbo Prolog语言表示如下: it_is(“哺乳动物”):- positive(“产奶”). it_is(“哺乳动物”):- positive(“有毛发”). it_is(“食肉动物”):- positive(“吃肉”). it_is(“食肉动物”):- positive(“有犬齿”), positive(“有爪”), positive(“眼前视”). it_is(“有蹄动物”):- positive(“有蹄子”),it_is(“哺乳动物”). it_is(“有蹄动物”):- positive(“反刍食物”),it_is(“哺乳动物”). animal_is(“老虎”):- it_is(“哺乳动物”),it_is(“食肉动物”),positive(“黄褐色”), positive(“有黑条纹”). animal_is(“金钱豹”):- it_is(“哺乳动物”),it_is(“食肉动物”),positive(“黄褐色”), positive(“有暗斑点”). animal_is(“斑马”):- it_is(“有蹄动物”), positive(“有黑条纹”). animal_is(“长颈鹿”):- it_is(“有蹄动物”),positive(“有长脖子”), positive(“有长腿”),positive(“有暗斑点”).,2.数据库,positive(X):- ask(X). ask(X):- write(X,“吗?“), readln(Reply), remember(X,Reply).,3. 知识表示,rule(1,“老虎”,1,2,3,4). rule(2,“金钱豹”,1,2,3,5). rule(3,“斑马”,4,6). rule(4,“长颈鹿”,5,6,7,8). condition(1,“哺乳动物”). condition(2,“食肉动物”). condition(3,“黄褐色”). condition(4,“有黑条纹”). condition(5,“有暗斑点”). condition(6“有蹄动物”). condition(7,“有长脖子”). condition(8,“长腿”).,4. 推理机,推理机是一组函数,本例既有正向推理机又有反向推理机,都是用精确推理。 正向推理 用户首先提供一批事实,存放到数据库中,然后推理机进行工作。方法是: 推理机用这批事实与知识库中规则的前提进行匹配。 把匹配成功的规则的结论部分作为新的事实加到数据库中去(这时,数据库中的事实增加了)。再用更新后的数据库中的所有事实,重复上述、二步,如此反复进行,直到得出结论(答案)或不再有新的事实加到数据库为止。, 正向推理,反向推理,由用户或系统首先提出一批假设,然后系统逐一验证这些假设的真假性,方法是: 看假设是否在数据库中,若在,则假设成立,推理结束或进行下一个假设的验证,否则,进行下一步。 判断这些假设是否是证据节点,若是,系统提问用户,否则进行下一步。 找出结论部分包含此假设的那些规则,把这些规则的所有前提作为新的假设。 重复、步。,反向推理,设计一个反向推理机所具有的功能, 能根据用户要求或情况提出假设。 能验证此假设是否是在数据库中。 能把知识库中将结论部分包含此假设的规则都找出来。 能将找出来的规则的前提部分取出,并作为新的假设逐条验证。 能判断假设是否是证据节点,若是,能向用户提出相应的问题,并记录结果。 能将匹配成功的规则记录下来。 能判断何时应结束推理。, 反向推理机的实现,positive(X):- xpositive(X),!. positive(X):- not(negative(X),!,ask(X). negative(X):- xnegative(X),!. ask(X):- write(“该动物“,X,“吗?“),readln(Reply),remember(X,Reply). remember(X,yes):- asserta(xpositive(X). remember(X,no):- asserta(xnegative(X),fail. clear_facts:- retract(xpositive(_),fail. clear_facts:- retract(xnegative(_),fail.,5. 解释部分, 怎么得出这个结论的? 系统回答这个问题是通过打印(或屏幕显示)展示推导这个结论所用的规则。 例如若用户问:“为什么说该动物是金钱豹呢?”系统回答:“由于你告诉动物有毛发,它是哺乳动物;又由于你告诉它吃肉,所以它又是食肉动物;由于它是哺乳动物、食肉动物,且你告知是黄褐色的,又有暗斑点,所以它是金钱豹。” 为什么问我这个问题? 系统根据推理过程,解释问这个问题的原因。 若用户提出:“为什么问我:动物吃肉?”系统就会回答:“我为了推出该动物是金钱豹,我首先看它是否是哺乳动物,根据你的回答,这个结论是对的,于是我要考虑它是否是食肉动物,只要它吃肉,它就是食肉动物,所以我要问你这个问题。”,6. 知识获取部分,知识获取部分也称学习功能,这是为了向专家获取新规则或修改已有的不适用或有错误的规则。本系统主要是通过询问ask和建立动态数据库xpositive与xnegative来获取知识的。,13.1.2 系统的PDC Prolog源程序及运行,首先在PDC Prolog系统界面上执行命令“Run”,屏幕上会立即显示如图13-3所示的信息并展开对话。如果系统中没有一种动物符合您提供的特点,系统会告诉您“不认识此动物”。在对话中问过的问题不会重复再问,这类问题作为动态信息保留在知识库中,大大地提高了对话的效率。如果动物很多,每一种动物具有很多特性,只需要扩充规则库,采用同样的推理机制、同样的动态数据库方法、同样的知识表示方式和类似的解释机制即可。,132 基于逻辑的液压故障诊断专家系统,1321 液压故障诊断专家系统的构建 1. 故障诊断和维修是一项复杂性的工作 设备是多种技术的荟萃。 故障原因与征兆之间的关系并非一一对应。 故障与征兆之间的关系存在着两类不确定性随机性和模糊性。 故障的发生可能是间歇性的。 故障探测仪表本身也可能发生故障。,2. 液压系统的应用, 塑料加工机械、压力机械、机床等; 行走机械中的工程机械、建筑机械、农业机械、汽车等; 钢铁工业用的冶金机械、提升装置、轧辊调整装置等; 土木水利工程用的防洪闸门及堤坝装置、河床升降装置、桥梁操纵机构等; 发电厂涡轮机调速装置、核发电厂等等; 船舶用的甲板起重机械(绞车)、船头门、舱壁阀、船尾推进器等; 特殊技术用的巨型天线控制装置、测量浮标、升降旋转舞台等; 军事工业用的火炮操纵装置、船舶减摇装置、飞行器仿真、飞机起落架的收放和方向舵控制装置等。,3. 液压系统的基本原理,液压系统利用液压泵将原动机的机械能转换为液体的压力能,通过液体压力能的变化来传递能量,经过各种控制阀和管路的传递,借助于液压执行元件(缸或马达)把液体压力能转换为机械能,从而驱动工作机构,实现直线往复运动和回转运动。其中的液体称为工作介质,一般为矿物油,它的作用和机械传动中的皮带、链条和齿轮等传动元件相类似。 液压系统主要由:动力元件(油泵)、执行元件(油缸或液压马达)、控制元件(各种阀)、辅助元件和工作介质等五部分组成。,4. 液压故障诊断的流程,5液压故障诊断系统结构,6. 液压故障与征兆的对应关系描述,6. 液压故障与征兆的对应关系描述,rule(6,“常见故障“,“液压油老化“,17,18). 便和下列征兆(条件)相关联: cond(17,“油温过高“). cond(18,“磨损粉末过多“). 程序有三项大的功能(对应菜单中三个选项):即 增加新的故障到知识库; 专家咨询系统 ; 退出系统。 提问:征兆现象是不动作吗? 紧接着按键1回答是,按键2 回答不是。,7. 程序运行界面,欢迎使用液压故障诊断专家系统 * * * * * * * * * * * * * * * * * * * * * 1. 增加新的故障到知识库 * * 2. 专家咨询系统 * * 3. 退出系统 * * * * * * * * * * * * * * * * * * * * * 请您选择:1, 2或3,8.运行状态, 菜单1选项的运行动态 键入1,增加新的故障到知识库,系统会显示“键入汉字故障名:”;从键盘输入一故障名后,系统会显示18种故障征兆的编号,紧接着在下一行显示: 请按符合条件键入一组征兆号,所有征兆号键入完成按下键“0”: 在键盘上依次输入全部符合此故障条件的征兆号;输入一个号,按回车结束,再输入一个号,以此类推;按“0”结束征兆号的输入;这时系统显示: 某某故障:已经增加到故障知识库 这时,系统新增加了一个故障,若再增加一个故障,再键入1,以此类推,直到所有的新故障都输入完为止。,8.运行状态, 菜单2选项的运行动态 键入2,进入专家咨询系统。系统显示: 欢迎进入液压系统故障诊断专家系统! 请键入常见故障进入故障诊断专家咨询, 或键入?进入故障知识库检索: 键盘输入:常见故障 系统提问:征兆现象是不动作吗? (按1回答是,按2回答不是)。键入:1 系统提问:征兆现象是抖动吗? 键入:1 系统提问:征兆现象是不能微动吗? 键入:1 系统提问:征兆现象是油管车体振动吗? 键入:1 系统提问:征兆现象是液压泵噪声高吗? 键入:0,8.运行状态,系统提问:征兆现象是异响吗? 键入:1 系统提问:征兆现象是高压管路漏吗? 键入:0 系统提问:征兆现象是保位无力沉降快吗? 键入:1 系统提问:征兆现象是溢油噪声高吗? 键入:1 系统提问:征兆现象是动作慢吗? 键入:1 系统提问:征兆现象是液压缸、阀门系统泄漏吗? 键入:1 系统提问:征兆现象是液压缸、马达抽油封泄漏吗? 键入:1 系统提问:征兆现象是低压管路漏吗? 键入:1 系统提问:征兆现象是油温过高吗? 键入:1 系统显示:祝贺您!您要找的故障是:液压油量过多或过少 系统显示:这是您希望要找的故障吗?请回答“是”或“不是”: 键入:是 系统显示:很高兴能为您提供服务 ! 如果系统内没有您要找的故障,系统会显示:对不起,我不能帮助您找到此类故障。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号