实验一产生式系统

合集下载

报告_基于产生式系统的动物识别系统

报告_基于产生式系统的动物识别系统

报告_基于产⽣式系统的动物识别系统实验基于产⽣式系统的动物识别系统知识表⽰与推理专题魏江200620108203 计算机系统结构专业(1班)正向推理是产⽣式系统的⼀种推理⽅法,它是从⼀组表⽰事实的谓词或命题出发,使⽤⼀组产⽣式规则,⽤以证明该谓词公式或命题是否成⽴.本实验⽤两种⽅法实现了⼀个简单的动物识别系统.⼀、实验⽬的1.熟悉和掌握产⽣式系统的运⾏机制,2.掌握基于产⽣式系统的正向推理的基本⽅法。

3.简要⽐较两种实现⽅式的异同⼆、实验内容1. 能根据输⼊的动物特征判断是那种动物或给出相应的回答. (第⼀种⽅法)2. 如果根据初始输⼊的动物特征不能判断,则可以动态增加新事实(即动物特征)来判断属于那种动物. (第⼀种⽅法)3. 可根据提⽰选择所要识别的动物是否具有该特征.(第⼆种⽅法)三、算法设计编程语⾔与编程环境: C++,VC6.0下⾯⽤第⼀种⽅法简要说明算法的设计过程.⾸先建⽴了⼀个animal_identifier的类.该类包含的属性有:f和r. f指针指向事实集,r指向规则集.包括的关键成员函数有:Creat_Rules(),Creat_Fact(), reason().1 建⽴静态规则库.即建⽴产⽣式规则.本算法采⽤了产⽣中间事实的⽅法,这样做的优点是涉及到的规则少,容易理解,便于建⽴和使⽤规则.为了便于设计,我们把要识别的动物限于7种,这样所需要的产⽣式规则就⽐较少.本算法总共有16种规则,部分规则如下:R1:如果某动物有⽑发则该动物是哺乳动物R2:如果某动物有奶则该动物是哺乳动物R3:如果某动物有⽻⽑则该动物是鸟R4:如果某动物会飞,且下蛋则该动物是鸟R5:如果某动物吃⾁则该动物是⾷⾁动物R6:如果某动物有锋利的⽛齿,且有⽖,且眼睛盯着前⽅则该动物是⾷⾁动物R7:如果某动物是哺乳动物,且有蹄则该动物是有蹄类哺乳动物……………..R16: 如果反刍则哺乳动物上述规则库由类animal_identifierd的⽅法Creat_rules()静态实现.2 建⽴事实库建⽴事实库是由⽅法Creat_Fact()实现的.该⽅法要求⽤户动态输⼊事实,即要求⽤户先输⼊特征个数,然后输⼊动物的特征,如果未识别出来,⽤户可以增加输⼊,或者退出.3 正向推理过程.正向推理是从已知事实出发,通过规则库求得结论,或称数据驱动⽅式。

AI实验报告

AI实验报告

目录人工智能及其应用........................................................................................... 错误!未定义书签。

实验报告................................................................................................... 错误!未定义书签。

实验一产生式系统实验群. (2)一、实验目的: (2)二、实验原理: (2)三、实验条件: (3)四、实验内容: (3)五、实验步骤: (3)实验二搜索策略实验群搜索策略: (6)一、实验目的: (6)二、实验原理: (6)三、实验条件: (6)四、实验内容: (6)五、实验步骤: (7)六:实验过程: (7)七、A*算法流程图: (18)八、实验结论: (19)实验三神经网络实验群 (20)一、实验目的: (20)二、实验原理: (20)三、实验条件: (20)四、实验内容: (20)五、实验步骤: (21)六、实验结论: (21)实验四自动规划实验群 (25)一、实验目的: (25)二、实验原理: (25)三、实验条件: (25)四、实验内容: (26)五、实验步骤: (26)实验一产生式系统实验群产生式系统: 是由一组规则组成的、能够协同作用的推理系统。

其模型是设计各种智能专家系统的基础 .产生式系统主要由规则库、综合数据库和推理机三大部分组成。

本实验环境主要提供一个能够实现模拟产生式专家系统的验证、设计和开发的可视化操作平台。

学生既能用本系统提供的范例进行演示或验证性实验,也能够用它来设计并调试自己的实验模型。

