2021数模学习系列笔记
第一讲-1 评价类模型-层次分析法模型讲解(2021.7.25)
目录
文章目录
一、前言
① 评价类问题:选转那种方案最好、哪位员工或运动员变现的更优秀。确定评价指标,形成评价体系。
② 层次分析法:简称AHP,建模比赛中最基础的模型之一。
二、模型介绍
(一)打分法
评价类问题可以用打分解决!
使用打分法解决评价问题,只需要将下面的表格补充完成即可:
同颜色的单元格的和为1,橙黄绿色的位置是各方案各指标的打分。
(二)评价类建模需要思考的问题
1.我们评价的目标是什么(对应解决的问题)
2.为了达到目标有哪几种可选的方案?
3.评价的准则或者说指标是什么?(我们根据什么东西来评价好坏,需要查阅背景资料,常识以及搜索资料选择出最合适的指标)优先选择知网等搜索相关的指标因素,有理可据
推荐网站:虫部落-快搜
(三)确定指标的权重
用分而治之的思想确定各指标的权重
解决方法:两个两个指标进行比较,最终根据两辆比较的结果来推算出权重
1.层次分析法思想中的标度
填写完表格后即为:
特点:5*5矩阵A,对应元素为
a
i
j
a_{ij}
aij
2.判断矩阵
(1)aij表示与j相比,i的重要程度。
(2)i=j时,两个指标相同,因此同样重要记为1,主对角元素为1.
(3)aij>0,aij*aji=1**(正互反矩阵)**
上面这个矩阵就是层次分析法中的判断矩阵,根据判断矩阵得出各项指标的权重和各方案在各指标的得分情况
可能会出现的矛盾之处,即:A>B,A=C,B>C
一致矩阵满足:
a
i
j
=
i
的
重
要
程
度
j
的
重
要
程
度
,
a
j
k
=
j
的
重
要
程
度
k
的
重
要
程
度
,
a
i
k
=
i
的
重
要
程
度
k
的
重
要
程
度
=
a
i
j
×
a
j
k
a_{ij}=\frac{i的重要程度}{j的重要程度},a_{jk}=\frac{j的重要程度}{k的重要程度},a_{ik}=\frac{i的重要程度}{k的重要程度}=a_{ij}\times a_{jk}
aij=j的重要程度i的重要程度,ajk=k的重要程度j的重要程度,aik=k的重要程度i的重要程度=aij×ajk
特点:各行(各列)的元素成相同的倍数关系。
在层次分析法当中,我们构造的判断矩阵均是正互反矩阵,但不一定是一致矩阵(矛盾现象的出现),在使用判断矩阵求权重之前,必须对其进行一致性检验。
3.一致性检验
步骤:
第一步:计算一致性指标CI
C
I
=
λ
m
a
x
−
n
n
−
1
,
λ
m
a
x
为
判
断
矩
阵
的
最
大
特
征
值
,
n
为
主
对
角
线
元
素
之
和
CI=\frac{\lambda_{max}-n}{n-1},\lambda_{max}为判断矩阵的最大特征值,n为主对角线元素之和
CI=n−1λmax−n,λmax为判断矩阵的最大特征值,n为主对角线元素之和
第二步:查找对应的平均随机一致性指标RI
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RI | 0 | 0 | 0.52 | 0.89 | 1.12 | 1.26 | 1.36 | 1.41 | 1.46 | 1.49 | 1.52 | 1.54 | 1.56 | 1.58 | 1.59 |
第三步:计算一致性比例CR
C
R
=
C
I
R
I
CR=\frac{CI}{RI}
CR=RICI
如果CR<0.1,则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。
4.计算权重
一致性矩阵计算权重:
针
对
某
一
指
标
的
各
项
目
权
重
=
第
一
列
的
各
项
目
元
素
第
一
列
元
素
之
和
针对某一指标的各项目权重=\frac{第一列的各项目元素}{第一列元素之和}
针对某一指标的各项目权重=第一列元素之和第一列的各项目元素
判断矩阵计算权重(不具有一致性):
①算术平均法:
第一步:将判断矩阵按照列归一化(每一个元素除以其所在列的和)
第二步:将归一化的各列相加(按行求和)
第三步:将相加侯得到的向量中每个元素除以n即可得到权重向量
②几何平均法:
第一步:将A的元素按照行相乘得到一个新的列向量
第二步:将新的向量的每个分量开n次方
第三步:对该列向量进行归一化得到权重向量
③特征值求权重(判断矩阵的一致性可以接受,使用最多的 ):
第一步:求出矩阵A的最大特征值以及其对应的特征向量
第二步:对求出的特征向量进行归一化即可得到我们的权重
权重的和应为1
求矩阵A的权重代码(用matlab实现):
%% 注意:在论文写作中,应该先对判断矩阵进行一致性检验,然后再计算权重,因为只有判断矩阵通过了一致性检验,其权重才是有意义的。在下面的代码中,我们先计算了权重,然后再进行了一致性检验,这是为了顺应计算过程,事实上在逻辑上是说不过去的。因此大家自己写论文中如果用到了层次分析法,一定要先对判断矩阵进行一致性检验.而且要说明的是,只有非一致矩阵的判断矩阵才需要进行一致性检验。如果你的判断矩阵本身就是一个一致矩阵,那么就没有必要进行一致性检验。
disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A);
% % % % % % % % % % % % %方法1: 算术平均法求权重% % % % % % % % % % % % %
Sum_A = sum(A);
SUM_A = repmat(Sum_A,n,1);
Stand_A = A ./ SUM_A;
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2)./n)
% % % % % % % % % % % % %方法2: 几何平均法求权重% % % % % % % % % % % % %
Prduct_A = prod(A,2);
Prduct_n_A = Prduct_A .^ (1/n);
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A))
% % % % % % % % % % % % %方法3: 特征值法求权重% % % % % % % % % % % % %
[V,D] = eig(A);
Max_eig = max(max(D));
[r,c]=find(D == Max_eig , 1);
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )
% % % % % % % % % % % % %下面是计算一致性比例CR的环节% % % % % % % % % % % % %
CI = (Max_eig - n) / (n-1);
RI=[0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; %注意哦,这里的RI最多支持 n = 15
% 这里n=2时,一定是一致矩阵,所以CI = 0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
disp('因为CR<0.10,所以该判断矩阵A的一致性可以接受!');
else
disp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
end
%%注意:代码文件仅供参考,一定不要直接用于自己的数模论文中
%% 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭
%% 如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231(必看)
(四)计算各方案的得分
计算出指标的权重和各方案对于该指标的权重,填入表中再计算得分**(可以用Excal计算结果,F4可以锁定单元格)**
最佳方案为得分最高的方案
三、总结
层次分析法步骤:
第一步:分析系统中各因素之间的关系,建立系统的递阶层次结构(对应本章二(二)需要思考的三个问题,可以用SmartArt/亿图图示生成下图)。
亿图图示简单演示:
(1)新建组织结构图——自定义组织结构图
(2)1个长方形方格,并复制出8个和它同大小的长方形
(3)将这9个长方形排成3行(1+5+3)
(4)使用对齐和分布这两个功能让它们排列的有序
(5)选择文本工具,在这些长方形里面输入文字
(6)使用箭头连接线工具中的直线连接上这些长方形
(7)保存后选择文件——导出&发送——Word
(8)将Word中的图像复制到你的论文中即可,别忘了加上标题。
注:同类型的软件如Visio也是可以的~
如果不想下载软件,可以使用在线的ProcessOn,也很方便。
第二步:构造判断矩阵
目标层对准则层的判断矩阵和准则层对方案层的判断矩阵
准则层-方案层的判断矩阵数值要结合实际来填写,要有具体的指标,如果题目中有其他数据可以考虑利用这些数据进行计算。
第三步:由判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验(检验通过权重才能用,否则需要修改)
三种方法计算权重建议都使用,在文章的最后加上下面这段话:
以往的论文利用层次分析法解决实际问题时, 都是采用其中某一种方法求权重, 而不同的计算方法可能会导致结果有所偏差“ 为了保证结果的稳健性, 本文采用了三种方法分别求出了权重, 再根据得到的权重迮阵计算各方案的得分. 并进行排序和综合分析,这样避免了采用单一方法所产生的偏差, 得出的结论将更全面、更有效。
第四步:计算各层元素对系统目标的合成权重,并进行排序
局限性
(1)评价的决策层不能太多,否则n太大,判断矩阵和一致矩阵差异太大
(2)若决策层的指标数据已知,我们如何利用这些数据使得结果更加准确呢?
四、拓展模型
多个准则层问题、某种方案不对应全部的准则、多个方案对应一个准则…
. 并进行排序和综合分析,这样避免了采用单一方法所产生的偏差, 得出的结论将更全面、更有效。**
第四步:计算各层元素对系统目标的合成权重,并进行排序
局限性
(1)评价的决策层不能太多,否则n太大,判断矩阵和一致矩阵差异太大
(2)若决策层的指标数据已知,我们如何利用这些数据使得结果更加准确呢?
四、拓展模型
多个准则层问题、某种方案不对应全部的准则、多个方案对应一个准则…