教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

专家系统实验报告(MFC实现)

来源:网络收集 时间:2026-08-12
导读: 一个球星选择的专家系统。 学生实验报告 科目名称: 人工智能 实验项目名称: 专家系统 专业名称: 计算机科学与技术 班 学级: 计算机一班 号: 201124020105 学生姓名: 高修 教师姓名: 陈亮亮 2013年12月6日 一个球星选择的专家系统。 一、 实验名称:一

一个球星选择的专家系统。

学生实验报告

科目名称: 人工智能

实验项目名称: 专家系统

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

学级: 计算机一班 号: 201124020105

学生姓名: 高修

教师姓名: 陈亮亮

2013年12月6日

一个球星选择的专家系统。

一、 实验名称:一个关于球星猜测的专家系统

二、 实验环境:VC++6.0

三、 实验目的与要求:

目的:

通过实现一个简单的不通用的基于回溯推理的专家系统,来理解产生式系统的推理的基本思想和过程。

要求:

1、确定推理方法(正向还是反向),并根据问题设计实现一个简单的不通用推理机(匹配、冲突消解)

2、规则库要求至少包含15条规则

3、初始事实可以任意给定,输入初始事实后能够得到推理结果

4、设计人机界面,解释模块提供查询规则的功能

5、可以不考虑知识库管理模块

6、提交实验报告

7、报告中要有推理树

专家系统结构图

四、 实验内容和程序设计思想

我利用产生式系统做了一个球星猜测系统,根据一些条件,推理出某位球星。首先,规定了一些初始事实,然后制定15条推理规则,根据规则库进行正向推理,得出结论。本次实验采用的是正向推理的方法,是从已知事实出发,通过规则库求得结论,也称为自底向上,或称为数据驱动方式。这种推理方式是正向使用原则,即问题的初始状态作为初始数据库,在仅当数据库中的事实满足某条规则的前提时,这条规则才能够被使用。程序中采用的是基于用户按照规则点击,逐步得出结果的。

一个球星选择的专家系统。

正向推理的流程图

五、 程序实现过程

初始事实:

1)金球奖热门

2)进攻风格(进攻犀利、传球精准、防守稳健)

3)地区(欧洲、南美、亚洲)

4)性格(张扬、低调)

5)特技(电梯球、各种高难度、手术刀般的传球、马赛回旋)

6)事迹(国际足联主席得罪了他、中国第二个亚洲足球先生、天体之王、打破年度进球记录、人称足坛吕布)

一个球星选择的专家系统。

规则库:

R1:IF进攻犀利 THEN 前场球员

R2:IF传球精准 THEN 中场球员

R3:IF防守稳健 THEN 后场球员

R4:IF金球奖热门 THEN 梅西、C罗、里贝里之一

R5:IF南美 AND 金球奖热门 THEN 梅西

R6:IF欧洲 AND 金球奖 THEN C罗、里贝里之一

R7:IF欧洲 AND 金球奖 AND 张扬 THEN C罗

R8:IF欧洲 AND 金球奖 AND 低调 THEN 里贝里

R9:IF欧洲AND前场球员AND电梯球AND国际足联主席得罪了他

THEN C罗

R10:IF南美AND低调AND前场球员AND打破年度进球记录THEN 梅西 R11:IF欧洲AND前场球员AND各种高难度AND人称足坛吕布THEN 伊布 R12:IF欧洲AND中场球员AND手术刀般的传球 THEN 厄齐尔

R13:IF欧洲AND中场球员AND马赛回旋THEN齐达内

R14:IF南美AND中场球员AND低调AND天体之王 THEN 孔卡

R15:IF亚洲AND后场球员 AND中国第二个亚洲足球先生 THEN 郑智

推理树(以R9为例):

一个球星选择的专家系统。

六、 程序演示结果

主界面如下:

一个球星选择的专家系统。

推理结果如下(以推理规则R9为例):

七、 程序关键代码

void CMyDlg::OnOK()

{

// TODO: Add extra validation here

UpdateData(TRUE);

if(m_diqu=="欧洲"&&m_jinqiu==1&&m_xingge=="张扬")

MessageBox("这位球星是C罗");

else if(m_diqu=="欧洲"&&m_jinqiu==1&&m_xingge=="低调") MessageBox("这位球星是里贝里");

else if(m_diqu=="欧洲"&&m_jinqiu==1)

MessageBox("C罗、里贝里都有可能,请输入更详细的筛选条件"); else if(m_diqu=="南美"&&m_jinqiu==1)

MessageBox("这位球星是梅西");

else if(m_jinqiu==1)

MessageBox("梅西、C罗、里贝里都是热门人选,请输入更详细的筛选条件");

else if(m_diqu=="欧洲"&&m_jingong==1&&m_teji=="电梯球

"&&m_shiji=="国际足联主席得罪了他")

一个球星选择的专家系统。

MessageBox("这位球星是C罗");

else if(m_diqu=="南美"&&m_xingge=="低调

"&&m_jingong==1&&m_shiji=="打破年度进球记录")

MessageBox("这位球星是梅西");

else if(m_diqu=="欧洲"&&m_jingong==1&&m_teji=="各种高难度"&&m_shiji=="人称足坛吕布")

MessageBox("这位球星是伊布");

else if(m_diqu=="欧洲"&&m_zhugong==1&&m_teji=="手术刀般的传球")

MessageBox("这位球星是厄齐尔");

else if(m_diqu=="亚洲"&&m_fangshou==1&&m_shiji=="中国第二个亚洲足球先生")

MessageBox("这位球星是郑智");

else if(m_diqu=="南美"&&m_xingge=="低调

"&&m_zhugong==1&&m_shiji=="天体之王")

MessageBox("这位球星是孔卡");

else if(m_diqu=="欧洲"&&m_zhugong==1&&m_teji=="马赛回旋") MessageBox("这位球星是齐达内");

else if(m_jingong==1)

MessageBox("该球星活动区域为前场");

else if(m_zhugong==1)

MessageBox("该球星活动区域为中场");

else if(m_fangshou==1)

MessageBox("该球星活动区域为后场");

//CDialog::OnOK();

}

八、 总结与体会

通过做这次专家系统的实验,我对正向推理方式有了更深的理解。同时,通过做人机界面,我对MFC的编程应用有了进一步的了解。另外,我也从中认识到了自己在编程方面的许多不足,这也给了我动力去扩充自己的知识储备,从而能够更好的应对以后更多的课程作业。

…… 此处隐藏:981字,全部文档内容请下载后查看。喜欢就下载吧 ……
专家系统实验报告(MFC实现).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1415357.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)