实验一产生式系统

合集下载

产生式系统专家系统

产生式系统专家系统

人工智能

生式规则

简称产生式。它是指形如α─→β或IFαTHENβ或其等价形式的一条规则,其中α称为产生式的左部或前件;β称为产生式的右部或后件。①如果α、β分别代表需要注视的一组条件及其成立时需要采取的行动,那么称为条件-行动型产生式;②如果α、β分别代表前提及其相应的结论,那么称为前提-结论型产生式。人工智能中的推理很多是建立在直观经验基础上的不精确推理,而产生式在表示和运用不精确知识方面具有灵活性,因此许多专家系统采用产生式系统为体系结构。

组成

一个产生式系统由下列3部分组成:

一个总数据库(global database),它含有与具体任务有关的信息。υ

υ一套规则,它对数据库进行操作运算。每条规则由左右两部分组成,左部鉴别规则的适用性或先决条件,右部描述规则应用时所完成的动作。应用规则来改变数据库。

一个控制策略,它确定应该采用哪一条适用规则,而且当数据库的终止条件满足时,就停止计算。υ

自由帕斯卡中

free pascal 中的产生式系统的组成

产生式系统由一个综合数据库、一组产生式规则和一个控制系统三个基本要素组成。其中:综合数据库是产生式系统所用的主要数据结构,它主要用来表示问题的状态,即初始状态、中间状态和目标状态等,以及状态之间的关系。它不是固定不变的,在求解的过程中,它的内容将越来越多,状态之间的关系也越来越复杂。

经常用来表示数据库的数据结构有串、集合、数组、树、表、记录、队列等。

产生式规则是对数据库进行操作的一系列规则。规则的一般形式是:IF 条件 THEN 操作

即满足应用的先决条件后,就对数据库实行后面的操作。

第5章_产生式系统

第5章_产生式系统

⑶ 控制策略又称推理机
控制策略是一个解释程序,它负责整个产生式系统的运 行,用来控制和协调规则集和全局数据基的运行,包含了推 理方式和控制策略。它的作用是说明下一步应该选用什么规 则,也就是如何应用规则。
5.2.2. 产生式系统的运行过程
推理机的一次推理过程: 从规则库中取一条规则,将 其前提同当前动态数据库中 的事实/数据进行模式匹配 N
3,结束状态 (x1, x2, x3, x4, 1) 其中x1~x4为变量。
猴子摘香蕉问题(续3)
4,规则集 r1: IF (x, y, z, 0, 0) r2: IF (x, y, x, 0, 0) r3: IF (x, y, x, 0, 0) r4: IF (x, y, x, 1, 0) r5: IF (x, x, x, 1, 0)
产生式系统求解问题的一般步骤
1,初始化全局数据基,把问题的初始已知事实送入数据基中 2,若规则库中存在尚未使用过的规则,而且它的前提可与数 据基中的已知事实匹配,则转3步,若不存在这样的事实, 则转5步。 3,执行当前选中的规则,并对该规则做上标记,把该规则执 行后的结论送入数据基中。如果该规则的结论是某些操作, 则执行之。 4,检查数据基中是否已包含了问题的解,若已包含,则终止 问题的求解过程,否则转2步; 5,要求用户提供进一步的关于问题的已知事实,若能提供, 则转2步,否则终止问题的求解过程。 6,若规则库中不再有未使用过的规则,则终止求解过程。

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

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

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

实验基于产⽣式系统的动物识别系统

知识表⽰与推理专题魏江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:如果某动物有奶

则该动物是哺乳动物

第一章 产生式系统

第一章 产生式系统

第一章 产生式系统

本章主要内容:

● 产生式系统的三个组成部分及其作用*

● 产生式系统解题的基本过程

● 产生式系统的三类控制策略*

● 问题的计算机表示原则

● 可分解的产生式系统的意义*

(*为重点内容)

是AI 中最典型/最普遍的一种结构,大多数专家系统都用它来构造。

特点:解题过程与人类思维很相似。

1.1产生式系统的组成部分

1.一个综合数据库(Global Database )

用来描述问题的状态或有关事实。一般随着解题过程不断变化。 像棋局一样

2.一组产生式规则(Set of Rules )

一般表示为 if ……. then ……形式。

规则使用的条件 采取的行动或结论

某规则使用后,可使综合数据库的状态发生变化,形成新的状态。 即数据库变化的规则

3.控制策略(Control System of strategies )

即控制如何使用这些规则去搜索解(决定着解题过程或推理路线);还要记住使用过 即使用规则的流程 的规则,以便找到解路径。