一、实验目的:熟悉和掌握产生式系统的运行机制,掌握基于规则推理的基本方法。

二、实验原理:生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。

动物识别系统实验报告

动物识别系统实验报告
{
stringFindMaxNumber ="select max(动物序号) from动物库";
SqlCommandcmd2 =newSqlCommand( FindMaxNumber ,con);
1.1功能需求
1.1.1动物识别正向推理
正向推理是从已知事实出发,通过规则库求的结论,也称为自底向上,或称为数据驱动方式。
正向推理过程的具体步骤是:
(1)读入事实集到工作存储器。
(2)取出某条规则,将规则的全部前件与工作存储器中的所有事实进行比较。如果匹配成功,则所得结果显示到屏幕上,转向(3);否则,直接转向(3)。
动物识别系统设计主体框架:本系统只用了一个页面实现,界面使用上下结构的框架设计,当用户进入系统的时候,打开Default.aspx,该页面分为上下两个部分,上面的部分是用于根据问题输入动物特征,下面的部分是新规则的加入功能部分,也是用户进行添加新规则的页面,这好似一个导航页面,用户可以更具自己的选择进行的操作,由上至下进入不同的功能部分。各个功能模块的设计:
staticint[] a =newint[7];
SqlConnectioncon =newSqlConnection("Server = PC-11; user id = sa;password = ;Database = animal;");
protectedvoidPage_Load(objectsender,EventArgse)
YesOption.Checked =false;
}
protectedvoidNoOption_CheckedChanged(objectsender,EventArgse)
{
a[Convert.ToInt32(Questionselected.SelectedValue)] = 0;

苏州大学《人工智能》实验指导书

苏州大学《人工智能》实验指导书

《人工智能》实验指导书专业年级姓名学号指导老师实验室使用日期苏州大学计算机科学与技术学院统一印制二零零二年八月实验一启发式搜索一、实验目的:熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A 算法求解九宫问题,理解求解流程和搜索顺序。

二、实验方法:1.先熟悉启发式搜索算法;2.用C、C++或JA V A 语言编程实现实验内容。

三、实验背景知识:1.估价函数在对问题的状态空间进行搜索时,为提高搜索效率需要和被解问题的解有关的大量控制性知识作为搜索的辅助性策略。

这些控制信息反映在估价函数中。

估价函数的任务就是估计待搜索节点的重要程度,给这些节点排定次序。

估价函数可以是任意一种函数,如有的定义它是节点x处于最佳路径的概率上,或是x节点和目标节点之间的距离等等。

在此,我们把估价函数f(n)定义为从初始节点经过n节点到达目标节点的最小代价路径的代价估计值,它的一般形式是:f(n) = g(n) + h(n)其中g(n)是从初始节点到节点n的实际代价,g(n)可以根据生成的搜索树实际计算出来;h(n)是从n到目标节点的最佳路径的代价估计,h(n)主要体现了搜索的启发信息。

2. 启发式搜索过程的特性(1)可采纳性当一个搜索算法在最短路径存在的时候能保证能找到它,我们就称该算法是可采纳的。

所有A*算法都是可采纳的。

(2)单调性一个启发函数h是单调的,如果a)对所有的状态n i和n j,其中n j是n i的子孙,h(n i )- h(n j )≤cost(n i,n j ),其中cost(n i,n j )是从n i到n j 实际代价。

b)目标状态的启发函数值为0,即h(Goal)=0.具有单调性的启发式搜索算法在对状态进行扩展时能保证所有被扩展的状态的f值是单调递增(不减)。

(3)信息性比较两个启发策略h1和h2,如果对搜索空间中的任何一个状态n 都有h1(n) ≤h2(n),就说h2比h1具有更多的信息性。

人工智能课程教学大纲

人工智能课程教学大纲

《人工智能》课程教学大纲课程代码:H0404X课程名称:人工智能适用专业:计算机科学与技术专业及有关专业课程性质:本科生专业基础课(学位课)主讲教师:中南大学信息科学与工程学院智能系统与智能软件研究所蔡自兴教授总学时:40学时(课堂讲授36学时,实验教学4学时)课程学分:2学分预修课程:离散数学,数据结构一. 教学目的和要求:通过本课程学习,使学生对人工智能的发展概况、基本原理和应用领域有初步了解,对主要技术及应用有一定掌握,启发学生对人工智能的兴趣,培养知识创新和技术创新能力。

