《智能决策技术》实验报告.docx
- 文档编号:11733613
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:28
- 大小:1.01MB
《智能决策技术》实验报告.docx
《《智能决策技术》实验报告.docx》由会员分享,可在线阅读,更多相关《《智能决策技术》实验报告.docx(28页珍藏版)》请在冰豆网上搜索。
《智能决策技术》实验报告
《智能决策技术》
实验报告册
2018-2019学年第1学期
班级:
信管151
学号:
*********
**************
授课教师:
杨丽华实验教师:
杨丽华
实验学时:
16实验组号:
1
信息管理系
实验一有事前信息的决策树技术的操作应用
实验类型:
验证性实验学时:
2
实验步骤:
某石油公司的决策人,打算投资开发某油田。
根据现有资料,预计这口油井有高产、低产两种不同状态,分别记为S1、S2。
高产可获利润400万元,而低产时将净亏损200万元,已知这两种情况出现的概率分别为:
P(S1)=0.6,P(S2)=0.4,一般来说,常见的地质结构有“好”、“中等”、“差”3种,分别记为C1、C2、C3,为判断该地区属于哪种结构,可作进一步勘测,勘测费用为10万元。
已知在不同的油井状态下,勘测结果为不同地质结构的概率如下,P(C1/S1)=0.7,P(C2/S1)=0.2,P(C3/S1)=0.1,P(C1/S2)=0.3,P(C2/S2)=0.1,P(C3/S2)=0.6,问:
应采取何种行动方案,才能获取最大收益?
重点利用全概率公式:
1
p(ck)=∑p(ck|sj)p(sk)
j=1
和贝叶斯公式:
p(s
j|ck)=
p(ck|sj)p(sj)
2
(k=1,2,3;j=1,2)
∑p(ck|sj)p(sj)
j=1
求后验概率部分,得出各方案在不同状态下的概率P(Sj/Ck),以求出最大期望值。
要求实验操作过程中,学生自己输入已有数据,并基于已知数据求出后验概率,然后求出不同方案的期望值,进行剪枝决策,得出最优方案。
具体过程如下:
Ø第一步:
将已知数据输入excel中,如下表所示。
油田开发决策
开发结果为高产油田是的利润(万元)
40
开发结果为低产油田是的亏损额(万元)
-200
据资料,油田高产概率为P(s1)
60%
据资料,油田低产概率为P(s2)
40%
勘测费用(万元)
-10
根据资料,不同状态油井的额各勘测结果:
高产油井被勘测为“结构好”的概率P(C1|s1)
0.7
高产油井被勘测为“结构中”的概率P(C2|s1)
0.2
高产油井被勘测为“结构差”的概率P(C3|s1)
0.1
低产油井被勘测为“结构好”的概率P(C1|s2)
0.3
低产油井被勘测为“结构中”的概率P(C2|s2)
0.1
低产油井被勘测为“结构差”的概率P(C3|s2)
0.6
第二步:
用贝叶斯公式计算各自然状态下的后验概率P(Sj│Ck),用概率论中的全概率公式计算勘测结果为Ck的概率P(Ck)。
由公式
p(s
j|ck)=
p(ck|sj)p(sj)
2
(k=1,2,3;j=1,2)
∑p(ck|sj)p(sj)
j=1
计算在不同勘测结果下、油井状态为高产或低产的后验概率。
由公式
1
p(ck)=∑p(ck|sj)p(sk)
j=1
计算勘测结果为Ck的概率P(Ck)
在相关的单元格中输入上述公式,其计算结果下表所示:
不同地质的概率:
“结构好”的概率P(C1)
=C12*C6+C15*C7
“结构中”的概率P(C2)
=C13*C6+C16*C7
“结构差”的概率P(C3)
=C14*C6+C17*C7
计算不同的勘测结果下出现不同状态的概率:
被勘测为“结构好”实为高产油井的概率P(s1|C1)
=C6*C12/C20
被勘测为“结构好”实为低产油井的概率P(s2|C1)
=1-C25
被勘测为“结构中”实为高产油井的概率P(s1|C2)
=C6*C13/C21
被勘测为“结构中”实为低产油井的概率P(s2|C1)
=1-C27
被勘测为“结构差”实为高产油井的概率P(s1|C3)
=C6*C14/C22
被勘测为“结构差”实为低产油井的概率P(s2|C3)
=1-C29
不同地质的概率:
“结构好”的概率P(C1)
0.54
“结构中”的概率P(C2)
0.16
“结构差”的概率P(C3)
0.3
计算不同的勘测结果下出现不同状态的概率:
被勘测为“结构好”实为高产油井的概率P(s1|C1)
0.78
被勘测为“结构好”实为低产油井的概率P(s2|C1)
0.22
被勘测为“结构中”实为高产油井的概率P(s1|C2)
0.75
被勘测为“结构中”实为低产油井的概率P(s2|C1)
0.25
被勘测为“结构差”实为高产油井的概率P(s1|C3)
0.2
被勘测为“结构差”实为低产油井的概率P(s2|C3)
0.8
Ø第三步:
构造决策树。
构造的决策树的结果如下图:
Ø第四步:
计算各方案的期望收益值
决策树中各方案的期望收益计算是从右向左进行的,首先考虑第二级决策,当勘测结果是“结构好”时,如果采取“不开发”方案,则期望收益为0;如果采取“开发”方案,则当自然状态为“高产”(其修正后的后验概率为0.78)时,收益为400,当自然状态为“低产”,(其修正后的后验概率为0.22)时,收益为-200,所以,“开发”方案的期望收益=400*0。
78+(-200)*0.22=268(万元)。
该值可以单元格P19中输入=V17*T17+V21*T21获得.
实验结果:
比较两种方案的期望收益,选择“开发”方案。
所以当勘测结果为“结构好”时,应选择“开发”方案,其期望收益为268万元(这里暂时未扣除勘测费用)。
前去“不开发”这
方案一分支,并在“结构好”的概率分支上标上期望收益为268万元。
同理可得,当勘测结果为“结构中等”时,应采取“开发”方案,其期望收益为250万元;当勘测结果为“结构差”时,应采取“不开发”方案,其期望收益为0(这里暂时均未扣除勘测费用)。
比较三个方案的期望收益,取期望收益最大的方案作为最优方案,在单元格D16中输入=MAX(G10,G14,G30)得到最大期望收益值为175万元,可见方案“先勘测”的期望收益最大,为最优方案。
因此,本实验的最优决策结果是:
先勘测,当勘测结果为“结构好”或“结构中等”时开发,当勘测结果为“结果差”时,不开发,该决策的期望收益为175万元。
实验二应用层次分析法进行多目标决策
实验类型:
验证性实验学时:
2
实验目的:
熟悉并应用层次分析方法对多方案进行优劣排序,从而使学生掌握综合定性和定量两种方法解决问题的思维方式。
实验步骤:
某公司打算增添一台新设备,现有三种不同型号的设备,P1,P2,P3供选择,选择设备主要考虑的要素是功能、价格和维护,你将如何选择?
Ø第一步、建立递阶层次结构模型
实验结果:
决策结果P2最优。
实验三成本预测决策支持系统的开发
实验类型:
设计性实验学时:
4
实验目的:
掌握基于统一结构的决策支持系统的开发,理解模型库的组织和存储。
实验步骤:
某企业经连续观察,发现其生产的某产品与每批投入的产品件数是线性相关的,15组统计数据如表1所示。
现该企业拟投入三批产品,每批投入的产品件数分别为4100(百件),5300(百件),25000(百件)企业希望通过建立成本预测决策支持系统,利用一元线性回归模型来帮助预测每批产品的成本(百元)。
序号
产品件数
产品成本
1
53
53.42
2
91
84.53
3
87
80.87
4
49
52.45
5
14
25.6
6
98
87.12
7
78
72.93
8
82
76.5
9
58
55.14
10
33
41
11
45
49.51
12
52
53.16
13
16
26.22
14
68
66.04
15
61
59.26
实验要求:
1、需要建立相关的数据库,模型库,要有人机交互界面。
1、可以使用两个模型:
最小二乘法模型及一元线性回归模型。
2、使用熟悉的程序语言进行成本预测决策支持系统的开发,
要求写出系统运行结构图,主要程序代码,运行结果。
Ø第一步:
在mysql数据库中创建数据表t_case
createtableifnotexistst_case(
idintauto_increment,
t_numint,
t_casedouble,
primarykey(id)
)engine=innodbcharset=utf8;
Ø第二步:
将表1的数据插入数据表t_case中
insertintot_case
values
(null,53,53.42),(null,91,84.53),(null,87,80.87),
(null,49,52.45),(null,14,25.6),(null,98,87.12),
(null,78,72.93),(null,82,76.5),(null,58,55.14),
(null,33,41),(null,45,49.51),(null,52,53.16),
(null,16,26.22),(null,68,66.04),(null,61,59.26);
Ø第三步:
在后端利用java实现最小二乘法模型(主要点这里的算法)
参考链接:
截图:
主要代码:
/**
*计算x的系数a
*@paramx,y
*@returna
*/
publicstaticdoublegetA(double[]x,double[]y){
intn=x.length;
return(n*pSum(x,y)-sum(x)*sum(y))/(n*sqSum(x)-Math.pow(sum(x),2));
}
/**
*计算常量系数b
*@paramx,y,a
*@returnb
*/
publicstaticdoublegetB(double[]x,double[]y,doublea){
intn=x.length;
returnsum(y)/n-a*sum(x)/n;
}
/**
*计算常量系数b
*@paramx,y
*@returnb
*/
publicstaticdoublegetC(double[]x,double[]y){
intn=x.length;
doublea=getA(x,y);
returnsum(y)/n-a*sum(x)/n;
}
//计算和值
privatestaticdoublesum(double[]ds){
doubles=0;
for(doubled:
ds)s=s+d;
returns;
}
//计算开平方和值
privatestaticdoublesqSum(double[]ds){
doubles=0;
for(doubled:
ds)s=s+Math.pow(d,2);
returns;
}
//计算x和y积的和值
privatestaticdoublepSum(double[]x,double[]y){
doubles=0;
for(inti=0;i returns; } Ø第四步: 利用SSM框架实现该系统 上面的最小二乘法模型的java代码时写在util包中的LeastSquares类中,根据前一个步骤可以知道我们需要做的是先获取数据库中的数据,分别存在两个数组中,再以这两个数组为参数调用LeastSquares类中的方法获取x的系数a和常量系数b,这样我们就可以有一个模型为y=a*x+b;这样后台的逻辑就实现了; 主要代码: (由于涉及到SSM框架的代码太多,所以只展示出调用获取系数的代码和实现预测的代码) publicList returncaseMapper.getCaseList();//获取数据库中数据 } publicDoublecount_case(Integernum){ List doublea[]=newdouble[list.size()]; doubleb[]=newdouble[list.size()]; for(inti=0;i a[i]=list.get(i).getTnum(); b[i]=list.get(i).getTcase(); } doublea1=LeastSquares.getA(a,b);//调用方法获取x的系数 doubleb1=LeastSquares.getB(a,b,a1);//获取常量系数 doublec=a1*num+b1;//根据产品件数预测成本 returnc; } SSM框架的基本思路: entity包中是一些实体包,一个类Case是对应的数据库中的Case表,也就是该实验的实验数据的表,另一个类ResponseResult是由于前端使用的ajax异步提交数据,而特此包装的一个类; mapper包是一个操作数据库的包,一个接口CaseMapper定义了获取数据库中所有数据的方法,并在配置文件中CaseMapper.xml中定义了获取数据库数据的SQL语句; service包是业务包,mapper包是获取了数据库中数据,但是具体的业务是需要在这里写的,例如此处具体实现业务的类CaseServiceImpl,定义了一个预测成本的方法,并实现它; util包是工具包,也就是给其他包中的类使用的,例如这里具体最小二乘法的算法就是写在该包中的LeastSquares类中; controller包是控制器包,主要是控制前端和业务层的关系,并返回前端数据的类; 还有就是一些SSM框架基本的配置文件,例如配置数据库连接的db.properties、配置数据源的spring_dao.xml、配置业务层的spring_service.xml、配置映射的spring_mvc.xml; 再就是最好前端的文件夹webapps,里面对应的html文件和一些使用到的js和css; Ø第五步: 前端运行结果(由于重点不在前端,所以前端写的略微简单) 实验结果: 通过本次实验,了解了最小二乘法的算法模型。 最小二乘法即为一种数学优化技术。 它通过最小化误差的平方和寻找数据的最佳函数匹配。 利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。 最小二乘法还可用于曲线拟合。 通过一元线性模型应用来理解最小二乘法。 通过该实验也进一步加深了SSM框架的了解。 SSM框架即为Spring+SpringMVC+Mybatis的开源框架整合的框架,常作为Web项目的框架。 利用这个框架写成的项目能有以下特性: 1、易于维护2、效率高3、可读性高;在该项目中主要点在于算法的独特,其他的点利用框架的概念是很容易就能实现的。 在数学角度上来说,有很多常用的算法或者模型;比如一元线性回归模型、最小二乘法模型、多元线性回归模型。 在实际开发中,这些是我们可能运用的算法,所以也是需要在平常去了解这方面的算法。 实验四专家系统开发工具CLIPS 实验类型: 综合性实验学时: 4 实验目的: 掌握专家系统的一般结构,熟悉专家系统开发工具CLIPS的语法和使用。 实验步骤: Ø第一步: 下载并安装Clips软件 Ø第二步: 运行并熟悉Clips CLIPS是一个专家系统,它用C语言编定。 全称是TheCLanguageIntegratedProductionSystem.它可以应用到很多的系统上MicrosoftWindows,Macintosh, VAX11/780等。 事实上,由于CLIPS由C语言编写,所以理论上,只要有C语言的编绎器,我们可以将CLIPS移值到任何的系统上。 Clips常用指令: (1)facts用于显示当前的事实。 (2)agenda用于显示当前可以执行的规则(并列出满足条件的事实) (3)run当规则和事实都有了后,这个命令用来启用程序 (4)reset重新初始化事实,初始化后,会自动的给系统加上Fact-0号事实 (5)clear清除所有的规则和事实以及对象实例 (6)deftemplate定义模板,这个模板类似C语言中的Structure,用reset命令可以实例化模板 (7)deffacts-定义事实模板,实例化与(deftemplate)相同 Ø第三步: 实际运行一个专家系统 (1)导入文件File->Load (2)打开文件并运行 (3)在事实库中可以看到显示的内容 (4)最后可以查看诊断结果 Ø第四步: 了解Clips其他窗口 实验结果: 在这次实验中,我了解了Clips这个强大的软件。 Clips是一个专家系统工具。 专家系统可以说是人工智能技术的一个重要分支。 Clips是一个基于C语言的集成生产系统。 目前在国内,Clips在商业方面的应用相对较少,大多数用于科研方面。 专家系统格式一个智能计算机程序系统,其内部含有大量的某个领域专家水平的知识经验,能利用人类专家的知识解决问题的方式来处理该领域问题。 也就是说,专家系统是一个具有大量的专门知识与经验,进而推理与判断,模拟人类专家的决策过程。 以便解决那些需要人类专家处理的复杂问题,简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。 实验五专家系统的开发 实验类型: 设计性实验学时: 4 实验目的: 掌握专家系统的开发过程,掌握根据产生式规则绘制相应推理树的方法。 实验步骤: Ø第一步: 明确实验目标 建立一个动物识别系统,用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等7种动物。 开发环境: 基于Eclipse的java语言的开发; Ø第二步: 根据动物特征,建立以下个规则 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有长腿and有黑白二色 then动物是鸵鸟 R14: if动物是鸟and不会飞and会游泳and有黑白二色 then 动物是企鹅 R15: if动物是鸟and善飞then动物是信天翁 Ø第三步: 开发实验过程 1.实验架构 2.规则库部分 主要由两个数组构成,一个是条件数组,也就是“因”的数组;还有一个是结果数组,也就是“果”的数组。 这两个数组相同下标的的值是成对的,固定的因导致固定的果。 再根据条件数组的模式,给定一个开关的数组,也就是设置初始的条件都为空,都没有选择。 3.推理机部分 4.显示界面的实现 显示界面可以分为四块,第一块是可供选择的条件部分的显示,第二部分是通过鼠标选择之后的显示部分,第三部分是开始识别按钮的部分,第四部分是最后结果的显示部分。 显示界面代码部分展示: 识别结果的显示逻辑 5.显示界面的实现 实验结果 通过该实验,了解了专家系统不是一定需要通过Clips才能实现,其实通过例如java这样的编程语言也可以实现。 在这个实验中,最重要的有两个点,一个点是推理机的部分,在推理之前是有一个条件库和事实库的,这个条件库和事实库是根据长期以往的社会经验总结下来的,这是这个代码能实现的基本原理。 另一个就是前端利用AWT部分实现的面板以及一些标签。 通过这些代码,用户可以直接看出识别的结果,不用像Clips这个软件通过复杂的操作才能看到结果,在操作上也简单了很多,不用像Clips那样需要在类似控制台的地方去输入条件,可以通过前端的方法去选择条件,可以更直接的显示,不用像Clips那样那么复杂。 实验总结(手写):
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能决策技术 智能 决策 技术 实验 报告