《智能决策技术》实验报告.docx

上传人:b****7 文档编号:16556099 上传时间:2023-07-14 格式:DOCX 页数:28 大小:1.01MB
下载 相关 举报
《智能决策技术》实验报告.docx_第1页
第1页 / 共28页
《智能决策技术》实验报告.docx_第2页
第2页 / 共28页
《智能决策技术》实验报告.docx_第3页
第3页 / 共28页
《智能决策技术》实验报告.docx_第4页
第4页 / 共28页
《智能决策技术》实验报告.docx_第5页
第5页 / 共28页
《智能决策技术》实验报告.docx_第6页
第6页 / 共28页
《智能决策技术》实验报告.docx_第7页
第7页 / 共28页
《智能决策技术》实验报告.docx_第8页
第8页 / 共28页
《智能决策技术》实验报告.docx_第9页
第9页 / 共28页
《智能决策技术》实验报告.docx_第10页
第10页 / 共28页
《智能决策技术》实验报告.docx_第11页
第11页 / 共28页
《智能决策技术》实验报告.docx_第12页
第12页 / 共28页
《智能决策技术》实验报告.docx_第13页
第13页 / 共28页
《智能决策技术》实验报告.docx_第14页
第14页 / 共28页
《智能决策技术》实验报告.docx_第15页
第15页 / 共28页
《智能决策技术》实验报告.docx_第16页
第16页 / 共28页
《智能决策技术》实验报告.docx_第17页
第17页 / 共28页
《智能决策技术》实验报告.docx_第18页
第18页 / 共28页
《智能决策技术》实验报告.docx_第19页
第19页 / 共28页
《智能决策技术》实验报告.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《智能决策技术》实验报告.docx

《《智能决策技术》实验报告.docx》由会员分享,可在线阅读,更多相关《《智能决策技术》实验报告.docx(28页珍藏版)》请在冰点文库上搜索。

《智能决策技术》实验报告.docx

《智能决策技术》实验报告

 

《智能决策技术》

实验报告册

 

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框架的代码太多,所以只展示出调用获取系数的代码和实现预测的代码)

publicListgetList(){

returncaseMapper.getCaseList();//获取数据库中数据

}

publicDoublecount_case(Integernum){

Listlist=getList();

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那样那么复杂。

实验总结(手写):

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2