人工智能涉及自主智能系统的设计和分析,与软件系统、物理机器、传感器和驱动器有关,常以机器人或自主飞行器作为例子加以介绍。

一个智能系统必须感知它的环境,与其它Agent和人类交互作用,并作用于环境,以完成指定的任务。

人工智能的研究论题包括计算机视觉、规划与行动、多Agent系统、语音识别、自动语言理解、专家系统和机器学习等。

这些研究论题的基础是通用和专用的知识表示和推理机制、问题求解和搜索算法,以及计算智能技术等。

此外,人工智能还提供一套工具以解决那些用其它方法难以解决甚至无法解决的问题。

这些工具包括启发式搜索和规划算法,知识表示和推理形式,机器学习技术,语音和语言理解方法,计算机视觉和机器人学等。

通过学习,学生能够知道什么时候需要某种合适的人工智能方法用于给定的问题,并能够选择适当的实现方法。

二. 课程内容简介人工智能的主要讲授内容如下:1.叙述人工智能和智能系统的概况,列举出人工智能的研究与应用领域。

2.研究传统人工智能的知识表示方法和搜索推理技术,包括状态空间法、问题归约法谓词逻辑法、语义网络法、盲目搜索、启发式搜索、规则演绎算法和产生式系统等。

3.讨论高级知识推理,涉及非单调推理、时序推理、和各种不确定推理方法。

4.探讨人工智能的新研究领域,初步阐述计算智能的基本知识,包含神经计算、模糊计算、进化计算和人工生命诸内容。

《实验心理学》部分术语解释

《实验心理学》部分术语解释

实验心理学部分术语1.ABAB设计(ABAB design)也称为轮回设计(reversal design),是一种单被试实验设计。

其实验程序包括四个阶段:基线测试、实验处理条件下测试、返回基线测试段、实验处理条件下的再测等阶段。

2.听觉掩蔽(Auditory masking)就是指由于某一声音刺激的存在而使另一声音刺激的强度阈限提高的现象,这是一种常见的听觉现象。

3.被试间实验设计(Between-subjects experimental design)也叫做独立测量设计(independent-measures design)、独立组设计(independent groups design)或组间设计(between-groups design),是将互相独立但又相等的被试组分派在不同实验处理下进行测量,然后对各组测量结果进行比较的一种实验设计。

4.天花板效应(Ceiling effect)分数聚集在测量量表的高分端,使分数提高的可能性很少甚至没有。

这是一种全距效应。

5.混淆变量(Confounding variable)混淆变量(confounding variable),是指那些不拟研究但却与自变量一起发生系统性改变的变量,它使得被试心理或行为变化的原因变得无法确定。

6.知会同意表(Consent form)是研究者提供的书面声明,上面包含所有知会同意的项目和被试签名行。

研究实施之前,要将知会同意表提供给可能被试,以便他们了解在决定是否愿意参加研究之前需要知道的全部信息。

7.控制组(Control group)在一项研究中不接受处理或只接受安慰剂处理的被试组。

8.抵消平衡(Counterbalancing)在被试内设计中,一种为了使顺序效应和与时间有关的影响降到最小而将被试分成若干小组以便各小组以不同的顺序接受一系列实验处理的实验程序,这样做的目的是使在每一种可能的处理顺序上都有相等的被试按照各自顺序参加实验。

化为子句集的九步法

化为子句集的九步法

化为子句集的九步法一、实验目的:熟悉谓词公式化为子句集的九个步骤,理解消解(谓词公式化为子句集)规则,能把任意谓词公式转换成子句集,掌握基于规则推理的基本方法。

二、实验原理产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。

在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。

任一谓词公式通过九步法可以化成一个子句集。

九步法消解包括消去蕴含和等价符号、把否定符号移到紧靠谓词的位置上、变量标准化、消去存在量词、化为前束型、化为Skolem标准形、略去全称量词、消去合取词,把母式用子句集表示、子句换变量标准化,依次变换即可得到子句集。