例题1:八数码游戏(似华容道)

让学生课后思考如何

存储,制定规则100min

可以经过思索,看出走步为:上上左下右。问题似怎样让计算机来解。 用产生式系统解题,须先建立问题的产生式系统描述,即给定综合数据库、规则集, 再利用某种控制策略求解。

(1)综合数据库

可见用二维数组较直观:(S ij ),1≤i, j ≤3, S ij ∈{0,1,…,8}且不等 《数据结构》中的各 一个具体的矩阵就表示一个棋局状态。对八数码游戏,显然有9!个状态,构成其 种结构都可用。 状态空间――解题过程中所有可能出现的状态的集合。

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)

实验一产生式系统实验群

产生式系统: 是由一组规则组成的、能够协同作用的推理系统。其模型是设计各种智能专家系统的基础 .产生式系统主要由规则库、综合数据库和推理机三大部分组成。本实验环境主要提供一个能够实现模拟产生式专家系统的验证、设计和开发的可视化操作平台。学生既能用本系统提供的范例进行演示或验证性实验,也能够用它来设计并调试自己的实验模型。

人工智能实验报告

人工智能实验报告

暨南大学人工智能实验报告题目:动物识别系统院系:信科院计算机系专业:计算机软件与理论学号:

学生姓名:张韶远

成绩:

日期:2009年11月10日

一、目的与要求

1.掌握人工智能的知识表示技术,能用产生式表示法表示知识,并实现一个用于识别的专家系统。

2.推理策略采用正向推理和反向推理两种。

二、主要内容

1.学习人工智能的知识表示技术,关键掌握产生式知识表示的具体应用方法。

2.实现的动物识别系统的主要功能如下:

2.1系统能通过正向、反向推理得到正确的动物识别结果。

2.2系统能动态地添加规则、能显示推理过程。

三.实验原理

产生式表示:产生式表示是知识表示的一种。这种方法是建立在因果关系的基础上的,可很容易的描述事实、规则及其不确定性度量。

1.事实的表示:

事实可看成是断言一个语言变量的值或是多个语言变量间的关系的陈述句,语言变量的值或语言变量间的关系可以是一个词。不一定是数字。一般使用三元组(对象,属性,值)或(关系,对象1,对象2)来表示事实,其中对象就是语言变量,若考虑不确定性就成了四元组表示(增加可信度)。这种表示的机器内部实现就是一个表。

如事实“老李年龄是35岁”,便写成(Lee,age,35)

事实“老李、老张是朋友”,可写成(friend,Lee,Zhang)

2.规则的表示:

规则用于表示事物间的因果关系,以if condition then action 的单一形式来描述,将规则作为知识的单位。其中的condition 部分称为条件式前件或模式,而action部分称作动作、后件或结论。

产生式一般形式为:前件后件。前件和后件也可以是有“与”、“或”、“非”

实验一产生式系统

实验一产生式系统

实验一产生式系统——动物识别系统

一、实习目的和意义

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( )

实验一:产生式系统实验

实验一:产生式系统实验

实验一:产生式系统实验

一、实验目的:

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

二、实验原理

产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。

产生式系统是由一组规则组成的、能够协同作用的推理系统。其模型是设计各种智能专家系统的基础.产生式系统主要由规则库、综合数据库和推理机三大部分组成。本实验环境主要提供一个能够实现模拟产生式专家系统的验证、设计和开发的可视化操作平台。学生既能用本系统提供的范例进行演示或验证性实验,也能够用它来设计并调试自己的实验模型。

三、实验条件:

1、产生式系统实验程序。

2、IE6.0以上,可以上Internet

四、实验内容:

1.对已有的产生式系统(默认的例子)进行演示,同时可以更改其

规则库或(和)事实库,进行正反向推理,了解其推理过程和

机制。

2.自己建造产生式系统(包括规则库和事实库),然后进行推理,

即可以自己输入任何的规则和事实,并基于这种规则和事实进

行推理。这为学生亲手建造产生式系统并进行推理提供了一种

有效的实验环境。

五、实验步骤:

1.定义变量,包括变量名和变量的值。

2.建立规则库,其方法是,(a) 输入规则的条件:每条规则至少

有一个条件和一个结论,选择变量名,输入条件(符号);选

择变量值,按确定按钮就完成了一条条件的输入。重复操作,

可输入多条条件;(b) 输入规则的结论:输入完规则的条件后,

就可以输入规则的结论了,每条规则必须也只能有一个结论。

