01【评价类】模型——层次分析法

01【评价类】模型——层次分析法 

目录

一、引述

二、 层次分析法的应用

 2.1 建立层次结构模型

 2.2 构造判断矩阵

2.2.1 求指标间的判断矩阵 

2.2.2 求对于各指标的方案之间的判断矩阵 

 2.3 一致性检验

 2.3.1 计算一致性指标CI

 2.3.2 查找对应的平均随机一致性指标RI

 2.3.3 计算一致性比例CR

 2.4 计算判断矩阵的权重

 2.4.1 算术平均法求权重

 2.4.2 几何平均法求权重

 2.4.3 特征值法求权重

三、层次分析法程序实现(MATLAB)

四、总结 


一、引述

引例:

小明在高考之后填报志愿在华中科技大学和武汉大学之间纠结,请你帮助小明如何抉择?

小明关心的指标及其权重:

学习氛围(0.4)

就业前景(0.3)

男女比例(0.2)

校园景色(0.1)

再让小明根据个指标给这两个学校打分(即得到这两个学校相对于某一指标的权重):

小明的打分如下:

 指标\学校                华科                武大

学习氛围                  0.7                  0.3

就业前景                  0.5                  0.5

男女比例                  0.3                  0.7

校园景色                  0.25                0.75

得到权重表

图1-1 权重表

再根据权重表计算两个学校的得分:

华科最终得分:0.515

0.7 * 0.4 + 0.5 * 0.3 + 0.3 *  0.2 + 0.25 * 0.1 = 0.515

武大最终得分:0.485

0.3 * 0.4 + 0.5 * 0.3 + 0.7 * 0.2 + 0.75 * 0.1 = 0.485

小结:

二、 层次分析法的应用

例题:填好志愿后,小明同学想出去旅游。在查阅了网上的攻略后,他初步选择 了苏杭、北戴河和桂林三地之一作为目标景点。 请你确定评价指标、形成评价体系来为小明同学选择最佳的方案。

评价的目标:选择最佳旅游景点;

评价的指标(准则):未知

评价的方案:苏杭、北戴河、桂林。

题目中并未告诉我们评价的指标是什么,因此需要我们自己查找(背景材料、常识以及网上搜集到的参考资料),可以得到这五个指标(景色、花费、居住、饮食、交通)。最终我们是为了得到一个权重表(如图1-1)来计算各个方案的得分,那我们可以像引例中的小明选择学校那样让小明自己给学校打分来确定权重表吗?显然是不行的,因为那样主观性较强,不容易使人所接受,因此提出一致矩阵法

一致矩阵法:

1.不把所有因素放在一起比较,而是两两相互比较

2.对此时采用相对尺度,以尽可能减少性质不同的诸多因素相互比较的困难以提高准确度。

2.1 建立层次结构模型

图2-1 旅游决策层次结构模型

 2.2 构造判断矩阵

图2-2 成对比较阵标度表

2.2.1 求指标间的判断矩阵 

 根据小明的回答再依照这张表来构造判断矩阵(成对比较矩阵):

Q1: 根据右边这个表,请你在选择旅游目的地时,比较景色和花费的重要程度。

A1:  我认为花费比景色略微重要(介于同等重要1和稍微重要3之间吧) 1/2

Q2: 根据右边这个表,请你在选择旅游目的地时,比较景色和居住的重要程度。

