人工智能---动物识别专家系统_第1页
人工智能---动物识别专家系统_第2页
人工智能---动物识别专家系统_第3页
人工智能---动物识别专家系统_第4页
人工智能---动物识别专家系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 一 题目 题目 动物识别专家系统 二 二 实验目的实验目的 1 理解并掌握基于规则系统的表示与推理 2 学会编写小型的生产式系统 理解正向推理和反向推理的过程以及两者的区 别 3 学会设计简单的人机交互界面 三 三 实验内容实验内容 动物识别专家系统是流行的专家系统实验模型 它用产生式规则来表示知识 共 15 条规则 可以识别七种动物 这些规则既少又简单 可以改造他们 也可 以加进新的规则 还可以用来识别其他东西的新规则来取代这些规则 四 四 实验要求实验要求 1 确定推理方法 正向还是反向 并根据问题设计实现一个简单的不通用推理 机 匹配 冲突消解 2 规则库要求至少包含 15 条规则 3 初始事实可以任意给定 输入初始事实后能够得到推理结果 4 设计人机界面 解释模块提供查询规则的功能 5 可以不考虑知识库管理模块 6 提交实验报告 7 报告中要有推理树 五 五 实验原理实验原理 动物识别专家系统是流行的专家系统实验模型 它用产生式规则来表示知识 共 15 条规则 可以识别七种动物 这些规则既少又简单 可以改造他们 也可以加 进新的规则 还可以用来识别其他东西的新规则来取代这些规则 动物识别 15 条规则 规则 1 如果 动物有毛发 则 该动物是哺乳动物 规则 2 如果 动物能产奶 则 该单位是哺乳动物 规则 3 如果 该动物有羽毛 则 该动物是鸟 规则 4 如果 动物会飞 且会下蛋 则 该动物是鸟 规则 5 如果 动物吃肉 则 该动物是肉食动物 规则 6 如果 动物有犬齿 且有爪 且眼盯前方 则 该动物是食肉动物 规则 7 如果 动物是哺乳动物 且有蹄 则 该动物是有蹄动物 规则 8 如果 动物是哺乳动物 且是反刍动物 则 该动物是有蹄动物 规则 9 如果 动物是哺乳动物 且是食肉动物 且是黄褐色的 且有暗斑点 则 该动物是豹 规则 10 如果 如果 动物是黄褐色的 且是哺乳动物 且是食肉 且有黑条 纹 则 该动物是虎 规则 11 如果 动物有暗斑点 且有长腿 且有长脖子 且是有蹄类 则 该动物是长颈鹿 规则 12 如果 动物有黑条纹 且是有蹄类动物 则 该动物是斑马 规则 13 如果 动物有长腿 且有长脖子 且是黑色的 且是鸟 且不会飞 则 该动物是鸵鸟 规则 14 如果 动物是鸟 且不会飞 且会游泳 且是黑色的 则 该动物是企鹅 规则 15 如果 动物是鸟 且善飞 则 该动物是信天翁 六 六 推理树推理树 老虎老虎 哺乳动哺乳动 物物 黑条纹黑条纹黄褐色黄褐色 肉食动肉食动 物物 能产奶能产奶吃肉吃肉有爪有爪有犬齿有犬齿 眼顶前眼顶前 方方 规则 2 规则 5 规则 6 规则 10 七 七 代码代码 include include include include define True 1 define False 0 define DontKnow 1 有毛发有毛发 规则 1 char str chew cud 反刍动物 hooves 蹄类动物 mammal 哺乳动物 forward eyes 眼盯前方 claws 有爪 pointed teeth 有犬齿 eat meat 吃肉 lay eggs 会下蛋 fly 会飞 feathers 有羽毛 ungulate 有蹄 carnivore 食肉动物 bird 鸟 give milk 能产 奶 has hair 有毛发 fly well 善飞 black int rulep 6 22 23 12 3 0 0 21 23 12 3 0 0 22 19 20 11 0 0 21 11 0 0 0 0 17 19 20 13 9 0 17 18 13 9 0 0 16 13 0 0 0 0 15 0 0 0 0 0 14 0 0 0 0 0 10 0 0 0 0 0 8 7 0 0 0 0 7 0 0 0 0 0 4 5 6 0 0 0 2 3 0 0 0 0 1 3 0 0 0 0 int rulec 30 29 28 27 26 25 24 3 3 13 13 12 12 11 11 0 class fact private int Number char Name 21 int Active int Succ public fact Next fact int Num char L strcpy Name L Number Num Active False Succ DontKnow Next NULL char GetName char L L new char 21 strcpy L Name return L int GetNumber return Number int GetAct return Active int GetSucc return Succ void PutAct const int Act0 int Suc0 Active Act0 Succ Suc0 fact Fact class list private int Number public list Next list int Num Number Num Next NULL int GetNumber return Number class rule char Name list Pre int Conc public rule Next rule char N int P int C rule int Query void GetName cout Next delete Pre Pre L delete Name rule rule char N int P int C int i list L Pre NULL Next NULL Name new char strlen N 1 strcpy Name N i 0 while P i 0 L new list P i L Next Pre Pre L Conc C int rule Query char c int Tag 0 list L fact F F Fact L Pre if L NULL cout GetNumber F GetNumber break F F Next if L GetNumber 0 if F GetSucc true L L Next continue if F GetSucc false return false else if F GetSucc True return False if F GetSucc False L L Next continue cout GetName Y N GetNumber 0 F PutAct 1 True if L GetNumber PutAct 1 True Tag 1 return False else if L GetNumber PutAct 1 False else F PutAct 1 False Tag 1 return False L L Next F Fact for if Conc F GetNumber break F F Next if ConcPutAct 1 True return False if Tag 1 F Fact for if Conc F GetNumber break F F Next if ConcPutAct 1 True return False cout nThis aniamal is GetName Next Fact Fact F i F Fact Fact NULL while F T F F F Next T Next Fact Fact T i 0 ch 0 R ch 1 U ch 2 L ch 3 E ch 4 ch 5 a ch 6 0 Rule NULL for i 0 iNext Rule Rule R ch 5 R Rule for i R Query if i 1 i 1 break R R Next if R break if R cout 没有这种动物 endl cout press any key to exit endl getchar return True 八

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论