第5章 产生式系统

第5章   产生式系统

第5章 产生式系统
产品式规则库
推理机
动态数据库
图5—1 产生式系统结构
第5章 产生式系统
产生式规则库亦称产生式规则集,由领域规则组
成,在机器中以某种动态数据结构进行组织。 推理机亦称控制执行机构,它是一个程序模块, 负责产生式规则的前提条件测试或匹配,规则的调度 与选取,规则体的解释和执行。即推理机实施推理, 并对推理进行控制,它也就是规则的解释程序。
生式。产生式也称为产生式规则,或简称规则。
第5章 产生式系统
产生式的一般形式为 前件→后件 其中,前件就是前提,后件是结论或动作,前件 和后件可以是由逻辑运算符AND、OR、NOT组成的表 达式。
产生式规则的语义是:如果前提满足,则可得结论
或者执行相应的动作,即后件由前件来触发。所以,前 件是规则的执行条件,后件是规则体。
r5:若某动物是哺乳动物且有爪且有犬齿且目盯前 方,则它是食肉动物。
第5章 产生式系统
r6:若某动物是哺乳动物且吃肉,则它是食肉动物。
r7:若某动物是哺乳动物且有蹄,则它是有蹄动物。 r8:若某动物是有蹄动物且反刍食物,则它是偶蹄 动物。 r9:若某动物是食肉动物且黄褐色且有黑色条纹,
则它是老虎。
第5章 产生式系统
步3 用规则库中各规则的前提匹配动态数据库中的 事实/数据,将匹配成功的规则组成待用规则集; 步4 若待用规则集为空,则运行失败,退出。 步5 用某种策略,从待用规则集中选取一条规则, 将其结论加入动态数据库,或者执行其动作,撤消待

中南大学人工智能实验报告

中南大学人工智能实验报告

“人工智能”实验报告

专业自动化

班级 09级

学号

姓名

日期:2011.12

目录

一、实验八自动规划实验群 (3)

二、实验一生产式系统实验群 (6)

三、实验二搜索策略实验群 (7)

四、实验七神经网络 (9)

五、实验心得和体会 (10)

实验八自动规划实验群

姓名班级指导老师日期2011.12

实验目

熟悉和掌握自动规划的基本原理,方法和主要技术。

实验原理规划是一种问子题求解技术,它从某个特定的问题状态出发,寻求一系列行为动作,并建立一个操作序列,直到求得目标状态为止。简而言之,规划是一个行动过程的描述。一个总规划可以含有若干个子规划。

实验环

转载相

关源文

实验环境

转载相关源文件

实现过

单步观察实验算法

算法结果分析

观测结果通过规定规则,确定initial state和goal state,使得移动臂按照规则进行移动。分别进行clear holding pickup putdown putdowntable等实现对木块的移动。

实现过程先进行逆向推理选择,找出途径后再进行移动。

学生结论对于不同的规则将会出现不同的移动过程。通过规定不同的动作可实现不通过的移动。

实验一生产式系统实验群

姓名指导老师日期2011.12

实验目的熟悉和掌握产生式系统的运行机制,掌握基

于规则推理的基本方法。

推理方

逆向推理

建立规则库建立事实库

该动物是哺乳动物<- 该动物有毛发.

该动物是哺乳动物<- 该动物有奶.

该动物是鸟<- 该动物有羽毛.

该动物是鸟<- 该动物会飞&会下蛋.

该动物是食肉动物<- 该动物吃肉.

产生式系统

产生式系统

基于产生式认知模型的产生式系统体系结构
事实库(短时记忆区 ):
存放问题的初始状态、已知事实、推理的中间结果及结论 等。
表现形式:符Βιβλιοθήκη Baidu串、数组、向量、集合、谓词等
例:“8数码”问题状态描述 - 矩阵 (Sij); “猴子摘香蕉”问题状态描述 - (a,0,b,0); “祖孙关系”定理证明谓词描述 – Parent ( x,y )。
态变化的知识 ); ✓ 认知处理器 - 从长期记忆的成块知识中找出能被当前输入信息激活
的那些知识,并有选择地处理执行。
▪ 产生式认知模型成为 AI 的一种基本的知识表示形式
北京航空航天大学软件开发环境国家重点实验室 Slide 5
产生式系统
产生式认知模型 产生式系统 - 基于规则的知识系统架构 产生式系统推理机的实现技术 专家系统概述
北京航空航天大学软件开发环境国家重点实验室 Slide 6
基于产生式认知模型的产生式系统体系结构
长期记忆 --- 规则库(长期知识库、 …. )
短时记忆 ---
工作存储器(事实库、工作库、综合 数据库、…. )
认知处理器 --- 推理机(控制系统、控制策略、解 释程序、….)
北京航空航天大学软件开发环境国家重点实验室 Slide 7
北京航空航天大学软件开发环境国家重点实验室 Slide 9

