1、第一节 专家系统概论,一、专家系统的基本概念 1、专家系统的概念 具有相当于专家的知识和经验水平,以及解决专门问题能力的计算机系统 通常指计算机软件系统 2、专家系统的特点 1)与传统的计算机程序相比,ES的特点 知识信息处理系统 知识利用系统 具有知识推理能力 咨询解释能力,第一节 专家系统概论,2)与人类专家相比,ES的特点 ES的知识具有永久性 ES的知识和它本身都很容易被复制和传播 ES的知识具有高度的一致性和可靠性 ES的费用较人类专家低得多,第一节 专家系统概论,二、专家系统的结构,第一节 专家系统概论,三、专家系统的用途和类型 1、专家系统的用途 知识利用、保存和传播的现代化工具
2、 人工智能和知识工程技术的开发环境 2、专家系统的类型 解释型 诊断型 设计型 教学型 咨询型 工具型,第二节 专家系统入门,一、一个简单的专家系统 该系统没有知识的获取、解释和帮助功能 其知识库没有采用外部文件的形式,而是程序的一部分 其知识直接采用PROLOG规则形式表达 推理机直接应用PROLOG的推理机制,第二节 专家系统入门,二、系统设计 1、诊断的表示 三个诊断结果分别用三个diagnose规则表示 如:如果 脸色通红and 皮肤发烫and 体温升高那么 中暑 用PROLOG规则表示: diagnose(“中暑”) if symptom(“脸色通红”) and symptom(“皮
3、肤发烫”) and symptom(“体温升高”) diagnose(“病因不明”),第二节 专家系统入门,2、症状的表示 用symptom 谓词表示 每个症状需定义一条规则,如 symptom(“恶心”) if ask(“病人是否恶心”, “恶心”) 在database段,定义两个数据库谓词: yes(symptom) no(symptom) ask(Text, Keyword) if write(Text), readchar(Answer),write(Answer), nl,Answer=y, asserta(yes(Keyword). ask(_,Keyword) if assert
4、a(no(Keyword), fail.,第二节 专家系统入门,3、措施的表示 一般性措施,用“或”关系与三种诊断结果相对应 特殊措施,用于不同的诊断结果 用measure谓词表示 数据库谓词recognized用于存储诊断结果,第二节 专家系统入门,三、程序的执行过程 调用diagnose(D)规则,证明诊断 将诊断结果存入数据库 调用measure(M)规则,给出应采取的措施,第二节 专家系统入门,四、规则库的构造,第二节 专家系统入门,五、程序运行,医疗诊断系统 请用y或n回答下列问题 病人脸色是否苍白?n 病人脸色是否发红?y 病人皮肤是否发烫?y 病人体温是否过高?y,诊断结果:中暑
5、 请采取以下措施: 病人是否已昏迷?n 将病人抬到阴凉处 用湿毛巾擦身降温 呼救,第二节 专家系统入门,医疗诊断系统 请用y或n回答下列问题 病人脸色是否苍白?n 病人脸色是否发红?y 病人皮肤是否发烫?y 病人体温是否过高?n 病人皮肤是否发凉?y 病人是否恶心?y 病人是否呕吐?y,诊断结果:日射病 请采取以下措施: 病人是否已昏迷?y 病人呼吸是否正常?y 平躺 将病人抬到阴凉处 将病人抬到阴凉处 呼救,第三节 正向推理专家系统,一、系统规划 1、系统的基本功能 通过对话输入新的知识库并加以储存 调入一个已储存的知识库 通过对话输入已知事实 结论推理并输出结果 程序不用重新启动也能重复运
6、行,第三节 正向推理专家系统,2、系统的扩展功能 用菜单的形式控制 用菜单的形式选择事实输入 对知识库进行编辑,第三节 正向推理专家系统,3、知识的表达 rule(编号,条件1,条件2,结论) 如: rule(3,“哺乳动物”,“个头大”,“有长鼻子”,“大象”) rule(4,“生活在水中”,“用鳃呼吸”,“鱼”),第三节 正向推理专家系统,二、推理机设计,inference if rule(Rn,Cond,Cons), not(fact(Cons), meeted(Cond), explain(Rn,Cons), assertz(fact(Cons), fail. meeted(). me
7、eted(Cond|Rest) if fact(Cond), meeted(Rest).,第三节 正向推理专家系统,三、规则库的产生 提供两种操作:构造新的知识库(a)或将已存在的知识库调入内存(b) process(a) if acquisition. process(b) if write(“请输入知识库名:”), readln(Name), consult(Name), writef(“知识库%已装入”,Name). 若输入的知识库名字不存在 process(b) if write(“指定的知识库不存在!”), beep,wait(15000), start. wait(0). wait
8、(N) if N1=N-1, wait(N1).,第三节 正向推理专家系统,当使用者即不选择a,也不选择b process(_) if write(“选择错误,注意只能选择a或b”),beep,wait(15000), start. 新建知识库acquisition rule_read(Nr) if conditions_read(,List), conclusion_read(Conclusion), assertz(rule(Nr,List,Conclusion), Nr1=Nr+1, continue(Nr1).,第三节 正向推理专家系统,读入条件 conditions_read(L1,
9、L2) if write(“请输入条件”), readln(B), B”*” attach(L1,B,Lnew), conditions_read(Lnew,L2). conditions_read(L,L). attach(,L,L). attach(X|L1,L2,X|L3) if attach(L1,L2,L3).,第三节 正向推理专家系统,四、事实的收集 dialog if makewindow(3,7,7,”事实搜集”,2,2,20,75), write(“请输入已知事实,打入星号退出:”),nl, facts_readin. facts_readin if write(“事实”),
10、 readln(F), F”*”, assertz(fact(F), facts_readin. facts_readin.,第三节 正向推理专家系统,五、动物识别 1、知识库 rule(1,“有毛皮”, “是哺乳动物”) rule(2,“产乳”, “是哺乳动物”) rule(3,“有羽毛”, “是鸟”) rule(4,“下蛋”, “是鸟”) rule(5,“能飞”, “是鸟”) rule(6,“能游水飞”, “生活在水中”, “是鱼”) rule(7,“有长鼻”, “是哺乳动物”, “是大象”) rule(8,“有鬃毛”, “是哺乳动物”, “是狮子”) rule(9,“有驼峰”, “是哺乳动物”, “是骆驼”) rule(10,“尖耳朵”, “是鸟”, “是猫头鹰”) rule(11,“钩”, “是鸟”, “是鹰”) rule(12,“红色”, “是鱼”, “是金鱼”) rule(13,“很大”, “是鱼”, “是鲨鱼”),第三节 正向推理专家系统,2、示例 输入事实:能游水、生活在水中,很大 推理结论 已知下列事实: 能游水 生活在水中 很大 根据规则6 得出结论:是鱼 已知下列事实: 能游水 生活在水中 很大 是鱼 根据规则13 得出结论:是鲨鱼 继续还是退出(y/n)?,