A2:  我认为景色比居住要重要一点(介于稍微重要3和明显重要5之间吧

... ...

因此得到A1~A5这五个指标之间的判断矩阵:

图2-3 关于指标的判断矩阵

2.2.2 求对于各指标的方案之间的判断矩阵 

Q1:你觉得苏杭的风景和北戴河相比如何?

A1:稍微好一点点吧(介于1‐3之间)

Q2:你觉得苏杭的风景和桂林相比如何?

A2:要明显的好哦(5)

Q3:你觉得北戴河的风景和桂林相比如何?

A3:稍微好一点点吧(介于1‐3之间)

... ...

对于各指标的三个方案之间的判断矩阵:

图2-4 对于景色指标的三个方案之间的判断矩阵

图2-5 对于花费指标的三个方案之间的判断矩阵

图2-6 对于居住指标的三个方案之间的判断矩阵

图2-7 对于饮食指标的三个方案之间的判断矩阵

图2-8 对于交通指标的三个方案之间的判断矩阵

 2.3 一致性检验

为什么要对判断矩阵进行一致性检验?

判断矩阵具有传递性,即:

以图2-7为例,a_{i}:苏杭,a_{j}:北戴河,a_{k}:桂林

a_{ij}= \tfrac{a_{i}}{a_{j}}(苏杭/北戴河=3)

a_{jk}= \tfrac{a_{j}}{a_{k}}(北戴河/桂林=1)

a_{ik}= \tfrac{a_{i}}{a_{k}}苏杭/桂林=4

理论上:a_{ik}=a_{ij}*a_{jk}=3*1=3,但实际上a_{ik}=4,所以出现了不一致的现象。

注明:允许不一致,但要确定不一致允许的范围。

1.若矩阵中每个元素a_{ij} > 0且满足a_{ij} * a_{jk} = 1 ,则我们称该矩阵为正互反矩阵

2.在层次分析法中,我们构造的判断矩阵均是正互反矩阵。 若正互反矩阵满足a_{ij} * a_{jk} = a_{ik} ,则我们称其为一致矩阵 

 2.3.1 计算一致性指标CI

                                                                CI=\tfrac{\lambda_{max}-n}{n-1}

注明:\lambda _{max}是n阶正互反矩阵A的最大特征值(不太理解)

2.3.2 查找对应的平均随机一致性指标RI

图2-9 平均随机一致性指标RI

 2.3.3 计算一致性比例CR

                                                                CR=\tfrac{CI}{RI} 

如果CR < 0.1,  则可认为判断矩阵的一致性可以接受;否则需要对 判断矩阵进行修正。

2.4 计算判断矩阵的权重

 2.4.1 算术平均法求权重

对于图2-4(对于景色指标的三个方案之间的判断矩阵):

仅使用第一列的数据,计算出来的权重:

苏杭 =  1 /(1+0.5+0.2)= 0.5882 

北戴河 = 0.5 /(1+0.5+0.2)= 0.2941

桂林 = 0.2 /(1+0.5+0.2)= 0.117

使用第二列的数据,计算出来的权重:

苏杭 =  2 /(2+1+0.5)= 0.5714

北戴河 = 1 /(2+1+0.5)= 0.2857

桂林 = 0.5 /(2+1+0.5)=  0.142

使用第三列的数据,计算出来的权重:

苏杭 =  5 /(5+2+1)= 0.625

北戴河 = 2 /(5+2+1)= 0.25

桂林 = 1 /(5+2+1)= 0.125

 由此可得到归一化的判断矩阵

 将归一化的矩阵按行求和

将求和之后的矩阵除以判断矩阵的阶数n

2.4.2 几何平均法求权重

几何平均法求权重有三步:

第一步:将A的元素按照行相乘得到一个新的列向量

第二步:将新的向量的每个分量开n次方

第三步:对该列向量进行归一化即可得到权重向

  

2.4.3 特征值法求权重

暂略

三、层次分析法程序实现(MATLAB)

下面代码只用了算术平均法方法计算权重:

disp('请输入判断矩阵:');
A=input('A=');
[n1,n2]=size(A);
error=0;

%检查该判断矩阵的合法性
if(n1~=n2)
    disp('矩阵A不是一个方阵');
    error=1;
end
if(sum(A<0,"all")>0)
    disp('矩阵A中的元素存在负数');
    error=1;
end
if(n1==n2 && sum(A'.*A~=1,"all")>0)
    disp('矩阵A不是一个正互反矩阵,即不是一个判断矩阵');
    error=1;
end
if(n1==n2 && n1>15)
    disp('矩阵A的阶数不能超过15');
    error=1;
end

if(error==0)
    %检查判断矩阵的一致性
    [~,n]=size(A);
    D=eig(A);
    max_D=max(D);
    CI=(max_D-n)/(n-1);
    RI=[0 0.00001 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=CI/RI(n);
    
    if(CR>=0.1)
        disp('判断矩阵A一致');
    else
    %算术平均法求权重
    s1=sum(A);
    A_rep=repmat(s1,n,1);
    s2=A./A_rep;
    s3=sum(s2,2);
    weight=s3/n;
    disp(weight);
    end
end

以图2-4的判断矩阵为例:

命令行窗口代码,

>> AHP
请输入判断矩阵:
A=[1,2,5;1/2,1,2;1/5,1/2,1;]
    0.5949
    0.2766
    0.1285 

四、总结 

层次分析法的实现流程:

图4-1 层次分析法实现流程

 小结:

  1. 一般层次分析的得评价指标(准则)需要自己上网翻阅资料查找来确定;
  2. 因为判断矩阵是人为构造,因此主观性太强(层次分析法的缺点);
  3. 在计算判断矩阵的权重时,可以三种方法都计算一遍以增强说服力。

疑问:

  1.  若一致性检验不通过该如何修改判断矩阵?
  2. 需要解释如何构造每个判断矩阵的过程吗?
  3. 构造每个判断矩阵需要查找相关资料并且用相关数据做支撑吗?
  4. 计算一致性指标CI的公式不太理解。

 结束语:本文部分内容来自于B站“数学建模学习交流”以及疯学网数学建模系列教程

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值