学
号
XXXXX
姓
名
XXXXX
实验名称
动物识别专家系统
实验目的
本实验的主要目的是熟练使用推理方法,
进行编程完成相应的功
能。
本次试验的预期功能是在系统可以像使用者提出问题,
然后系统
根据该问题的回答来筛选出相应的动物并确定下一个问题。
其中下一
个问题的提出是在尽量减少提问次数的前提下找到的。
同时该系统还
具有增加记录的功能,可以增加包含的动物种类。
实验方案
首先系统中包含了若干动物种类,例如狮子,老虎等。由于每一
种动物都有不同的属性,而根据这些属性就可以确定是哪一种动物。
所以我们要有数据结构可以存储动物以及动物的不同属性。
为了节约
空间,我们将各个属性用一个数据结构存储起来。
这里我用的是数组进行存储,
每一个记录代表了一种属性。
而动
物则用结构体存储,如下。
typedef struct anim
{
int flag[30];
string nam;
}anim;
该结构体中包括了动物的名称以及属性数组。对应的
flag[i]=1,
则对应的第
i
个属性是满足的,反之该动物没有该属性。这样就可以
得到不同动物的属性。
在提问的时候根据该问题的编号,
找到存在该属性的动物并且进
行标记。并且在剩余的动物中,对没有提问的各个属性进行判断,找
到尽可能能把这些动物平分成两部分的问题进行提问。
如此就可以找
到想要的动物。
同时如果猜测不正确可以添加新的动物或者属性,
并设置各个动
物的属性,这样就可以进行学习,使得系统更加准确。