人工智能大作业-动物识别专家系统研究
动物识别专家系统的建立

…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
实用第一 智慧密集
… . . … … … … … .
家豫 绩
l
童 小 明
摘 要 :专 家 系统是 具 有人 工智 能和推 理功 能 的知识 系统 。 以一 个动 物识 别专 家 系统的 建 立为例 ,
1 1 3 4
()吃 肉的哺 乳类 称为食 肉动 物 ( 肉 &哺乳 类 _ 肉类) 5 吃 >食 。 ( )反 刍食 物 的 哺 乳 类 是 偶 蹄 类 f 刍 食 物 & 哺 乳 类 一 6 反 >
“ 有蹄 类“黄 褐 色” , “ , 1 1 1 1 1 0 2 2 2 4 2 6 5 6 7 8 9 2 1 2 3 2 5 2
父节点 &父节点 子 节点 ( )有 毛 发 的动 物 是 哺 乳 类 ( 毛发 & 动物 一 1 有 >哺 乳 类) 。 ( )有 奶 的动 物 是 哺 乳 类 ( 奶 & 动物 一 2 有 >哺 乳 类) 。
长 脖
鸵 鸟 潜 水 企 鹅 f 毛 发 ¨动 物 ¨哺 乳 类 ¨ 有 奶 ¨ 有 羽 毛 鸟 有 . 类n会 飞-生 蛋 n吃 肉 “反刍 食 物 ”偶 蹄 类 ”有 蹄 * ” , “ , - , * , 一 , ・ 一 ,
( )吃 肉 的 哺 乳类 称 为 食 肉动 物 ; ( )反 刍食 物 的 哺 乳 类 是 5 6 偶蹄 类 ; ( )有 蹄 的 哺乳 类 是 有 蹄 类 ; ( ) 黄褐 色有 暗斑 点 7 8 的 食 肉类 是 金 钱 豹 ; ( )黄 褐 色有 黑 色 条 纹 的食 肉类 是 老 虎 ; 9 (0 1 )尖 牙 利 爪 且 眼 睛 向前 的 是 食 肉动 物 ; ( 1 脖 有 黄 褐 色 1)
专家系统实例

专家系统实例
专家系统是一种基于知识推理的智能信息系统,用于解决特定领域的问题。
它们利用专家知识和推理规则,通过询问用户的问题来识别问题的本质,然后提供相应的解决方案。
以下是一些专家系统实例: 1. 动物识别专家系统:该实例是一个基于人工智能技术的专家系统,用于识别动物物种。
它利用了计算机视觉和自然语言处理技术,通过询问用户有关动物的特征和属性来识别动物。
2. 医学诊断专家系统:该实例是一个用于医学诊断的专家系统,它利用医学知识和推理规则,通过对用户提供的症状和疾病特征进行分析,从而作出准确的医学诊断。
3. 工业控制专家系统:该实例是一个用于工业控制的专家系统,它利用控制理论和推理技术,通过对用户提供的控制命令进行分析和优化,以实现更高效、更安全的工业控制。
4. 农业施肥专家系统:该实例是一个用于农业施肥的专家系统,它利用植物营养知识和推理规则,通过对用户提供的肥料信息和植物需求进行分析,从而提供最佳的施肥方案。
这些专家系统实例展示了人工智能技术在各个领域的应用,可以帮助用户解决各种复杂问题。
人工智能与专家系统实验报告

暨南大学本科实验报告专用纸课程名称人工智能与专家系统成绩评定0实验项目名称动物识别系统设计指导教师0实验项目编号实验项目类型综合型0实验地点南校区学生姓名学号0学院信息科学技术学院系计算机科学系专业0实验时间2017年12 月日-- 年月日温度℃湿度(一)实验目的通过建立动物识别产生式系统,理解并体会知识库与控制系统相互独立的智能产生式系统与一般程序的区别。
(二)实验要求1.系统的设计和完成可以使用各种编程语言和实用工具,不采用人工智能语言和工具,这样能够使你更加了解专家系统。
2.推荐使用语言:C、java、php、javascript、delphi。
也可以使用其他语言。
3如果使用数据库做后台,要求使用最简单的Access。
4.系统可以使用图形界面,简单的也可以使用字符界面,不要求。
(三)设计并完成知识库本课程设计的主旨是设计并实现具有15条规则能自动识别7种动物的产生式系统。
知识库与控制系统相互独立,系统完成后除了能识别已有的7种动物外,按产生式知识表示方法向知识库中添加、修改新的知识后,系统能在不修改控制系统程序的情况下仍然能正确识别。
1.综合数据库中数据结构说明;产生式通过满足前件,得到后件的结论或者执行后件的相应动作,即后件由前件来触发。
同时,一个产生式生成的结论可以作为另一个产生式的前提或语言变量使用,进一步可构成产生式系统。
因此在通过有关特征识别动物的特征中规定:识别动物的前件(即动物的特征):0:有毛发 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.信天翁于是在综合数据库中,将设定int型数组facts[30],数组的编号对应着以上事实的编号,数组的值为1时,意味着对应编号的事实为真,否则为假。
(精选)人工智能作业——动物识别系统

