动物识别专家系统 人工智能必备

合集下载

动物识别专家系统的建立

动物识别专家系统的建立


















实用第一 智慧密集
… . . … … … … … .
家豫 绩

童 小 明
摘 要 :专 家 系统是 具 有人 工智 能和推 理功 能 的知识 系统 。 以一 个动 物识 别专 家 系统的 建 立为例 ,
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)

人工智能作业——动物识别系统

人工智能作业——动物识别系统

人工智能作业——动物识别系统动物识别专家系统-------胡沧粟—20131313058动物识别系统由多种规则来判别,首先原则是根据是哺乳动物还是鸟类来区别大类。

然后根据在哺乳动物类里建立规则:食肉动物,非食肉,黄褐色,有斑点,长脖子,黑白两色来区分老虎,金钱豹,长颈鹿和斑马。

鸟类里面建议规则:会飞,不会飞,长腿,黑白两色来区分信天翁,企鹅和鸵鸟。

将书本上的规则适当进行了简化,并利用界面的人性化来诱导人们更好的使用软件。

程序由c#语言编写。

本程序系统在考虑到整体结构相同的结构下,将规则进行了优化。

先将哺乳动物与非哺乳动物进行了区分,从而在选取完第一条规则后可以筛选掉很多不用的规则。

在哺乳动物里,规则如下:1.老虎=食肉+黄褐色2.金钱豹=食肉+有斑点3.长颈鹿=非食肉+长脖子4.斑马=非食肉+黑白两色鸟类动物里面,规则如下:1.信天翁=会飞2.企鹅=不会飞+黑白两色3.鸵鸟=不会飞+长腿程序实际操作图:1.程序界面通过选取哺乳动物和鸟类可以筛选掉很多不需要的信息。

2.当按以上的规则描述时可以通过下面的显示栏显示判定的动物。

3.当错误输入或者选取规则过多时则会显示错误提醒。

