《人工智能导论》实验报告

一、实验题目:识别型专家系统设计

————识别动物专家系统

二、实验目的

1、掌握专家系统的基本构成

2、掌握用人工智能程序设计语言编制智能程序的方法

三、实验内容

所选编程语言:C语言;

2.拟订的规则:

(1)若某动物有奶,则它是哺乳动物。

(2)若某动物有毛发,则它是哺乳动物。

(3)若某动物有羽毛,则它是鸟。

(4)若某动物会飞且生蛋,则它是鸟。

若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。

(6)若某动物是哺乳动物且吃肉,则它是食肉动物。

(7)若某动物是哺乳动物且有蹄,则它是有蹄动物。

(8)若某动物是哺乳动物且反刍食物,则它是有蹄动物。

(9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。

(10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。

(11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。

(12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。

(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。

(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。

(15)若某动物是鸟且善飞,则它是海燕。

设计思路:

用户界面:采用问答形式;

知识库(规则库):存放产生式规则,推理时用到的一般知识和领域知识,比如动物的特征,动物的分类标准,从哺乳动物、食肉动物来分,再具体地添加一些附加特征得到具体动物;建立知识库的同时也建立了事实库。事实库是一个动态链表,一个事实是链表的一个结点。知识库通过事实号与事实库发生联系。

数据库:用来存放用户回答的问题,存放初始状态,中间推理结果,最终结果;

推理机:采用正向推理,推理机是动物识别的逻辑控制器,它控制、协调系统的推理,并利用知识库中的规则对综合数据库中的数据进行逻辑操作。推理机担负两项基本任务:一是检查已有的事实和规则,并在可能的情况下增加新的事实;二是决定推理的方式和推理顺序。将推理机制同规则对象封装在一起,事实对象记录了当前的状态,规则对象首先拿出前提条件的断言(只有这些前提都有符合时才会做这条规则的结论),询问事实对象集,如事实对象集不知道,则询问用户,如所有前提条件都被证实为真则结论为真,否则系统不知道结论真假。

程序流程图:

程序运行如下:

有暗斑点长脖子长腿有蹄有蹄动物长颈鹿有黑色斑点金钱豹目盯前方有犬齿有爪吃肉有奶有毛发哺乳动物食肉动物有黑色条纹黄褐色老虎

有暗斑点

长脖子

长腿

有蹄

有蹄动物

长颈鹿

有黑色斑点

金钱豹

目盯前方

有犬齿

有爪

吃肉

有奶

有毛发

哺乳动物

食肉动物

有黑色条纹

黄褐色

老虎

以老虎,金钱豹,长颈鹿为例画出程序流程图如下:

四、程序编制:

程序包括知识库,数据库,推理机:

#include "Fact.h"

#include "Rule.h"

#include

fact *Fact;

//事实集(概念集)

char *str[]={"",

"反刍" /* 1 */, "有蹄" /* 2 */, " 哺乳类" /* 3*/,

"眼前" /* 4 */, "有爪" /* 5 */, "犬齿" /* 6 */,

"吃肉" /* 7 */, "下蛋 " /* 8 */, " 能飞" /* 9*/,

"羽毛" /* 10 */, "有蹄类" /* 11 */, "食肉类" /* 12 */,

"鸟类" /* 13 */, "有奶" /* 14 */, "毛发" /* 15 */,

"善飞" /* 16 */, "黑色白条纹"/* 17 */, "游泳" /* 18 */,

"长腿" /* 19 */, "长脖子" /* 20 */, "黑条纹" /* 21 */,

"暗斑点" /* 22 */, "黄褐色" /* 23 */, "海燕" /* 24 */,

"企鹅" /* 25 */, "鸵鸟" /* 26 */, "斑马" /* 27 */,

"长颈鹿" /* 28 */, "老虎" /* 29 */, "金钱豹" /* 30 */,

"\0"

};

//规则之前件(条件)集,注意与下面对应

int rulep[][6]={

{22,23,12,3,0,0}, /*金钱豹 30*/ {21,23,12,3,0

人工智能专家系统c语言,人工智能实验4三-专家系统.doc相关推荐

  1. 数据结构c语言王海燕版课后答案,c语言程序设计实验指导(学生用).doc

    c语言程序设计实验指导(学生用).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  2. c 语言差错编码实验结果,C语言程序设计实验报告(四).doc11111111111111111.doc

    C语言程序设计实验报告(四).doc11111111111111111 C语言程序设计实验报告 姓 名吴文重学 号52系 别数学系班级2班主讲教师徐时芳指导教师徐时芳实验日期2011-11-8专业10 ...

  3. c语言实验五函数答案,C语言程序设计实验五 参考答案.doc

    C语言程序设计实验五 参考答案 实验5 函数(1)参考答案 5-1.以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上.调试运行程序,观察出现了什么错误,提出修改方案. 答案: # ...

  4. c语言程序设计实验指导实验报告,C语言程序设计实验指导及报告.doc

    太原理工大学现代科技学院 C语言程序设计课程 实验报告 专业班级 学 号 姓 名 指导教师 C语言程序设计 实验指导及报告 实验说明: 1.共4次实验,每次实验完成1个内容. 2.实验报告命名统一为: ...

  5. c语言实验内容.doc答案,C语言程序设计实验内容与答案.doc

    C语言程序设计实验内容与答案 C语言程序设计实验内容与答案 第1周实验内容 本次实验内容为熟悉VC++6.0环境,编写第一个c程序:已知两边求矩形的面积 #include int main() { f ...

  6. c语言程序设计实验8,C语言程序设计实验八结构体.doc

    C语言程序设计实验八结构体 C语言程序设计实验八:结构体 请求用户输入若干个学生的基本情况,其中包括每位学生的学号.姓名和两门课(C语言.数学)的成绩.然后用下面的格式输出学生的成绩列表. 格式描述如 ...

  7. 人工智能专家系统c语言,人工智能专家系统的简单实现

    人工智能专家系统的简单实现 经过一段时间的学习.最终对专家系统有了一定的认识,在此发表一下个人的见解,希望和大家一起交流学习. 专家系统,通俗的讲.就是让计算机具有人类专家的知识.经验和技能,可以像人 ...

  8. 二叉树的遍历(c语言数据结构实验报告三)

    二叉树的遍历 一.实验目的或任务 二.实验教学基本要求 三.实验教学的内容或要求 1. 编写函数,输入字符序列,建立二叉树的二叉链表 2. 编写函数,实现二叉树的中序递归遍历算法. 3. 编写函数,实 ...

  9. C语言程序设计实验第三版:文件程序设计

    /我是咕咕,哈哈哈.今天也有好好学/ 实验七.文件程序设计(p121–p125) 一.实验目的 1.掌握文件的基本概念. 2.掌握文本文件的打开和关闭操作. 2.掌握文本文件的顺序读写方法. 二.实验 ...

最新文章

  1. sersync 同步
  2. 启动项目时出现java.io.EOFException异常。
  3. java 多线程 原子操作_线程安全之原子操作
  4. shell脚本之nginx的安装
  5. apache 服务器安全配置
  6. CSS中的类class和标识id选择符(.和#号)
  7. mysql 状态查询_MySQL状态查询
  8. 如何处理Long类型精度丢失问题?
  9. Python模拟入栈出栈操作
  10. 最全面的理解 | 工业互联网的前世今生
  11. 无线摄像头ftp服务器设置方法,camhi摄像头怎么连接ftp服务器
  12. SaaS-HRM 需求分析
  13. SVG转换为PDF的简单方法
  14. 用Python模拟QQ界面之QQ登录界面的奥秘
  15. 常见的企业流程再造模式
  16. python locale.setlocale啥意思_Python locale 多语言模块及遇到问题解决
  17. 为什么这项技术一经Google推出问世就迅速成为主流?
  18. 计算机的系统原理,计算机系统及其工作原理
  19. meego linux 双系统,安装MeeGo和Windows 7双系统的方法
  20. C语言入门 -- 输出某个月有多少天(2020/12/9)

热门文章

  1. ndarray数组的操作和运算
  2. 一文搞清楚码元速率(波特率)和比特速率(比特率)的区别
  3. 全栈设计师必须拥有的Mac软件推荐
  4. violate 修饰的用法
  5. ArcGIS Pro二次开发环境配置及项目创建示例
  6. EDK II之USB主控制器(EHCI)驱动的实现框架
  7. kotlin与Java之间的骚操作:kotlin一键调用java
  8. “Whitelabel Error Page“解决方法
  9. FPGA驱动千兆以太网PHY但电脑只显示百兆
  10. MTP模式与USB存储模式(MTP in Android)