动物识别专家系统-------胡沧粟—058动物识别系统由多种规那么来判别,第一原那么是依照是哺乳动物仍是鸟类来区别大类。
然后依照在哺乳动物类里成立规那么:食肉动物,非食肉,黄褐色,有斑点,长脖子,黑白两色来区分老虎,金钱豹,长颈鹿和斑马。
鸟类里面建议规那么:会飞,可不能飞,长腿,黑白两色来区分信天翁,企鹅和鸵鸟。
将书本上的规那么适当进行了简化,并利用界面的人性化来诱导人们更好的利用软件。
程序由c#语言编写。
本程序系统在考虑到整体结构相同的结构下,将规那么进行了优化。
先将哺乳动物与非哺乳动物进行了区分,从而在选取完第一条规那么后能够挑选掉很多不用的规那么。
在哺乳动物里,规那么如下:1.老虎=食肉+黄褐色2.金钱豹=食肉+有斑点3.长颈鹿=非食肉+长脖子4.斑马=非食肉+黑白两色鸟类动物里面,规那么如下:1.信天翁=会飞2.企鹅=可不能飞+黑白两色3.鸵鸟=可不能飞+长腿程序实际操作图:1.程序界面通过选取哺乳动物和鸟类能够挑选掉很多不需要的信息。
2.当按以上的规那么描述时能够通过下面的显示栏显示判定的动物。
3.当错误输入或选取规那么过量时那么会显示错误提示。
部份程序代码:using System;using ;using ;using ;using ;using ;using人工智能作业;{public partial class form1 : Form{public form1(){InitializeComponent();= true;= false;= str1;= true;}private void button1_Click(object sender, EventArgs e){= false;if ( == true) && == true) && == false) && == false) && == false) && == false))= str1 + "老虎";if ( == true) && == true) && == false) && == false) && == false) && == false)){= str1 + "金钱豹";}if ( == true) && == true) && == false) && == false) && == false) && == false)){= str1 + "长颈鹿";}if ( == true) && == true) && == false) && == false) && == false) && == false))= str1 + "斑马";if ( == true) && == false) && == false) && == false) ){= str1 + "信天翁";}if ( == true) && == true) && == false) && == false)){= str1 + "鸵鸟";}if ( == true) && == true) && == false) && == false)){= str1 + "企鹅";}if ( == str1)){("动物类型描述错误,请从头输入!");= true;}}private void radioButton1_CheckedChanged(object sender, EventArgs e){if == true){= true;}}private void radioButton2_CheckedChanged(object sender, EventArgs e) {if == true){= true;= false;}}private void button2_Click(object sender, EventArgs e){= str1;= true;= false;= false;= false;= false;= false;= false;= false;= false;= false;= false;}}}。
基于深度学习的动物识别技术研究

