第13章 基于Prolog程序实现的专家系统开发实例
时间:2026-01-20
时间:2026-01-20
第13章 基于Prolog程序实现的专家系统开发实例 章 基于 程序实现的专家系统开发实例
第13章 基于Prolog程序实现的专家 13章 基于Prolog程序实现的专家 系统开发实例
敖志刚 编制
第13章 基于Prolog程序实现的专家系统开发实例 章 基于 程序实现的专家系统开发实例
第13章 基于 章 基于Prolog程序实现的专家系统 程序实现的专家系统 开发实例 13.1 基于规则的动物识别专家系统 . 13.1.1 动物识别专家系统的基本组成 . . 13.1.2 系统的PDC Prolog源程序及运行 . . 系统的 源程序及运行 13. 13.2 基于逻辑的液压故障诊断专家系统 13.2.1 液压故障诊断专家系统的构建 . . 13.2.2 液压故障诊断系统的编程与运行状 . . 态
第13章 基于Prolog程序实现的专家系统开发实例 章 基于 程序实现的专家系统开发实例
第13章 基于 章 基于Prolog程序实现的专家 程序实现的专家 系统开发实例 13.1.1 动物识别专家系统的基 . . 本组成 动物识别 从结构上可以分成六个 动物识别ES从结构上可以分成六个 基本部分:知识库 数据库、 知识库、 基本部分 知识库、数据库、知识 表示、推理机、解释部分、 表示、推理机、解释部分、知识获 取部分。 取部分。
第13章 基于Prolog程序实现的专家系统开发实例 章 基于 程序实现的专家系统开发实例
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(“有暗斑点”). 有长腿 有暗斑点
第13章 基于Prolog程序实现的专家系统开发实例 章 基于 程序实现的专家系统开发实例
2.数据库 positive(X):- ask(X).
ask(X):- write(X,"吗?"), 吗 readln(Reply), remember(X,Reply).
第13章 基于Prolog程序实现的专家系统开发实例 章 基于 程序实现的专家系统开发实例
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,“长腿”). 长腿” 长腿
第13章 基于Prolog程序实现的专家系统开发实例 章 基于 程序实现的专家系统开发实例
4. 推理机 推理机是一组函数,本例既有正向推理机又有反向推 推理机是一组函数, 理机,都是用精确推理。 理机,都是用精确推理。 ⑴ 正向推理 用户首先提供一批事实,存放到数据库中,然后推理 用户首先提供一批事实,存放到数据库中, 机进行工作。方法是: 机进行工作。方法是推理机用这批事实与知识库中规则的前提进行匹配。 ① 推理机用这批事实与知识库中规则的前提进行匹配。 ② 把匹配成功的规则的结论部分作为新的事实加到数据库中 这时, 去(这时,数据库中的事实增加了 。再用更新后的数据库中 这时 数据库中的事实增加了)。 的所有事实,重复上述① 二步,如此反复进行, 的所有事实,重复上述①、②二步,如此反复进行,直到 得出结论(答案 或不再有新的事实加到数据库为止。 答案)或不再有新的事实加到数据库为止 得出结论 答案 或不再有新的事实加到数据库为止。
第13章 基于Prolog程序实现的专家系统开发实例 章 基于 程序实现的专家系统开发实例
⑴ 正向推理开始 令I=1 取出规则I的前提部分 取出规则 的
前提部分 这些前提都在 数据库中吗? 数据 …… 此处隐藏:3890字,全部文档内容请下载后查看。喜欢就下载吧 ……