三、实验内容代码:void main(){cout<<"------------------求子句集九步法演示-----------------------"<<endl;system("color 0A");//orign = "Q(x,y)%~(P(y)";//orign = "(@x)(P(y)>P)";//orign = "~(#x)y(x)";//orign = "~((@x)x!b(x))";//orign = "~(x!y)";//orign = "~(~a(b))";string orign,temp;char command,command0,command1,command2,command3,command4,command5, command6,command7,command8,command9,command10;//================================================================= ============cout<<"请输入(Y/y)初始化谓词演算公式"<<endl;cin>>command;if(command == 'y' || command == 'Y')initString(orign);elseexit(0);//=============================================================================cout<<"请输入(Y/y)消除空格"<<endl;cin>>command0;if(command0 == 'y' || command0 == 'Y'){//del_blank(orign);//undonecout<<"消除空格后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)消去蕴涵项"<<endl;cin>>command1;if(command1 == 'y' || command1 == 'Y'){orign =del_inlclue(orign);cout<<"消去蕴涵项后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)减少否定符号的辖域"<<endl;cin>>command2;if(command2 == 'y' || command2 == 'Y'){do{temp = orign;orign = dec_neg_rand(orign);}while(temp != orign);cout<<"减少否定符号的辖域后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)对变量进行标准化"<<endl;cin>>command3;if(command3 == 'y' || command3 == 'Y'){orign = standard_var(orign);cout<<"对变量进行标准化后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)消去存在量词"<<endl;cin>>command4;if(command4 == 'y' || command4 == 'Y'){orign = del_exists(orign);cout<<"消去存在量词后是(w = g(x)是一个Skolem函数)"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)化为前束形"<<endl;cin>>command5;if(command5 == 'y' || command5== 'Y'){orign = convert_to_front(orign);cout<<"化为前束形后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)把母式化为合取方式"<<endl;cin>>command6;if(command6 == 'y' || command6 == 'Y'){orign = convert_to_and(orign);cout<<"把母式化为合取方式后是"<<endl<<orign<<endl;}elseexit(0);//=============================================================================cout<<"请输入(Y/y)消去全称量词"<<endl;cin>>command7;if(command7 == 'y' || command7 == 'Y'){orign= del_all(orign);cout<<"消去全称量词后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)消去连接符号"<<endl;cin>>command8;if(command8 == 'y' || command8 == 'Y'){orign = del_and(orign);cout<<"消去连接符号后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)变量分离标准化"<<endl;cin>>command9;if(command9 == 'y' || command9 == 'Y'){orign = change_name(orign);cout<<"变量分离标准化后是(x1,x2,x3代替变量x)"<<endl<<orign<<endl;}elseexit(0);//================================================================= ===========cout<<"-------------------------完毕-----------------------------------"<<endl;cout<<"(请输入Y/y)结束"<<endl;do{}while('y' == getchar() || 'Y'==getchar());exit(0);}string change_name(string temp)//更换变量名称{char ctemp[100];strcpy(ctemp,temp.c_str());string output = "";int i = 0,j = 0,falg = 0;while(ctemp[i] != '\0' && i < temp.length()){falg++;while('\n' != ctemp[i] && i < temp.length()){if('x' == ctemp[i]){output = output + ctemp[i] ;output = output + numAfectChar(falg);}elseoutput = output + ctemp[i] ;i++;}output = output + ctemp[i] ;i ++;}return output;}bool isAlbum(char temp){if(temp <= 'Z' && temp >= 'A' || temp <= 'z' && temp >= 'a') return true;return false;}char numAfectChar(int temp)//数字显示为字符{char t;switch (temp){case 1:t = '1';break;case 2:t = '2';break;case 3:t = '3';break;case 4:t = '4';break;default:t = '89';break;}return t;}四、实验步骤:1对默认谓词公式进行转换。

人工智能应用技术课程标准

人工智能应用技术课程标准

人工智能应用技术课程标准人工智能应用技术》是一门综合性前沿学科,是信号与系统与计算机的交叉学科。

它是机电一体化技术专业培养方案中“职业能力与素质”模块中的一门专业核心课。

该课程旨在培养学生程序设计能力、软件开发能力、硬件开发能力、数字信号处理能力、机器算法能力以及神经网络算法能力。

先修课程包括《C语言程序设计》、《Java程序设计》、《Android编程》、《Linux操作系统》、《嵌入式技术与应用》。

后续课程包括《工业机器人应用技术》和《机电一体化技术》。

通过本课程的研究和训练,学生可以掌握人工智能技术的基本原理。

他们将了解启发式搜索策略、与或图搜索问题、谓词逻辑与归结原理、知识表示、不确定性推理方法、机器研究和知识发现等目前人工智能的主要研究领域的原理、方法和技术。

该课程旨在增强学生的逻辑思维与实验能力,为今后在各自领域开拓高水平的人工智能技术应用奠定基础。

在设计理念方面,该课程以职业教育模式为中心,突出教师的主导作用和学生的主体地位。

教师的教授应以学生为主体,以学生的研究为中心进行课程教学活动的设计。

注重学生的素质教育和能力培养,帮助学生“学其所用,用其所学”。

课程设计充分体现了职业性、实践性和开放性的要求,体现职业岗位的能力要求,使课程设计与职业岗位能力紧密对应。

让企业参与到专业建设及课程设置的各个环节中,在校企合作中创新人才培养模式。

在设计思路方面,该课程强调理解和记忆算法基本结构。

在整个课程所涉及的教学内容的研究过程中都按照“算法基本结构的理解和记忆-简单C++程序算法设计-上机调试程序技能训练-实际应用”这条主线来进行。

也就是说对人工智能的各种算法主要内容的研究,以理解加记忆为主,通过上机调试程序加深理解和记忆;要求学生熟记常用的典型算法。

该课程还注重熟练上机调试技能,灵活掌握编程技巧。

The course consists of XXX students the basic principles of programming。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一产生式系统——动物识别系统一、实习目的和意义1、掌握人工智能的知识表示技术,能用产生式表示法表示知识;2、掌握基于规则推理的基本方法;3、掌握产生式系统的运行机制。

二、实习内容参考教材规则库包含15条规则,开发一个专家系统可以识别老虎,金钱豹,斑马,长颈鹿,企鹅,鸵鸟等6种动物。

三、实习要求1、本次实验语言MATLAB;2、系统能通过正向推理得到正确的动物识别结果。

四、实习过程1.实验原理正向推理(事实驱动推理)1)从初始已知事实出发,在知识库KB中找出当前可适用的知识,构成可适用知识集KS;2)按某种冲突消解策略,从KS中选出一条知识进行推理,并将推出的新事实加入到数据库DB中,作为下一步推理的已知事实,再在KB中选取可适用知识构成KS;3)重复步骤二,直到求得问题的解,或KB中再无可适用的知识。