基于深度学习的动物识别技术研究现今,人工智能技术正在不断发展,深度学习技术尤为受到瞩目。
作为机器学习的一个分支,深度学习在图像、语音识别等领域有着广泛的应用。
其中,动物识别技术也是深度学习技术的一个研究热点。
本文将从数据集、模型构建、效果评估三个方面,分析基于深度学习的动物识别技术的研究现状和发展方向。
一、数据集动物识别技术的核心是建立一个动物分类器。
为此,需要收集大量的动物图片来构建一个数据集。
对于一个成熟的动物识别技术而言,其所使用的数据集应该满足以下几个要求:1. 大数据规模:数据集中应该包含大量的动物图片,才能提高训练的准确性和可靠性。
一般来说,数据集中至少应该包含数万张动物图片。
2. 样本均衡:数据集中应该包含各个种类动物的图片,且每个种类的图片数量应该大致相同。
这样才能保证模型在对不同种类的动物进行识别时具有较好的准确性。
3. 准确标注:数据集中的每张图片都应该被准确地标注,以保证模型在进行训练时能够准确地学习每个种类动物的特征。
当前,比较流行的数据集有CIFAR-100、ImageNet和Animals with Attributes 等。
其中,ImageNet是目前最为著名的一个图像识别数据集,其包含超过1百万张图片,分为1000个类别,其中就包括各种动物。
Animals with Attributes则包含了50个类别的动物图片,并为每个类别的动物挑选了50张不同的图片进行标注。
二、模型构建在动物识别技术的模型构建中,常见的几种神经网络结构有AlexNet、VGG、ResNet和Inception等。
下面就简单介绍一下这几种网络模型。
1. AlexNet:AlexNet是由Hinton等人在2012年提出的一个深度神经网络模型,其共包含8层神经网络结构。
AlexNet采用了卷积、池化、ReLU激活函数等技术,其在ImageNet数据集上实现了当时最好的识别准确率。
2. VGG:VGG是由Simonyan和Zisserman在2014年提出的一个卷积神经网络结构。
(毕业论文)动物识别专家系统

摘要专家系统是目前人工智能中最活跃,最有成效的一个研究领域,它是一种基于知识的系统,它从人类专家那里获得知识,并用来解决只有专家才能解决的困难问题。
该动物识别专家系统是在VC编程环境下编写的基于Windows操作平台上的图形用户界面程序,依据15条规则,构建知识库,能判别七种动物。
该系统具有较好的扩充性,可移植性、透明性,算法简单高效,使用方便,用户界面友好。
在层次树结构的数据结构基础上,采用正向推理的技术构建推理机,解释机构的实现采用了唱片技术和追踪技术。
构建该动物识别专家系统主要目的是为了提高人工智能的理论水平,更深入地了解专家系统的原理、历史、构成和各组成部件的基本原理,并提高VC的编程能力。
关键字:专家系统,知识库,规则,推理机,解释机AbstractExpert system is one of the most active and effective research realms. It can solve difficult problems, which can only be solved by experts. It is a system based on knowledge and can achieve knowledge from experts.This expert system is the visual interface program, which based on Windows operation system in the situation of Visual C++ programming. It can distinguish seven kinds of animals by constructing knowledge base, which is based on 15 rules. This system is moveable, transparent, and expansible. It can be easily used. Its mathematic is simple and efficient the user interface is friendly. The construction of reasoning machine adopts the positive reasoning technology and the realization of explanation adopts the record and pursuit technologyThis animal distinguish expert system aims to raise the theory standard of artificial intelligence. The writer intended to know about the principle, the history and the composition theory of expert system, and upgrade the programming ability.Key W ords: expert system, repository, rule, reasoning machine, explanative machine目录摘要 (1)Abstract (2)目录 (3)前言 (4)第一章需求分析 (6)1.1 需求状况 (6)1.2专家系统的设计要求 (6)1.3组成部分 (10)1.4推理机 (12)第2章概要设计 (14)2.1总体流程的设计 (14)2.1.1创建知识库 (14)2.1.2 设计推理机的工作流程 (17)2.2用户界面设计 (19)2.2.1 用户界面设计的原则 (19)2.2.2设计的用户界面 (20)第3章详细设计 (22)3.1学习VC有感 (22)3.1.1认识VC (22)3.1.2使用MSDN (23)3.2 详细编码 (24)第4章测试与完善 (37)4.1 测试系统 (37)4.2 完善功能 (38)4.2.1改善explain功能 (38)4.2.2 添加backspace功能........................... 错误!未定义书签。
动物识别系统实验报告

