一、实验目的
(1)增加学生对数据与知识工程课程的兴趣;
(2)使学生进一步理解并掌握知识表示方法;
(3)使学生加强对专家系统的理解和掌握,并培养学生综合运
用所学知识开发智能系统的初步能力。
二、实验要求
(1)用产生式规则作为知识表示,构建一个小型专家系统
(如分类、诊断、预测等类型),具体应用领域由学生自选,具
体系统名称由学生自定。
(2)编写程序语言及实验环境不限。
(3)程序运行时,应能在屏幕上显示程序运行结果。
三、专家系统例子(动物分类识别系统)
推理逻辑
(1)若某动物有奶,则它是哺乳动物。
(2)若某动物有毛发,则它是哺乳动物。
(3)若某动物有羽毛,则它是鸟。
(4)若某动物会飞且生蛋,则它是鸟。
(5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是
食肉动物。
(6)若某动物是哺乳动物且吃肉,则它是食肉动物。
(7)若某动物是哺乳动物且有蹄,则它是有蹄动物。
(8)若某动物是有蹄动物且反刍食物,则它是偶蹄动物。
(9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。
(10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是猎豹。
(11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,
则它是长颈鹿。
(12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。
(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是
驼鸟。
(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。
(15)若某动物是鸟且善飞且不怕风浪,则它是海燕。
实现
1)交互界面
(1)GUI界面
(2)未选择选项直接按“确定”按钮时,提示“请先进行选择!”
(3)选择专家系统中不存在的推理逻辑时,显示“无法判断该动物!”
(4)选择专家系统中存在的推理逻辑时,显示推理结果
2)工具安装
pyqt5+pyuic+designer.exe
参考: https://www.cnblogs.com/future-dream/p/12127817.html
3)代码
(1)professor.py
dict_init = {'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': '猎豹', '31': '长颈鹿', '32': '斑马', '33': '鸵鸟', '34': '企鹅', '35': '海燕'}
rule = [
[['有奶'],'哺乳动物'],
[['有毛发'],'哺乳动物'],
[['有羽毛'],'鸟'],
[['会飞','生蛋'],'鸟'],
[['哺乳动物','有爪','有犬齿','目盯前方'],'食肉动物'],
[['哺乳动物','吃肉'],'食肉动物'],
[['哺乳动物','有蹄'],'有蹄动物'],
[['有蹄动物','反刍食物'],'偶蹄动物'],
[['食肉动物','黄褐色','有黑色条纹'],'老虎'],
[['食肉动物','黄褐色','有黑色斑点'],'猎豹'],
[['有蹄动物','长腿','长脖子','黄褐色','有暗斑点'],'长颈鹿'],
[['有蹄动物','白色','有黑色条纹'],'斑马'],
[['鸟','不会飞','长腿','长脖子','黑白色'],'鸵鸟'],
[['鸟','不会飞','会游泳','黑白色'],'企鹅'],
[['鸟','善飞','不怕风浪'],'海燕'],
]
def reasoning(chec