实验一:产生式系统实验

实验一:产生式系统实验

实验一:产生式系统实验

一、实验目的:

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

二、实验原理

产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。

产生式系统是由一组规则组成的、能够协同作用的推理系统。其模型是设计各种智能专家系统的基础.产生式系统主要由规则库、综合数据库和推理机三大部分组成。本实验环境主要提供一个能够实现模拟产生式专家系统的验证、设计和开发的可视化操作平台。学生既能用本系统提供的范例进行演示或验证性实验,也能够用它来设计并调试自己的实验模型。

三、实验条件:

1、产生式系统实验程序。

2、IE6.0以上,可以上Internet

四、实验内容:

1.对已有的产生式系统(默认的例子)进行演示,同时可以更改其

规则库或(和)事实库,进行正反向推理,了解其推理过程和

机制。

2.自己建造产生式系统(包括规则库和事实库),然后进行推理,

即可以自己输入任何的规则和事实,并基于这种规则和事实进

行推理。这为学生亲手建造产生式系统并进行推理提供了一种

有效的实验环境。

五、实验步骤:

1.定义变量,包括变量名和变量的值。

2.建立规则库,其方法是,(a) 输入规则的条件:每条规则至少

有一个条件和一个结论,选择变量名,输入条件(符号);选

择变量值,按确定按钮就完成了一条条件的输入。重复操作,

可输入多条条件;(b) 输入规则的结论:输入完规则的条件后,

就可以输入规则的结论了,每条规则必须也只能有一个结论。

中南大学人工智能实验报告

中南大学人工智能实验报告

“人工智能”实验报告

专业班级学号姓名

目录

一、实验八自动规划实验群 (3)

二、实验一生产式系统实验群 (6)

三、实验二搜索策略实验群 (7)

四、实验七神经网络 (9)

五、实验心得和体会 (10)

实验八自动规划实验群

实验目 熟悉和掌握 自动规划的基本原理,方法和主要技术。 的

规划是一种问子题求解技术,它从某个特定的问题状态出发,寻求一系列行为动 实验原 作,并建

立一个操作序列,直到求得目标状态为止。简而言之,规划是一个行动 理 过程的描述。一个总规划可以含有若干个子规划。

实验环 境 转载相 关源文 件

实现过单步观察实验算法 程

姓名 班级 指导老师

日期

2011.12

实验环境

转载相关源文件

p uftdErwnl9l^l

^='tfQ 沖 puMownpl^ Z B 丰懂沖

_____ itWlDi-i : al# it Fin

^ulD&cal«

J

PfLuii Cnmpleie

c p®n

直 ZJmrn

*

l

通过规定规则,确定

initial state 和goal state ,使得移动臂按照规则进行移动。

分别进行 clear holding pickup putdown putdowntable 等实现对木块的移动。 实现过程先进行逆向推理选择,找出途径后再进行移动。

通过规定不同的动作可实现不通过的移动。

匾?1■“ iMHJ

1 , I

E

C'r'aair S^va

Mjln SI"

Run - ianvvi-dc^-