condition[numbers] = Int32.Parse(this.CheckBoxList1.Items[j].Value.ToString());
numbers++;
}
}
//添加用户自己输入的项
在推理过程中,当规则表中某条规则的前提可以和综合数据库中的已知事实相匹配时,该规则被激活。由它推出的结论将被作为新的事实放入数据库,称为后面推理的已知事实。所以数据库系统结构如下:
4. 系统设计
本系统分为三个功能模块,分别是动物识别、添加规则、删除规则。系统实现如下,其中distinguish.aspx实现动物识别;Addrule.aspx实现添加规则;Deleterule.aspx实现删除规则;主页实现为main.aspx和top.aspx;连接数据库调用DBFunction.cs。
using (DBFunction DBfun = new DBFunction(DBTransactionType.WithTran)) { //如果用户填写了这个空并且这个条件不在数据库中,就将它添加到数据库中。
if (this.TextBox1.Text.ToString() != "" && !check(this.TextBox1.Text.ToString(),DBfun)) {
bool check = true;
for (int j = 1; j < 6; j++){
if (dt.Rows[i][j].ToString() == "")
{ }
else{
动物识别专家系统有MFC

动物识别专家系统摘要专家系统的出现是人工智能在实际应用中最引人注目的成果,也是人工智能最活跃或最富有成效的研究领域。
本文介绍了专家系统的原理、结构和发展方向,在此我们实现了一种动物识别的专家系统,它用产生式规则来表示知识,共15条规则、可以识别七种动物。
关键词:专家系统;人工智能;先进技术;应用领域1专家系统介绍当人类迈步跨进21世纪的时候,信息技术的发展也迎来了新的机遇和挑战。
在最近的几十年中,人工智能技术逐渐得到了广泛地应用,其中专家系统更是获得了很大程度的普及。
专家系统系由知识库、推论引擎及接口为基础而组成的计算机化系统,其目的在于对某一特定领域的问题作判断、解释及认知。
但由于此特定领域可大可小,且对认知的定义亦有不同的解释,故可有小如某些汽车专家系统只能依照外型等特征辨认十余种车,亦有大如某些医学专家系统可依据十二万个不同的医学表征分辨八千余种疾病。
尽管专家系统的定义未尽明确,但基本上当此系统所能处理的问题,其复杂性、对专业知识的需求、以及其执行的信度及效度足可与专家相匹敌时,我们便可称之为专家系统。
而由于专家系统能够提供智能型的决策与辅助解决问题、并对求解的过程做某种程度的解释,因而也可以称为“智能型知识库系统”(Intelligent Knowledge-Based System,IKBS)。
专家系统简化结构如图1所示。
图1 专家系统简化结构我国专家系统的研究起步较晚,大约在80年代初期。
最初开发出来的大都是演示系统,达不到实际应用水平。
到目前为止,在理论研究和实际应用开发上都已有了丰硕的成果,并己应用到工业、农业、军事以及国民经济的各个部门乃至社会生活的许多方面。
1.1 知识库知识库系统的主要工作是搜集人类的知识,将之有系统地表达或模块化,使计算机可以进行推论、解决问题。
知识库中包含两种型态:一是知识本身,即对物质及概念作实体的分析,并确认彼此之间的关系;二是人类专家所特有的经验法则、判断力与直觉。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动物识别专家系统研究摘要:动物识别专家系统是将人的思维过程转化为计算机语言的逻辑过程,其关键在于知识和信息的表示,智能推理或求解的基础——知识库的创建和管理,以及基于某种知识和信息表示的智能推理或求解过程。
使动物识别具有一定的智能性、良好的交互性和可视化效果。
本论文也主要以识别七种动物的设计思路和程序为例所写的。
关键词:人工智能;专家系统;动物识别一、专家系统基本知识1.1动物识别专家系统介绍动物识别专家系统是人工智能中一个比较基础的规则演绎系统,是人工智能领域里的一个大模块的专家系统的一个特定例子。
是集知识表与推理为一体的,以规则为基础对用户提供的事实进行向前、逆向或双向的推理得出结论的一种产生式系统。
如果通过良好的分析、精确地设计和细致的规划会创设出高度灵活和快速有效的识别系统,再加上良好的界面供用户添加新的事实和规则,反馈详细的错误或信息的话,那就是一个相当完整的识别系统了。
1.2专家系统实际应用目前专家系统已经成功地渗透到生活的各个领域,并且还产生了巨大的社会效益和经济效益。
例如,像车辆传感、药物、纺织服装等重工业和轻工业领域中都会应用到,特别是在计算机领域里,现在已经是一门非常重要的学科类了。
1.3专家系统的开发专家系统设计与实现的一般过程图1【3】二、设计基本思路2.1知识库2.2.1知识库作用用产生式系统监别动物,需要一种演绎机制,利用己知事实的集合做出新的结论,一种方法是替动物园中的每个动物作一个产生式,使用者首先收集所有可利用的事实,然后在产生式的表中进行扫描,寻找一个状态部分能与之匹配的产生式。
一般要经过多少步并生成和利用一些中间事实才能从基本事实推出结论,这样做所包含的产生式可以比较小,容易理解,容易使用和容易产生。
动物识别专家系统中的知识库中的知识通常是用规则表示的。
2.1.2 知识库建立知识库所要遵循的规则【1】规则1:如果:动物有毛发则:该动物是哺乳动物规则2:如果:动物能产奶则:该单位是哺乳动物规则3:如果:该动物有羽毛则:该动物是鸟规则4:如果:动物会飞,且会下蛋则:该动物是鸟规则5:如果:动物吃肉则:该动物是肉食动物规则6:如果:动物有犬齿,且有爪,且眼盯前方则:该动物是食肉动物规则7:如果:动物是哺乳动物,且有蹄则:该动物是有蹄动物规则8:如果:动物是哺乳动物,且是反刍动物则:该动物是有蹄动物规则9:如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点则:该动物是豹规则10:如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹则:该动物是虎规则11:如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类则:该动物是长颈鹿规则12:如果:动物有黑条纹,且是有蹄类动物则:该动物是斑马规则13:如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞则:该动物是鸵鸟规则14:如果:动物是鸟,且不会飞,且会游泳,且是黑色的则:该动物是企鹅规则15:如果:动物是鸟,且善飞则:该动物是信天翁动物分类专家系统由15条规则组成可以识别七种动物.2.1.3 知识库获取知识获取一般是指从某个活某些致使原中获取专家系统问题求解所需要的专门知识,并以某种形式在计算机中存储、传输与转移。
专家系统的知识获取一般是由知识工程师与专家系统知识的获取机构共同完成的。
知识获取的常用方法有以下几种【3】:1.手工知识获取;2.半自动获取;3.自动知识获取;4.人工神经网络知识获取;选用哪种知识获取方法需要根据当前的系统,以及用户的需求来决定。
但在有些大型系统上还可能会用到不是仅仅一种方法的。
2.2 数据库2.2.1数据库作用数据库即为事实库【2】,在计算机中流出一些存储区间,以存放反应系统当前状态的事实,存放用户回答的事实、已知的事实和由推理而得的事实,即由已知事实推导出的假设成立时,也作为事实。
其综合数据库的内容是不断变化的。
2.2.2数据库建立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}, {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};三、推理机构3.1推理机介绍3.1.1 推理机作用原理推理机是一组函数【4】,本例既有正向推理机又有反向推理机,都是用精确推理。
推理机是实施问题求解的核心执行机构,它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。
3.1.2推理网络下图为识别本文中所举的识别七种动物时所规则形成的推理网络:图23.2 正向推理3.2.1 正向推理基本思想用户首先提供一批事实,存放到数据库中,然后推理机进行工作。
方法是:1.推理机用这批事实与知识库中规则的前提进行匹配。
2.把匹配成功的规则的结论部分作为新的事实加到数据库中去(这时,数据库中的事实增加了)。
再用更新后的数据库中的所有事实,重复上述①②二步,如此反复进行,直到得以结论(答案)或不再有新的事实加到数据库为止。
例如,用户输入一批事实:动物有暗斑点、长脖子、长腿、产奶、有蹄子(这批事实存放在数据库中),要求系统判断这是一个什么动物?推理机利用这批事实来匹配规则。
3.2.2 正向推理示意图图33.2.3 正向推理机所要具有功能要设计一个正向推理机,就是设计一组程序,使其至少具有以下的功能【3】:1.能用数据库中的事实去匹配规则的前提,若匹配不成功,能自动地进行吓一跳规则的匹配。
这里如何匹配最为合适,是设计专家系统者根据专业特点和知识表示等情况,需要很好考虑的问题,也就是在匹配时到底用什么策略等问题都需要考虑周全;2.若某条规则匹配成功,系统能将此规则的结论部分自动加入数据库;3.能判断何时应结束推理;4.能将匹配成功的规则记录下来;3.3反向推理3.3.1反向推理基本思想由用户或系统首先提出一批假设,然后系统逐一验证这些假设的真假性,方法:1.看假设是含在数据库中,若在,则假设成立,推理结束或进行下一个假设的验证,否则进行下一步。
2.判断这些假设是否是证据节点,若是,系统提问用户,否则进行下一步。
3.找出结论部分包含此假设的那些规则,把这些规则的所有前提作为新的假设。
4.重复①、②、③步。
3.3.2 反向推理示意图图43.3.3反向推理机所要具有功能1. 能根据用户要求或情况提出假设;2. 能验证此假设是否是在数据库中;3. 能把知识库中将结论部分包含此假设的规则都找出来;4. 能将找出来地规则的前提部分取出,并作为新的假设逐条验证;5. 能判断假设是否是证据接点,若是,能向用户提出相应的问题,并记录结果;6. 能将匹配成功的规则记录下来;7. 能判断何时应结束推理;四、实例系统实现4.1系统介绍此系统是实现了《人工智能教程(的二版)》专家系统实例里的动物识别系统。
此系统是识别——老虎、猎豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁等七种动物。
是严格遵循了知识库中的规则,并运用C语言在Visual C++ 6.0环境下实验编译同过的。
因为各种原因没能设计实现出比较精美的界面,但还是体现出了很多专家系统所该具备的东西和功能。
4.2基本思路该系统的知识表示采用产生式表示法。
产生式系统由规则库、综合数据库、控制系统三个部分构成。
其中规则库、综合数据库分别对应本系统中的rule类, str 指针链表。
Rule链表存放用户输入的事实。
用到一个fact事实类和Fact事实链表,并用GetName(),GetNumber (),GetAct(),GetSucc()等函数来获取事实信息。
推理控制策略采用精确匹配算法的正向推理。
4.3程序主要代码/* <Function 释放规则链表节点之前提链空间/><Note 规则链本身空间为释放/>*/rule::~rule(){list *L;while(Pre){L=Pre->Next;delete Pre;Pre=L;}delete Name;}/* <Function 主要实现推理机/><Return 规则使用成功与否/>*/int rule::Query(){char c; //保存用户输入按键符号list *L; //临时前提链fact *F; //临时事实链L=Pre; //L指向前提链F=Fact;if(L==NULL) printf("\nError!"); //如果推理时,本规则前提链为空,出错,后面while 循环也退出!while(L!=NULL) //前提链未处理完{F=Fact; //F指向事实链表for(;;) //以当前前提,在事实链表中查询(根据ID){ //因为前提为“-事实ID”,表示该事实不成立,所以取绝对值if(abs(L->GetNumber())==F->GetNumber()) break;F=F->Next; //查询下一事实} //退出循环时,F指向查询到的事实节点if(L->GetNumber()>0) //如果前提为真{if((F->GetSucc())==True){ //而且事实链表中的这个事实断言也为真L=L->Next; //则本规则的当前前提在推理中满足continue; //继续下一前提的判断}if((F->GetSucc())==False) //该前提在事实链表中断言不成立return False; //该规则推理使用结束,直接返回}else{if((F->GetSucc())==True) //Sorry,该前提在事实链表中断言却为真return False; //该规则推理使用结束,直接返回if((F->GetSucc())==False){L=L->Next;continue;}} //end if-elseprintf("%s(Y/N)",F->GetName()); //向用户提问c=getchar(); //接受用户输入flushall();if((c=='Y')||(c=='y')) //{if(L->GetNumber()>0) F->PutAct(1,True);if(L->GetNumber()<0){ //且若当前规则中的当前前提要求为“假”F->PutAct(1,True); //置激活和用户的断言return False; //本规则推理结束,不成功;后面的前提不判断了!}}else{if(L->GetNumber()<0) F->PutAct(-1,False);if(L->GetNumber()>0){F->PutAct(-1,False);return False;}}L=L->Next; //用户断言和当前规则的当前前提符合,则取当前规则的下一前提进行判断!} //end while————————————得出推理结论————————————F=Fact;for(;;){if(Conc==F->GetNumber()) break; //在事实表中查找与当前规则得后件相同得事实F=F->Next;}if(Conc<24) //如果规则后件(结论)不是最终最终性得(即不是7种要识别得动物){F->PutAct(1,True); //那就是中间事实性结论,设置其激活和中间推理确证了的断言return False; //然后返回,本规则并不能结束整个推理}printf("\n该动物是: %s\n",F->GetName());return True;}4.4系统执行结果五、结论动物识别专家系统实现起来也许相对简单一些,但基本上也包括了专家系统的各个组成部分。