2.问题背景根据课本P33的15调动物识别的专家知识,建立规则库。

3.算法设计主要利用数组下标和元素的0,1值表示知识,规则,及相关标记。

4.Matlab实现a.算法函数名函数说明learn function learn(arr_category, arr_feature)主函数checkRule function[arr_category,arr_feature,arr_rule,ifMore,mark]=checkRule(arr_category,arr_feature,arr_rule,ifMore,mark )规则符合检测showCategory function showCategory( )类别选项打印函数showFeature function showFeature()特征选项打印函数showResult function showResult(mark)结果显示b.测试测试数据一1 0 0 0 1arr_category[5]arr_feature[20 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 00]测试数据二arr_category[5]0 0 0 0 0arr_feature[20]1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0五、实习总结1.实习总结本次实验主要复习了产生式规则,利用正向推理和15条规则,建立简单的动物识别专家系统,并具有一定的容错性。

2.附录:代码MATLAB代码:function learn(arr_category, arr_feature)%产生式规则-正向推理-主函数% 标记函数初始化,规则函数调用arr_rule=zeros(1,15);mark=-1;ifMore=0;disp(arr_category);disp(arr_feature);%showCategory();%arr_category=input('输入信息:');%showFeature();%arr_feature=input('输入信息');[arr_category,arr_feature,arr_rule,ifMore,mark]= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark);busy=1;while busy==1if mark>-1showResult(mark);break;endif ifMore==0disp('无法判断具体是哪种动物!');breakendifMore=0;[arr_category,arr_feature,arr_rule,ifMore,mark]= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark); endendfunction [arr_category,arr_feature,arr_rule,ifMore,mark]= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark ) %正向推理函数% 逐条检查规则是否满足,若满足,则增加新信息ifMore=0;for i = 1:1:15if arr_rule(i)==0switch icase 1if arr_feature(1)>0arr_category(1)=1;arr_rule(i)=1;ifMore=1;disp(['根据规则',num2str(i)]);disp('新增信息:该动物是哺乳动物');end%break;case 2if arr_feature(2)>0arr_category(1)=1;arr_rule(i)=1;ifMore=1;disp(['根据规则',num2str(i)]);disp('新增信息:该动物是哺乳动物');end%break;case 3if arr_feature(3)>0arr_category(2)=1;arr_rule(i)=1;ifMore=1;disp(['根据规则',num2str(i)]);disp('新增信息:该动物是鸟');end%break;case 4if arr_feature(4)*arr_feature(5)>0arr_category(2)=1;arr_rule(i)=1;ifMore=1;disp(['根据规则',num2str(i)]);disp('新增信息:该动物是鸟');end%break;case 5if arr_feature(6)>0arr_category(3)=1;arr_rule(i)=1;ifMore=1;disp(['根据规则',num2str(i)]);disp('新增信息:该动物是食肉动物');end%break;case 6if arr_feature(7)*arr_feature(8)*arr_feature(9)>0arr_category(3)=1;arr_rule(i)=1;ifMore=1;disp(['根据规则',num2str(i)]);disp('新增信息:该动物是食肉动物');end%break;case 7if arr_category(1)*arr_feature(10)>0arr_category(4)=1;arr_rule(i)=1;ifMore=1;disp(['根据规则',num2str(i)]);disp('新增信息:该动物是有蹄类动物');end%break;case 8if arr_category(1)*arr_category(5)>0arr_category(4)=1;arr_rule(i)=1;ifMore=1;disp(['根据规则',num2str(i)]);disp('新增信息:该动物是有蹄类动物');end%break;case 9ifarr_category(1)*arr_category(3)*arr_feature(11)*arr_feature(12)>0arr_animal(2)=1;arr_rule(i)=1;ifMore=1;mark=2;disp(['根据规则',num2str(i)]);end%break;case 10ifarr_category(1)*arr_category(3)*arr_feature(11)*arr_feature(13)>0arr_animal(1)=1;arr_rule(i)=1;ifMore=1;mark=1;disp(['根据规则',num2str(i)]);end%break;case 11ifarr_category(4)*arr_feature(14)*arr_feature(15)*arr_feature(16)>0arr_animal(4)=1;arr_rule(i)=1;ifMore=1;mark=4;disp(['根据规则',num2str(i)]);end%break;case 12if arr_category(4)*arr_feature(13)>0arr_animal(3)=1;arr_rule(i)=1;ifMore=1;mark=3;disp(['根据规则',num2str(i)]);end%break;case 13ifarr_category(2)*arr_feature(14)*arr_feature(15)*arr_feature(17)*arr_feature(18) >0arr_animal(6)=1;arr_rule(i)=1;ifMore=1;mark=6;disp(['根据规则',num2str(i)]);end%break;case 14ifarr_category(2)*arr_feature(19)*arr_feature(17)*arr_feature(18)>0arr_animal(5)=1;arr_rule(i)=1;ifMore=1;mark=5;disp(['根据规则',num2str(i)]);end%break;case 15if arr_category(2)*arr_feature(20)>0arr_animal(7)=1;arr_rule(i)=1;ifMore=1;mark=7;disp(['根据规则',num2str(i)]);endendendendendfunction showCategory( )%类别选项显示%disp('请选择分类(1:是,0:其他):');disp('0.哺乳动物');disp('1.鸟');disp('2.食肉动物');disp('3.蹄类动物');disp('4.反刍动物');endfunction showFeature()%具体特征列表% 此处显示详细说明disp('请选择具体特征(1:是,0:其他):');disp('0.有毛发');disp('1.有奶');disp('2.有羽毛');disp('3.会飞');disp('4.会下蛋');disp('5.吃肉');disp('6.有犬齿');disp('7.有爪');disp('8.眼盯前方');disp('9.有蹄');disp('10.黄褐色');disp('11.身上有斑点'); disp('12.身上有黑色条纹'); disp('13.有长脖子');disp('14.有长腿');disp('15.身上有暗斑点'); disp('16.不会飞');disp('17.有黑白两色'); disp('18.会游泳');disp('19.擅飞');endfunction showResult(mark) %结果显示% 此处显示详细说明disp('****识别结果****'); disp('该动物是:');switch markcase 1disp('虎');%break;case 2disp('金钱豹');%break;case 3disp('斑马');%break;case 4disp('长颈鹿');%break;case 5disp('企鹅');%break;case 6disp('鸵鸟');%break;case 7disp('信天翁');%break; endend。

相关文档
最新文档