(ii :

hUCM^b-^ I

1

AHttH miTi

haWinjC^Flft^'

算法结

动物识别系统

动物识别系统

学生实验报告实验课名称:人工智能

实验项目名称:产生式系统实验

专业名称:计算机科学与技术

班级: 2012240201

学号: 12

学生姓名:雷彬

教师姓名:陈亮亮

2014年12 月10 日

实验日期:2012 年12 月10 日实验室名称:明远2202

首先给定初始事实,将初始事实放入动态数组中,并用初始事实与15条规则进行匹配,如果规则匹配成功,将规则的后件存入数组中,再用数组中所有的元素与规则进行匹配,满足即加入数组,直到匹配出动物。如果给定初始事实能推出多种动物,按照数组中条件的先后顺序,顺序循环匹配规则,先匹配出哪种动物就显示该动物。

五.源程序:

// MFC_AnimalDlg.cpp : 实现文件

#include"stdafx.h"

#include"MFC_Animal.h"

#include"MFC_AnimalDlg.h"

#include"afxdialogex.h"

#ifdef_DEBUG

#define new DEBUG_NEW

#endif

// 用于应用程序“关于”菜单项的 CAboutDlg 对话框

class CAboutDlg : public CDialogEx

{

public:

CAboutDlg();

// 对话框数据

enum { IDD = IDD_ABOUTBOX };

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

// 实现

protected:

DECLARE_MESSAGE_MAP()

人工智能课程教学大纲

人工智能课程教学大纲

《人工智能》课程教学大纲

课程代码:H0404X

课程名称:人工智能

适用专业:计算机科学与技术专业及有关专业

课程性质:本科生专业基础课(学位课)

主讲教师:中南大学信息科学与工程学院智能系统与智能软件研究所蔡自兴教授

总学时:40学时(课堂讲授36学时,实验教学4学时)

课程学分:2学分

预修课程:离散数学,数据结构

一.教学目的和要求:

通过本课程学习,使学生对人工智能的发展概况、基本原理和应用领域有初步了解,对主要技术及应用有一定掌握,启发学生对人工智能的兴趣,培养知识创新和技术创新能力。

人工智能涉及自主智能系统的设计和分析,与软件系统、物理机器、传感器和驱动器有关,常以机器人或自主飞行器作为例子加以介绍。一个智能系统必须感知它的环境,与其它Agent 和人类交互作用,并作用于环境,以完成指定的任务。

人工智能的研究论题包括计算机视觉、规划与行动、多Agent系统、语音识别、自动语言理解、专家系统和机器学习等。这些研究论题的基础是通用和专用的知识表示和推理机制、问题求解和搜索算法,以及计算智能技术等。

此外,人工智能还提供一套工具以解决那些用其它方法难以解决甚至无法解决的问题。这些工具包括启发式搜索和规划算法,知识表示和推理形式,机器学习技术,语音和语言理解方法,计算机视觉和机器人学等。通过学习,学生能够知道什么时候需要某种合适的人工智能方法用于给定的问题,并能够选择适当的实现方法。

二.课程内容简介

人工智能的主要讲授内容如下:

1.叙述人工智能和智能系统的概况,列举出人工智能的研究与应用领域。

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

实验一:产生式系统-动物识别系统

实验一:产生式系统-动物识别系统

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

实验一:产生式系统

——动物识别系统

一、实验目的

1、掌握知识的产生式表示法

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

二、实验内容

1、所选编程语言:C语言;

2.拟订的规则:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2、设计思路:

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

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

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

  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,mar

k )

规则符合检测

showCategory function showCategory( )

类别选项打印函数

showFeature function showFeature()

特征选项打印函数

showResult function showResult(mark)

结果显示

b.测试

测试数据一

1 0 0 0 1

arr_category[

5]

arr_feature[2

0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0

0]

测试数据二

arr_category[

5]

0 0 0 0 0

arr_feature[2

0]

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==1

if mark>-1

showResult(mark);

break;

end

if ifMore==0

disp('无法判断具体是哪种动物!');

break

end

ifMore=0;

[arr_category,arr_feature,arr_rule,ifMore,mark]= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark); end

end

function [arr_category,arr_feature,arr_rule,ifMore,mark]= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark ) %正向推理函数

% 逐条检查规则是否满足,若满足,则增加新信息

ifMore=0;

for i = 1:1:15

if arr_rule(i)==0

switch i

case 1

if arr_feature(1)>0

arr_category(1)=1;

arr_rule(i)=1;

ifMore=1;

disp(['根据规则',num2str(i)]);

disp('新增信息:该动物是哺乳动物');

end

%break;

case 2

if arr_feature(2)>0

arr_category(1)=1;

arr_rule(i)=1;

ifMore=1;

disp(['根据规则',num2str(i)]);

disp('新增信息:该动物是哺乳动物');

end

%break;

case 3

if arr_feature(3)>0

arr_category(2)=1;

arr_rule(i)=1;

ifMore=1;

disp(['根据规则',num2str(i)]);

disp('新增信息:该动物是鸟');

end

%break;

case 4

if arr_feature(4)*arr_feature(5)>0

arr_category(2)=1;

arr_rule(i)=1;

ifMore=1;

disp(['根据规则',num2str(i)]);

disp('新增信息:该动物是鸟');

end

%break;

case 5

if arr_feature(6)>0

arr_category(3)=1;

arr_rule(i)=1;

ifMore=1;

disp(['根据规则',num2str(i)]);

disp('新增信息:该动物是食肉动物');

end

%break;

case 6

if arr_feature(7)*arr_feature(8)*arr_feature(9)>0

相关文档
最新文档