部分程序代码:using System;using System.Collections.Generic; using ponentModel; using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; namespace人工智能作业;{public partial class form1 : Form {public form1(){InitializeComponent();panel1.Visible = true;panel2.Visible = false;bel3.Text = str1;radioButton1.Checked = true;}private void button1_Click(object sender, EventArgs e){//bel3.Text = str1;this.button1.Enabled = false;if ((checkBox01.Checked == true) && (checkBox03.Checked == true) && (checkBox02.Checked == false) && (checkBox04.Checked == false) && (checkBox05.Checked == false) && (checkBox06.Checked == false))bel3.Text = str1 + "老虎";if ((checkBox01.Checked == true) && (checkBox02.Checked == true) && (checkBox03.Checked == false) && (checkBox04.Checked == false) && (checkBox05.Checked == false) && (checkBox06.Checked == false)){bel3.Text = str1 + "金钱豹";}if ((checkBox04.Checked == true) && (checkBox05.Checked == true) && (checkBox02.Checked == false) && (checkBox01.Checked == false) && (checkBox03.Checked == false) && (checkBox06.Checked == false)){bel3.Text = str1 + "长颈鹿";if ((checkBox04.Checked == true) && (checkBox06.Checked == true) && (checkBox02.Checked == false) && (checkBox01.Checked == false) && (checkBox05.Checked == false) && (checkBox03.Checked == false))bel3.Text = str1 + "斑马";if ((checkBox07.Checked == true) && (checkBox08.Checked == false) && (checkBox09.Checked == false) && (checkBox10.Checked == false) ){bel3.Text = str1 + "信天翁";}if ((checkBox09.Checked == true) && (checkBox08.Checked == true) && (checkBox07.Checked == false) && (checkBox10.Checked == false)){bel3.Text = str1 + "鸵鸟";}if ((checkBox09.Checked == true) && (checkBox10.Checked == true) && (checkBox08.Checked == false) && (checkBox07.Checked == false)){bel3.Text = str1 + "企鹅";}if ((bel3.Text == str1)){MessageBox.Show("动物类型描述错误,请重新输入!");this.button1.Enabled = true;}}private void radioButton1_CheckedChanged(object sender, EventArgs e){if (radioButton1.Checked == true){panel1.Visible = true;panel2.Visible = false;}}private void radioButton2_CheckedChanged(object sender, EventArgs e){if (radioButton2.Checked == true){panel2.Visible = true;panel1.Visible = false;}private void button2_Click(object sender, EventArgs e) {bel3.Text = str1;this.button1.Enabled = true;checkBox01.Checked = false;checkBox02.Checked = false;checkBox03.Checked = false;checkBox04.Checked = false;checkBox05.Checked = false;checkBox06.Checked = false;checkBox07.Checked = false;checkBox08.Checked = false;checkBox09.Checked = false;checkBox10.Checked = false;}}}。

专家系统实例

专家系统实例

专家系统实例
专家系统是一种基于知识推理的智能信息系统,用于解决特定领域的问题。

它们利用专家知识和推理规则,通过询问用户的问题来识别问题的本质,然后提供相应的解决方案。

以下是一些专家系统实例: 1. 动物识别专家系统:该实例是一个基于人工智能技术的专家系统,用于识别动物物种。

它利用了计算机视觉和自然语言处理技术,通过询问用户有关动物的特征和属性来识别动物。

2. 医学诊断专家系统:该实例是一个用于医学诊断的专家系统,它利用医学知识和推理规则,通过对用户提供的症状和疾病特征进行分析,从而作出准确的医学诊断。

3. 工业控制专家系统:该实例是一个用于工业控制的专家系统,它利用控制理论和推理技术,通过对用户提供的控制命令进行分析和优化,以实现更高效、更安全的工业控制。

4. 农业施肥专家系统:该实例是一个用于农业施肥的专家系统,它利用植物营养知识和推理规则,通过对用户提供的肥料信息和植物需求进行分析,从而提供最佳的施肥方案。

这些专家系统实例展示了人工智能技术在各个领域的应用,可以帮助用户解决各种复杂问题。

人工智能 动物专家系统

人工智能 动物专家系统
规则8: 如果:动物是哺乳动物,且是反刍动物 则 :该动物是有蹄动物
规则9: 如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点 则 :该动物是豹
规则10: 如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹 则 :该动物是虎
规则11: 如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类 则 :该动物是长颈鹿
规则12: 如果:动物有黑条纹,且是有蹄类动物 则 :该动物是斑马
规则13: 如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞 则 :该动物是鸵鸟
规则14: 如果:动物是鸟,且不会飞,且会游泳,且是黑色的 则 :该动物是企鹅
规则15: 如果:动物是鸟,且善飞 则 :该动物是信天翁
该系统使用来识别7种动物。首先将动物粗略分成哺 乳动物,鸟,食肉动物3大类。然后逐步缩小分类范围,最 后识别出7中动物。
实验原理: 动物识别专家系统是流行的专家系统实验模型,它用产生式规则来表示 知识,共15条规则、可以识别七种动物,这些规则既少又简单,可以改 造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取 代这些规则。动物识别15条规则的中 规则1: 如果:动物有毛发 则 :该动物是哺乳动物 规则2:
如果:动物有奶 则 :该单位是哺乳动物 规则3: 如果:该动物有羽毛 则 :该动物是鸟 规则4: 如果:动物会飞,且会下蛋 则 :该动物是鸟 规则5: 如果:动物吃肉 则 :该动物是肉食动物 规则6: 如果:动物有犬齿,且有爪,且眼盯前方 则 :该动物是食肉动物
规则7: 如果:动物是哺乳动物,且有蹄 则 :该动物是有蹄动物
int e; printf("************************************************ *******************\n"); printf("1、该动物有黑白条纹\n2、该动物有暗斑点,且有长腿, 且有长脖子。\n3、无上述特点。\n"); printf("************************************************ *******************\n"); printf("请选择该动物的特点:");scanf_s("%d",&e); switch(e)

(毕业论文)动物识别专家系统

(毕业论文)动物识别专家系统

摘要专家系统是目前人工智能中最活跃,最有成效的一个研究领域,它是一种基于知识的系统,它从人类专家那里获得知识,并用来解决只有专家才能解决的困难问题。

该动物识别专家系统是在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功能........................... 错误!未定义书签。

人工智能 动物专家系统PPT

人工智能 动物专家系统PPT

3:printf("该动物是信天翁 该动物是信天翁\ case 3:printf("该动物是信天翁\n");break; case 4:printf("我们将会尽快升级系统,谢谢使用。\n");break; 4:printf("我们将会尽快升级系统,谢谢使用。 我们将会尽快升级系统 default:printf("错误的选择 错误的选择! default:printf("错误的选择!");break; } } void Carnivore()//食肉动物识别 Carnivore()//食肉动物识别 { int d; printf("*********************************************************** ********\ ********\n"); printf("1、该动物黄褐色且有暗斑点\n2、该动物黄褐色且有黑条纹\n3、无 printf("1、该动物黄褐色且有暗斑点\n2、该动物黄褐色且有黑条纹\n3、 上述特点\ 上述特点\n"); printf("*********************************************************** ********\ ********\n"); printf("请选择该动物的特点 请选择该动物的特点: printf("请选择该动物的特点:"); scanf_s("%d",&d); switch(d)
计科0901 计科0901 0304090133 0304090133 李承腾
动物识别系统的实质是将人的思维过程转 化为计算机语言的逻辑过程,其关键在于知识和信 息的表示,智能推理或求解的基础—知识库的创建 和管理,以及基于某种知识和信息表示的智能推理 或求解过程。 该系统的知识表示采用产生式表示法。产 生式系统由条件和规则数据库、控制系统、界面三 个部分构成。数据库中规则表、条件表分别对应数 据库系统中的动物库表,动物特征询问序列表。动 物库表放入推理规则,包括动物的各种属性和所应 推出的动物名称。动物特征询问序列表放入要选择 的各种动物的属性。

动物识别专家系统

动物识别专家系统

动物识别专家系统1、专家系统的基本工作原理尽管专家系统有众多类型, 名称各异, 但基本原理框图一致, 如图1 所示。

专家系统的核心是知识库和推理机, 其基本工作过程为: 系统根据知识库中的知识和用户提供的事实进行推理, 不断地由已知前提推出一些初步结论, 并将这些初步结论作为中间结果存放在数据库中, 然后将其作为新的已知事实进行下一步推理, 往复循环, 逐步逼近求解目标。

在这个过程中, 系统可以通过人机接口不断地与用户交流, 向用户提问, 或对用户提出的问题做出解释。

知识库是专家系统的知识存储器, 用来存放求解问题的领域知识。

推理机是专家系统中用来实现推理的程序。

其主要功能是模拟领域专家的思维过程, 控制并执行对问题的求解。

它能根据当前已知的事实, 利用知识库中的知识, 按一定的推理方法和控制策略进行推理, 直到得出相应的结论为止。

它包括推理方法和控制策略两个部分。

大多数专家系统都采用人机对话的交互式解释方法。

知识获取机构主要实现机器学习。

人机接口是领域专家、知识工程师、一般用户间进行交互的界面, 由一组程序及相应的硬件组成, 用于完成输入输出工作。

2、动物识别专家系统在PROLOG 下的实现和使用说明为了更好地阐明专家系统的基本工作原理, 我们用PROLOG语言实现一个简单的动物识别专家系统。

该系统可以识别老虎、金钱豹、斑马、长颈鹿、鸵鸟、企鹅、海燕这7 种动物1、知识库在本系统当中, 知识库中的知识用产生式规则来表示。

本系统能够识别7 种动物, 知识库中共有以下15 条规则。

R1 IF 该动物有毛发THEN 该动物是哺乳动物R2 IF 该动物有奶THEN 该动物是哺乳动物R3 IF 该动物有羽毛THEN 该动物是鸟R4 IF 该动物会飞AND会下蛋THEN 该动物是鸟R5 IF 该动物吃肉THEN 该动物是肉食动物R6 IF 该动物有犬齿AND 有爪AND 眼盯前方THEN 该动物是肉食动物R7 IF 该动物是哺乳动物AND 有蹄THEN 该动物是有蹄类动物R8 IF 该动物是哺乳动物AND 是嚼反刍动物THEN 该动物是有蹄类动物R9 IF 该动物是哺乳动物AND 是肉食动物AND 是黄褐色们AND 身上有暗斑点THEN该动物是金钱豹R10 IF 该动物是哺乳动物AND 是肉食动物AND 是黄褐色AND 身上有黑色条纹THEN 该动物是虎R11 IF 该动物是有蹄类动物AND有长脖子AND 有长腿AND 身上有暗斑点THEN 该动物是长颈鹿R12 IF 该动物是有蹄类动物AND身上有黑色条纹THEN 该动物是斑马R13 IF 该动物是鸟AND 有长脖子AND 有长腿AND 不会飞THEN 该动物是鸵鸟R14 IF 该动物是鸟AND 会游泳AND不会飞AND 有黑白二色THEN 该动物是企鹅R15 IF 该动物是鸟AND 善飞THEN 该动物是海燕在知识库中, 并非简单地给每一种动物一条规则。

动物识别专家系统简介

动物识别专家系统简介

动物识别专家系统简介动物识别专家系统是经典的专家系统实验模型,它用产生式规则来表示知识,共15条规则,可以识别七种动物。

这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。

2.1、建立动物识别专家系统的规则库,并用与/或图来描述这个规则库。

规则库由15条规则组成,编写一段程序,把15条规则组成一个表直接赋值给规则库rules,规则名分别是;rule1,rule2,┉,rule15。

( rules((rule1(if (animal has hair)) 若动物有毛发(F1)(then (animal is mammal))) 则动物是哺乳动物(M1)((rule2(if (animal gives milk)) 若动物有奶(F2)(then (animal is mammal))) 则动物是哺乳动物(M1)((rule3(if (animal has feathers)) 若动物有羽毛(F9)(then (animal is bird))) 则动物是鸟(M4)((rule4(if (animal flies)) 若动物会飞(F10)(animal lays eggs)) 且生蛋(F11)(then (animal is bird))) 则动物是鸟(M4)((rule5(if (animal eats meat)) 若动物吃肉类(F3)(then (animal is carnivore))) 则动物是食肉动物(M2)((rule6(if (animal Raspointed teeth)) 若动物有犀利牙齿(F4)(animal has claws) 且有爪(F5)(animal has forword eyes)) 且眼向前方(F6)(then (animal is carnivore))) 则动物是食肉动物(M2)((rule7(if (animal has mammal)) 若动物是哺乳动物(M1)(animal has hoofs)) 且有蹄(F7)(then (animal is ungulate))) 则动物是有蹄类动物(M3)((rule8(if (animal has mammal)) 若动物是哺乳动物(M1)(animal chews cud)) 且反刍(F8)(then (animal is ungulate))) 则动物是有蹄类动物(M3)((rule9(if (animal is mammal)) 若动物是哺乳动物(M1)(animal is carnivore) 且是食肉动物(M2)(animal has tawny color) 且有黄褐色(F12)(animal has dark sports)) 且有暗斑点(F13)(then (animal is cheetah))) 则动物是豹(H1)((rule10(if (animal is mammal)) 若动物是哺乳动物(M1)(animal is carnivore) 且是食肉动物(M2)(animal has tawny color) 且有黄褐色(F12)(animal has black stripes) 且有黑色条纹(F15)(then (animal is tiger))) 则动物是虎(H2)((rule11(if (animal is ungulate)) 若动物是有蹄类动物(M3)(animal has long neck) 且有长脖子(F16)(animal has long legs) 且有长腿(F14)(animal has dark sports)) 且有暗斑点(F13)(then (animal is giraffe))) 则动物是长颈鹿(H3)((rule12(if (animal is ungulate)) 若动物是有蹄类动物(M3)(animal has black stripes) 且有黑色条纹(F15)(then (animal is zebra))) 则动物是斑马(H4)((rule13(if (animal is bird)) 若动物是鸟(M4)(animal does not fly) 且不会飞(F17)(animal has long neck) 且有长脖子(F16)(animal has long legs)) 且有长腿(F14)(animal black and white)) 且有黑白二色(F18)(then (animal is ostrich))) 则动物是驼鸟(H5)((rule14(if (animal is bird)) 若动物是鸟(M4)(animal does not fly) 且不会飞(F17)(animal swims) 且会游泳(F19)(animal black and white)) 且有黑白二色(F18)(then (animal is penguin))) 则动物是企鹅(H6)((rule15(if (animal is bird)) 若动物是鸟(M4)(animal flies well)) 且善飞(F20)(then (animal is albatross))) 则动物是信天翁(H6)在上述规则的说明中,用F1-F20标记的是初始事实或证据,用M1-M4标记的是中间结论,用H1-H7标记的是最终结论。

动物识别专家系统

动物识别专家系统

动物识别专家系统摘要:专家系统是具有人工智能和推理功能的知识系统。

本系统用15条规则,可识别7种动物,用C编程实现,并对结果进行了分析。

该系统把规则的前提与推理机构结合起来,规则的前提作为推理的情况,规则的结论作为推理过程的状态,推理出最终结果后,就能直接处理,不需要判断。

关键字:专家系统;动物;推理Animal recognition expert systemAbstract: Expert systems are knowledge systems with artificial intelligence and reasoning function. The system uses 15 rules, and can identify seven kinds of animals, using C programming, and the results were analyzed. The system is the premise and reasoning mechanism combining rules, rules for reasoning rule conclusion as the reasoning process , reasoning out the final result , can directly handle, without judge.Key words: Expert systems; Animals; Reasoning1 引言1.1 专家系统简介专家系统是人工智能中最重要的也是最活跃的一个应用领域,它实现了人工智能从理论研究走向实际应用、从一般推理策略探讨转向运用专门知识的重大突破。

专家系统是早期人工智能的一个重要分支,它可以看作是一类具有专门知识和经验的计算机智能程序系统,一般采用人工智能中的知识表示和知识推理技术来模拟通常由领域专家才能解决的复杂问题 [1]。

动物识别专家系统有MFC

动物识别专家系统有MFC

动物识别专家系统摘要专家系统的出现是人工智能在实际应用中最引人注目的成果,也是人工智能最活跃或最富有成效的研究领域。

本文介绍了专家系统的原理、结构和发展方向,在此我们实现了一种动物识别的专家系统,它用产生式规则来表示知识,共15条规则、可以识别七种动物。

关键词:专家系统;人工智能;先进技术;应用领域1专家系统介绍当人类迈步跨进21世纪的时候,信息技术的发展也迎来了新的机遇和挑战。

在最近的几十年中,人工智能技术逐渐得到了广泛地应用,其中专家系统更是获得了很大程度的普及。

专家系统系由知识库、推论引擎及接口为基础而组成的计算机化系统,其目的在于对某一特定领域的问题作判断、解释及认知。

但由于此特定领域可大可小,且对认知的定义亦有不同的解释,故可有小如某些汽车专家系统只能依照外型等特征辨认十余种车,亦有大如某些医学专家系统可依据十二万个不同的医学表征分辨八千余种疾病。

尽管专家系统的定义未尽明确,但基本上当此系统所能处理的问题,其复杂性、对专业知识的需求、以及其执行的信度及效度足可与专家相匹敌时,我们便可称之为专家系统。

而由于专家系统能够提供智能型的决策与辅助解决问题、并对求解的过程做某种程度的解释,因而也可以称为“智能型知识库系统”(Intelligent Knowledge-Based System,IKBS)。

专家系统简化结构如图1所示。

图1 专家系统简化结构我国专家系统的研究起步较晚,大约在80年代初期。

最初开发出来的大都是演示系统,达不到实际应用水平。

到目前为止,在理论研究和实际应用开发上都已有了丰硕的成果,并己应用到工业、农业、军事以及国民经济的各个部门乃至社会生活的许多方面。

1.1 知识库知识库系统的主要工作是搜集人类的知识,将之有系统地表达或模块化,使计算机可以进行推论、解决问题。

知识库中包含两种型态:一是知识本身,即对物质及概念作实体的分析,并确认彼此之间的关系;二是人类专家所特有的经验法则、判断力与直觉。

人工智能-动物识别专家系统算法Python+Pyqt实现

人工智能-动物识别专家系统算法Python+Pyqt实现

⼈⼯智能-动物识别专家系统算法Python+Pyqt实现⼀、基础知识库有⽑发哺乳动物 -有奶哺乳动物 -有⽻⽑鸟 -会飞会下蛋鸟 -吃⾁⾷⾁动物 -有⽝齿有⽖眼盯前⽅⾷⾁动物 -哺乳动物有蹄有蹄类动物 -哺乳动物反刍动物有蹄类动物 -哺乳动物⾷⾁动物黄褐⾊⾝上有暗斑点⾦钱豹 *哺乳动物⾷⾁动物黄褐⾊⾝上有⿊⾊条纹虎 *有蹄类动物长脖⼦有长腿⾝上有暗斑点长颈⿅ *有蹄类动物⾝上有⿊⾊条纹斑马 *鸟长脖⼦有长腿不会飞有⿊⽩⼆⾊鸵鸟 *鸟会游泳不会飞有⿊⽩⼆⾊企鹅 *鸟善飞信天翁 *最后⼀个字符为 - 表⽰结论为中间结果为 * 表⽰为⼀种动物⼆、QT界⾯源码# -*- coding: utf-8 -*-# Form implementation generated from reading ui file '动物识别专家系统.ui'## Created by: PyQt5 UI code generator 5.9.2## WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtGui import QFontclass Ui_Animals(object):def setupUi(self, Animals):Animals.setObjectName("Animals")Animals.resize(1127, 710)Animals.setAutoFillBackground(True)self.TL = QtWidgets.QTextEdit(Animals)self.TL.setGeometry(QtCore.QRect(670, 200, 251, 211))self.TL.setObjectName("TL")self.input = QtWidgets.QTextEdit(Animals)self.input.setGeometry(QtCore.QRect(240, 100, 151, 321))self.input.setAutoFillBackground(False)self.input.setObjectName("input")self.result = QtWidgets.QTextEdit(Animals)self.result.setGeometry(QtCore.QRect(670, 100, 251, 51))self.result.setObjectName("result")self.result.setReadOnly(True)self.input_lable = QtWidgets.QLabel(Animals)self.input_lable.setGeometry(QtCore.QRect(100, 80, 141, 41))self.input_lable.setObjectName("input_lable")self.input_lable.setFont(QFont("Roman times", 10, QFont.Bold))self.TL_label = QtWidgets.QLabel(Animals)self.TL_label.setGeometry(QtCore.QRect(750, 150, 101, 61))self.TL_label.setObjectName("TL_label")self.TL_label.setFont(QFont("Roman times", 10, QFont.Bold))self.result_label = QtWidgets.QLabel(Animals)self.result_label.setGeometry(QtCore.QRect(750, 70, 111, 31))self.result_label.setObjectName("result_label")self.result_label.setFont(QFont("Roman times", 10, QFont.Bold))self.scrollArea = QtWidgets.QScrollArea(Animals)self.scrollArea.setGeometry(QtCore.QRect(90, 120, 141, 20))self.scrollArea.setWidgetResizable(True)self.scrollArea.setObjectName("scrollArea")self.scrollAreaWidgetContents = QtWidgets.QWidget()self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 139, 18))self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")boBox = QtWidgets.QComboBox(self.scrollAreaWidgetContents)boBox.setGeometry(QtCore.QRect(0, 0, 141, 21))boBox.setObjectName("comboBox")self.scrollArea.setWidget(self.scrollAreaWidgetContents)self.pushButton = QtWidgets.QPushButton(Animals)self.pushButton.setGeometry(QtCore.QRect(500, 240, 93, 28))self.pushButton.setObjectName("pushButton")self.pushButton.setFont(QFont("Roman times", 10, QFont.Bold))self.checkBox = QtWidgets.QCheckBox(Animals)self.checkBox.setGeometry(QtCore.QRect(500, 190, 91, 19))self.checkBox.setObjectName("checkBox")self.checkBox.setFont(QFont("Roman times", 10, QFont.Bold))self.pushButton_2 = QtWidgets.QPushButton(Animals)self.pushButton_2.setGeometry(QtCore.QRect(10, 120, 61, 21))self.pushButton_2.setObjectName("pushButton_2")self.pushButton_2.setFont(QFont("Roman times", 10, QFont.Bold)) self.pushButton_3 = QtWidgets.QPushButton(Animals)self.pushButton_3.setGeometry(QtCore.QRect(500, 300, 91, 31)) self.pushButton_3.setObjectName("pushButton_3")self.pushButton_3.setFont(QFont("Roman times", 10, QFont.Bold)) self.retranslateUi(Animals)self.pushButton.clicked.connect(Animals.test)boBox.activated['int'].connect(Animals.selectChange)self.checkBox.stateChanged['int'].connect(Animals.checkChange) self.pushButton_2.clicked.connect(Animals.selectInit)self.pushButton_3.clicked.connect(Animals.rules)QtCore.QMetaObject.connectSlotsByName(Animals)def retranslateUi(self, Animals):_translate = QtCore.QCoreApplication.translateAnimals.setWindowTitle(_translate("Animals", "Form"))self.input_lable.setText(_translate("Animals", "请输⼊已知事实")) self.TL_label.setText(_translate("Animals", "推理过程"))self.result_label.setText(_translate("Animals", "专家分析结果"))self.pushButton.setText(_translate("Animals", "推理"))self.checkBox.setText(_translate("Animals", "反向推理"))self.pushButton_2.setText(_translate("Animals", "初始化"))self.pushButton_3.setText(_translate("Animals", "修改规则库")) View Code三、后端处理 Python源码# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'animal.py'## Created by: PyQt5 UI code generator 5.9.2## WARNING! All changes made in this file will be lost!from动物识别专家系统import Ui_Animalsfrom PyQt5 import QtWidgetsfrom PyQt5 import QtGuiimport sysimport osimport tkinterfrom tkinter import messageboxdef IsEvidence(x):for i in mywindow.fact:if x == i[-2]:return Falsereturn Truedef getData(x):data = []for i in mywindow.fact:tr = []if x == i[-2]:for j in range(0, len(i) - 1):tr.append(i[j])data.append(tr)return datadef backs(data):c = 0flag = Falsefor i in data:d = "if "for s in range(0, len(i)):if s == len(i)-2:d = d + str(i[s]) + " then "else:d = d + str(i[s]) + ""window.TL.append(d)for j in range(0, len(i) - 1):if (IsEvidence(i[j])):root = ()root.withdraw()a= messagebox.askquestion("提⽰", i[j]+"吗")#print(i[j] + "吗?")#r = input()print(a)if a == "yes":c = c + 1else:temp = getData(i[j])if (backs(temp)):c = c + 1if c >= i.__len__() - 1:flag = Trueprint(i[-1])print("验证成功")breakelse:flag = Falseprint(i[-1])print("验证失败")if (flag):return Trueelse:return Falseclass mywindow(QtWidgets.QWidget,Ui_Animals):fact = []conditions = set("")res = set("")def__init__(self):super(mywindow, self).__init__()f = open("rules.txt", "r")for line in f:ls = line.strip('\n').split("")mywindow.fact.append(ls)f.close()for i in mywindow.fact:for j in range(0,len(i)-2):mywindow.conditions.add(i[j])mywindow.res.add(i[-2])self.setupUi(self)def resizeEvent(self, event):palette = QtGui.QPalette()pix = QtGui.QPixmap('images/3.jpg')pix = pix.scaled(self.width(), self.height())palette.setBrush(QtGui.QPalette.Background, QtGui.QBrush(pix)) self.setPalette(palette)def test(self):if self.checkBox.isChecked():#逆向推理i = boBox.currentIndex()s = boBox.itemText(i)print(s)data=getData(s)print(data)if (backs(data)):root = ()root.withdraw()a = messagebox.showinfo("提⽰", "该动物是" + data[0][-1]) self.result.setText("专家分析该动物是"+data[0][-1])else:root = ()root.withdraw()self.result.setText("专家分析该动物不是" + data[0][-1])a = messagebox.showinfo("提⽰", "该动物不是" + data[0][-1])else: #正向推理s= self.input.toPlainText()tl =""description = s.split("\n")print("des")print(description)line = 0for i in mywindow.fact:same = 0for j in range(0, len(i)):if j >= len(i) - 2:breakfor k in range(0, len(description)):if i[j] == description[k]:same = same + 1breakif k == len(description):breakif same == i.__len__() - 2:print("same=i")line = 1if i[-1] == "*": # 是结论d = "if "for s in range(0,len(i)-1) :if s == len(i)-3:d=d+str(i[s])+" then "else:d=d+str(i[s])+""tl = tl + d + "\n"self.TL.setText(tl)self.result.setText("专家分析该动物是"+i[-2])print(i[-2])else:line = 1d = "if "for s in range(0, len(i) - 1):if s == len(i) - 3:d = d + str(i[s]) + " then "else:d = d + str(i[s]) + ""tl = tl + d +"\n"self.TL.setText(tl)self.result.setText("专家也不知道具体是什么动物,⼤概率推测是"+i[-2]) # print(i[-1])description.append(i[-2])if line ==0:self.result.setText("专家也不知道具体是什么动物")def selectInit(self):mywindow.fact.clear()mywindow.conditions.clear()mywindow.res.clear()f = open("rules.txt", "r")for line in f:ls = line.strip('\n').split("")mywindow.fact.append(ls)f.close()for i in mywindow.fact:for j in range(0, len(i) - 2):mywindow.conditions.add(i[j])mywindow.res.add(i[-2])boBox.clear()self.input.clear()self.result.clear()self.TL.clear()if(self.checkBox.isChecked()):for x in mywindow.res:boBox.addItem(str(x))else:for x in mywindow.conditions:boBox.addItem(str(x))def selectChange(self):if self.checkBox.isChecked():self.input.clear()i = boBox.currentIndex()s = boBox.itemText(i)self.input.append(s)else:i = boBox.currentIndex()s = boBox.itemText(i)self.input.append(s)def checkChange(self):boBox.clear()if self.checkBox.isChecked():for x in mywindow.res:boBox.addItem(str(x))else:for x in mywindow.conditions:boBox.addItem(str(x))def rules(self):os.startfile('rules.txt')app = QtWidgets.QApplication(sys.argv)window = mywindow()window.show()sys.exit(app.exec_())View Code。

动物识别专家系统

动物识别专家系统

动物识别专家系统随着科技的不断发展,人工智能技术在各个领域得到了广泛的应用,其中动物识别领域也不例外。

动物识别专家系统是一种基于人工智能技术的系统,它能够通过对动物的特征进行分析和识别,从而帮助人们更好地了解和保护动物世界。

本文将介绍动物识别专家系统的原理、应用和未来发展方向。

动物识别专家系统的原理。

动物识别专家系统基于人工智能技术,主要包括图像识别、声音识别和行为识别三个方面。

在图像识别方面,系统通过对动物的外貌特征进行分析和比对,从而识别出动物的种类和特征。

在声音识别方面,系统通过对动物的声音进行录制和分析,从而识别出动物的种类和特征。

在行为识别方面,系统通过对动物的行为进行观察和分析,从而识别出动物的种类和特征。

通过这些方法的综合应用,动物识别专家系统能够准确地识别出动物的种类和特征,为人们提供了一个更加直观和全面的了解动物世界的途径。

动物识别专家系统的应用。

动物识别专家系统在许多领域都有着广泛的应用,其中包括科研、保护和教育等方面。

在科研方面,动物识别专家系统能够帮助科研人员更好地了解动物的种类和特征,从而为动物学研究提供了更多的数据和信息。

在保护方面,动物识别专家系统能够帮助保护人员更好地监测和保护野生动物,从而为野生动物的保护工作提供了更多的支持和帮助。

在教育方面,动物识别专家系统能够帮助学生更好地了解动物的种类和特征,从而为动物教育提供了更多的资源和工具。

通过这些应用的综合推广,动物识别专家系统能够为人们提供一个更加全面和便捷的了解动物世界的途径。

动物识别专家系统的未来发展方向。

动物识别专家系统在未来有着广阔的发展前景,其中包括技术的进步、应用的拓展和服务的优化等方面。

在技术方面,动物识别专家系统将会不断引入新的人工智能技术,从而提高系统的识别准确度和效率。

在应用方面,动物识别专家系统将会不断拓展新的应用领域,从而为更多的人群提供更好的服务和支持。

在服务方面,动物识别专家系统将会不断优化用户体验和服务质量,从而为用户提供更加便捷和高效的服务。

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

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

动物识别专家系统研究摘要:动物识别专家系统是将人的思维过程转化为计算机语言的逻辑过程,其关键在于知识和信息的表示,智能推理或求解的基础——知识库的创建和管理,以及基于某种知识和信息表示的智能推理或求解过程。

使动物识别具有一定的智能性、良好的交互性和可视化效果。

本论文也主要以识别七种动物的设计思路和程序为例所写的。

关键词:人工智能;专家系统;动物识别一、专家系统基本知识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 知识库获取知识获取一般是指从某个活某些致使原中获取专家系统问题求解所需要的专门知识,并以某种形式在计算机中存储、传输与转移。

人工智能动物识别系统 实验报告

人工智能动物识别系统 实验报告

人工智能导论实验报告题目动物识别专家系统学院信息科学与工程学院专业计算机科学与技术姓名侯立军学号 *********** 班级计信1301二O一五年十一月二十六日1 设计内容题目:动物识别专家系统内容:动物识别专家系统是流行的专家系统实验模型,他用产生是规则来表示知识可以识别不同的动物。

这些规则既少又简单,可以改造他们,也可以加入新的规则,还可以用来识别其他新规则来取代这些规则。

2 基本原理2.1 产生式系统的问题求解基本过程:(1) 初始化综合数据库,即把欲解决问题的已知事实送入综合数据库中;(2) 检查规则库中是否有未使用过的规则,若无转 (7);(3) 检查规则库的未使用规则中是否有其前提可与综合数据库中已知事实相匹配的规则,若有,形成当前可用规则集;否则转(6);(4) 按照冲突消解策略,从当前可用规则集中选择一个规则执行,并对该规则作上标记。

把执行该规则后所得到的结论作为新的事实放入综合数据库;如果该规则的结论是一些操作,则执行这些操作;(5) 检查综合数据库中是否包含了该问题的解,若已包含,说明解已求出,问题求解过程结束;否则,转(2);(6) 当规则库中还有未使用规则,但均不能与综合数据库中的已有事实相匹配时,要求用户进一步提供关于该问题的已知事实,若能提供,则转(2);否则,执行下一步;(7) 若知识库中不再有未使用规则,也说明该问题无解,终止问题求解过程。

2.2 正向推理正向推理是以已知事实作为出发点的一种推理,又称数据驱动推理、前向链推理及前件推理等。

2.2.1 正向推理的基本思想:从用户提供的初始已知事实出发,在知识库KB中找出当前可适用的知识,构成可适用知识集KS,然后按某种冲突消解策略从KS中选出一条知识进行推理,并将推出的新事实加入到数据库中作为下一步推理的已知事实,在此之后再在知识库中选取可适用的知识进行推理,如此重复,直到求得了所要求的解,或者知识库中再无可适用的知识为止。

动物专家系统

动物专家系统

动物分类专家系统设计与实现班级:计算机0352姓名:刘一飞学号:200320010220一、专家系统简介:专家系统是一个智能计算机程序系统,其内部含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识和解决问题的方法来处理该领域问题。

也就是说,专家系统是一个具有大量的专门知识与经验的程序系统,它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题,简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。

1.专家系统的特点专家系统具有下列3个特点:(1) 启发性专家系统能运用专家的知识与经验进行推理、判断和决策。

世界上的大部分工作和知识都是非数学性的,只有一小部分人类活动是以数学公式为核心的(约占8%)。

即使是化学和物理学科,大部分也是靠推理进行思考的;对于生物学、大部分医学和全部法律,情况也是这样。

企业管理的思考几乎全靠符号推理,而不是数值计算。

(2) 透明性专家系统能够解释本身的推理过程和回答用户提出的问题,以便让用户能够了解推理过程,提高对专家系统的信赖感。

例如,一个医疗诊断专家系统诊断某病人患有肺炎,而且必需用某种抗生素治疗,那么,这一专家系统将会向病人解释为什么他患有肺炎,而且必须用某种抗生素治疗,就像一位医疗专家对病人详细解释病情一样。

(3) 灵活性专家系统能不断地增长知识,修改原有知识,不断更新。

由于这一特点,使得专家系统具有十分广泛的应用领域。

2.专家系统的优点近十多年来,专家系统获得迅速发展,应用领域越来越广,解决实际问题的能力越来越大,这是专家系统的优良性能以及对国民经济的重大作用决定的。

具体地说,包括下列几个方面:(1) 专家系统能够高效率、准确、周到、迅速和不知疲倦地进行工作。

(2) 专家系统解决实际问题时不受周围环境的影响,也不可能遗漏忘记。

(3) 可以使专家的专长不受时间和空间的限制,以便推广珍贵和稀缺的专家知识与经验。

动物识别系统_人工智能课程实验

动物识别系统_人工智能课程实验

2 规则库
规则库RB(rule base)是一个用来存放与求 解问题有关的所有规则的集合,也称为知识库K B(knowledge base)。它包含了将问题从初始 状态转换成目标状态所需的所有变换规则。规则 库是产生式系统进行问题求解的基础。

3 控制系统(1)
控制系统(control system)也称为推理机, 其主要工作如下: 按一定的策略从规则库中选择规则与综合数据 库中的已知事实进行匹配。 当匹配成功的规则多于一条时,按照某种策略 选择一条执行。 对于要执行的规则,如果该规则的结论不是问 题的目标,将其加入综合数据库中。
动物识别系统
目录
You can briefly add outline of this slide page in this text box.
一、产生式系统的基本结构 二、产生式系统的类型
三、动物识别系统的相关策略
四、实验结果

一、产生式系统的基本结构
1 2 3
综合数据库
规则库 控制系统

1 综合数据库
综合数据库DB(data base)也称为事实库, 是一个用来存放与求解问题有关的各种当前信息 的数据结构。当某条规则的前提与综合数据库中 的已知事实相匹配时,该规则将被激活,并把其 结论放入综合数据库成为后面推理的已知事实。


四、实验结果(1实验结果(3)

四、实验结果(4)


二、产生式系统的类型(2)
3.2逆向推理产生式系统 也称目标驱动方式,它是从目标(作为假设) 状态出发,朝着初始状态前进,反向使用规则的 一种推理方法。所谓逆向使用规则,是指以问题 的目标状态作为初始综合数据库,仅当综合数据 库中的事实满足某条规则的后件时,该规则才被 使用。 优点:不使用与问题无关的规则。因此,对 那些目标明确的问题,使用反向推理方式是一种 最佳选择。

专家系统

专家系统
AI· ES
LOGO
人工智能
——专家系统
Contents
1
2 3
专家系统介绍
专家系统特点和发展趋势
4
动物识别专家系统
专家系统
Part1:专家系统介绍
• 专家系统是一个具有大量的专门知识与经验的程序系统,它应用 人工智能技术和计算机技术,根据某领域一个或多个专家提供的 知识和经验,进行推理和判断,模拟人类专家的决策过程,以便 解决那些需要人类专家处理的复杂问题,从而达到与专家具有同 等解决问题能力。
专家系统的基本工作流程
• 专家系统的基本工作流程是,用户通过人机 界面回答系统的提问,推理机将用户输入的 信息与知识库中各个规则的条件进行匹配, 并把被匹配规则的结论存放到综合数据库中。 最后,专家系统将得出最终结论呈现给用户。 • 在这里,专家系统还可以通过解释器向用户 解释以下问题:系统为什么要向用户提出该 问题(Why)?计算机是如何得出最终结论 的(How)? • 领域专家或知识工程师通过专门的软件工具, 或编程实现专家系统中知识的获取,不断地统
专家系统
• 专家系统(expert system)是人工智能领域应用 研究最活跃和最广泛的课题之一。第一个专家系 统是在1956年由Allen Newell、Herbert Simon 及J. C. Shaw所发展。其后,许多专家系统也纷 纷随之建立,但在前期多半是属于研究性质的雏 形系统。1970年代之后,人工智能与专家系统专 用的程序语言及软件开发工具逐渐开始发展,而 各种知识表示法及算法也被广泛地研究,使得专 家系统的建构与发展方式产生了不小的改变。从 1980年代后期开始,专家系统便能够逐渐脱离实 验室的研究而广泛应用于各行业中。
知识获取
• 知识获取是专家系统知识库是否优越的关键, 也是专家系统设计的“瓶颈”问题,通过知 识获取,可以扩充和修改知识库中的内容, 也可以实现自动学习功能。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小型动物分类专家系统的设计与实现
一、实验目的
通过本实验可使学生能够综合利用高级程序设计语言、面向对象程序设计、数据结构、数据库原理、人工智能、软件工程等课程的相关知识,设计并实现小型动物分类专家系统,培养学生综合运用所学计算机软件知识解决实际问题的能力,为今后从事计算机软件开发及应用打下基础。

二、实验内容
运用下列规则,设计并实现一个小型动物分类专家系统。

规则1:
如果:动物有毛发
则:该动物是哺乳动物
规则2:
如果:动物有奶
则:该单位是哺乳动物
规则3:
如果:该动物有羽毛
则:该动物是鸟
规则4:
如果:动物会飞,且会下蛋
则:该动物是鸟
规则5:
如果:动物吃肉
则:该动物是肉食动物
规则6:
如果:动物有犬齿,且有爪,且眼盯前方
则:该动物是食肉动物
规则7:
如果:动物是哺乳动物,且有蹄
则:该动物是有蹄动物
规则8:
如果:动物是哺乳动物,且是反刍动物
则:该动物是有蹄动物
规则9:
如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点
则:该动物是豹
规则10:
如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹
则:该动物是虎
规则11:
如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类
则:该动物是长颈鹿
规则12:
如果:动物有黑条纹,且是有蹄类动物
则:该动物是斑马
规则13:
如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞
则:该动物是鸵鸟
规则14:
如果:动物是鸟,且不会飞,且会游泳,且是黑色的
则:该动物是企鹅
规则15:
如果:动物是鸟,且善飞
则:该动物是信天翁
动物分类专家系统由15条规则组成,可以识别七种动物.
三、实验原理
一个基于规则专家系统的完整结构示于图1。

其中,知识库、推理机和工作存储器是构成专家系统的核心。

系统的主要部分是知识库和推理引擎。

知识库由谓词演算事实和有关讨论主题的规则构成。

推理引擎由所有操纵知识库来演绎用户要求的信息的过程构成-如消解、前向链或反向链。

用户接口可能包括某种自然语言处理系统,它允许用户用一个有限的自然语言形式与系统交互;也可能用带有菜单的图形接口界面。

解释子系统分析被系统执行的推理结构,并把它解释给用户。


四、实验步骤
知识库中的知识源于领域专家,它是问题求解所需要的领域知识的集合,包括基本事实、规则和其它有关信息。

步骤一:知识获取与知识表示选择/设计
1.知识的获取
获取专业领域所涉及到的知识内容。

上图是从规则集所形成的(部分)推理网络。

2、知识的表达
由步骤1获取的知识集合中的内容,包括定性信息和定量信息,对于定性信息必须制定相应的规则来表达知识的含义。

也是知识库建立的重点。

3、建立知识库
步骤二:推理机设计
推理机是实施问题求解的核心执行机构,它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。

推理策略包括:
1、正向(数据驱动)
2、反向(目标驱动)
3、双向
实现推理机的程序与知识库的具体内容无关,对知识库的修改不需要改动推理机。

步骤三:系统调试与测试
先熟悉语言环境;接着运行示例程序;然后编辑、调试、测试自己的系统程序。

程序的流程主要是:
1、实例化各个类
2、初始化事实集
3、初始化规则集
4、使用规则对事实进行推导
五、关于实验的思考
1、专家系统的设计和开发方法与其它软件的设计和开发的方法有什么不同?。

相关文档
最新文档