数学建模——评价模型之层次分析法


前言

层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。

即层次分析法可用于定性分析。


一、层次分析法的应用场景

层次分析法(AHP)是一种定性与定量分析结合的方法,可用于做决策,在几种方案中做选择,也可以对样本进行评价,还可以进行赋权,可作为主观赋权的方法与客观赋权法结合使用。适用范围很广。

二、层次分析法的模型建立

主要步骤:

  1. 建立递阶层次结构模型;
  2. 构造出各层次中的所有判断矩阵;
  3. 层次单排序及一致性检验;
  4. 层次总排序及一致性检验。

2.1递阶层次结构的建立

在AHP中,复杂问题被分解为元素,这些元素又按其属性及关系形成若干层次,上一层次的元素作为准则对下一层次有关元素起支配作用。
这些层次可以分为三类:

  • 最高层(目标层):只有一个元素,一般是分析问题的预定目标或理想结果。
  • 中间层(准则层):包含了为实现目标所涉及的中间环节或准则,可以不只一层。
  • 最底层(方案层):包括了各种措施、决策方案。

一般层次的数量不受限制,每一层次中各元素所支配的元素一般不要超过 9 个。

例1

假期旅游有 P 1 P_1 P1 P 2 P_2 P2 P 3 P_3 P3 3 个旅游胜地供你选择,试确定一个最佳地点。在此问题中,你会根据诸如景色、费用、居住、饮食和旅途条件等一些准则去反复比较 3 个侯选地点。可以建立如图1的层次结构模型。
在这里插入图片描述

2.2 构造判断矩阵

判断矩阵表示针对上一层次某因素而言,本层次与之有关的各因素之间的相对重要性。假设A层中因素 A k A_k Ak与下一层次中因素 B 1 , B 2 , . . . , B n B_1,B_2,...,B_n B1,B2,...,Bn有联系,则我们构造的判断矩阵如下表:
在这里插入图片描述
b i j b_{ij} bij是对于 A k A_k Ak而言, B i B_i Bi B j B_j Bj的相对重要性的数值表示。
b i j b_{ij} bij通常取1、3、5、7、9及它们的倒数,其含义为:
在这里插入图片描述
而2、4、6、8表示第 i i i个因素相对于第 j j j个因素的影响介于上述两个相邻等级之间。

另外,若因素 i i i 与因素 j j j 的重要性之比为 b i j b_{ij} bij ,那么因素 j j j 与因素 i i i 重要性之比为 b j i = 1 / a i j b_{ji} =1/ a_{ij} bji=1/aij

2.3 层次单排序及一致性检验

判断矩阵 A 对应于最大特征值 λ m a x λ_{max} λmax 的特征向量 W W W ,经归一化后即为同一层次相应因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。

这句话不好理解,看下面这个公式:
A W = λ max ⁡ W A W=\lambda_{\max } W AW=λmaxW
其中 A A A为前面的判断矩阵, λ m a x \lambda _{max} λmax A A A的最大特征根, W W W为对应于 λ m a x \lambda _{max} λmax的正规化特征向量, W W W 的分量 W i W_i Wi 即为相应因素单排序的权值。

对判断矩阵的一致性检验的步骤如下:

  1. 计算一致性指标 C I CI CI
    C I = λ max ⁡ − n n − 1 C I=\frac{\lambda_{\max }-n}{n-1} CI=n1λmaxn
  2. 为检验判断矩阵一致性,引入平均一致性指标 R I RI RI进行判断。
    下表给出了500个样本判断矩阵计算的平均随机一致性指标检验值,查表即可。
    在这里插入图片描述
  3. 计算一致性比例 C R CR CR
    C R = C I R I C R=\frac{C I}{R I} CR=RICI
    C R < 0.10 CR < 0.10 CR<0.10 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。
  4. 层次总排序及一致性检验
    层次总排序为确定某层所有因素对于总目标相对重要性的排序权值的过程。对于上一层次A,其包含m个因素A1,A2,…,Am,其层次总排序权值为a1,a2,…,am,下一层次B包含n个元素B1,B2,…,Bn,它们对于因素Aj的层次单排序权值分别为bj1,bj2,…,bjn(当Bi与Aj无联系时,bji=0)此时B层次总排序权值由下表给出:
    在这里插入图片描述
    对层次总排序也需作一致性检验,检验仍象层次总排序那样由高层到低层逐层进行。这是因为虽然各层次均已经过层次单排序的一致性检验,各成对比较判断矩阵都已具有较为满意的一致性。但当综合考察时,各层次的非一致性仍有可能积累起来,引起最终分析结果较严重的非一致性。
    设 B 层中与 A j A_j Aj 相关的因素的成对比较判断矩阵在单排序中经一致性检验,求得单排序一致性指标为 C I ( j ) , ( j = 1 , . . . , m ) CI( j), ( j = 1,...,m ) CI(j),j=1,...,m,相应的平均随机一致性指标为 R I ( j ) RI( j) RI(j) C I ( j ) CI( j) CI(j) R I ( j ) RI( j) RI(j) 已在层次单排序时求得),则 B 层总排序随机一致性比例为
    C R = ∑ j = 1 m C I ( j ) a j ∑ j = 1 m R I ( j ) a j C R=\frac{\sum_{j=1}^{m} C I(j) a_{j}}{\sum_{j=1}^{m} R I(j) a_{j}} CR=j=1mRI(j)ajj=1mCI(j)aj
    C R < 0.10 CR < 0.10 CR<0.10 时,认为层次总排序结果具有较满意的一致性并接受该分析结果

三、层次分析法的应用案例

例2

挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生。该生根据已有信息建立了一个层次结构模型,如图 2 所示。
在这里插入图片描述
准则层的判断矩阵如表 4 所示(这一部分需要建模者自己构造,如果比赛时为了增加可靠性,可以说是专家评估或者调查问卷结果)。
在这里插入图片描述
方案层的判断矩阵如表 5 所示。
在这里插入图片描述
层次总排序的结果如表 6 所示。
在这里插入图片描述

四、代码

matlab代码如下:

clc,clear 
fid=fopen('txt3.txt','r'); 
n1=6;n2=3; 
a=[]; 
for i=1:n1 
 tmp=str2num(fgetl(fid)); 
 a=[a;tmp]; %读准则层判断矩阵
end 
for i=1:n1 
 str1=char(['b',int2str(i),'=[];']); 
 str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']); 
 eval(str1); 
 for j=1:n2 
 tmp=str2num(fgetl(fid)); 
 eval(str2); %读方案层的判断矩阵
 end
 end 
ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标
[x,y]=eig(a); 
lamda=max(diag(y)); 
num=find(diag(y)==lamda); 
w0=x(:,num)/sum(x(:,num)); 
cr0=(lamda-n1)/(n1-1)/ri(n1) 
for i=1:n1 
 [x,y]=eig(eval(char(['b',int2str(i)]))); 
 lamda=max(diag(y)); 
 num=find(diag(y)==lamda); 
 w1(:,i)=x(:,num)/sum(x(:,num)); 
 cr1(i)=(lamda-n2)/(n2-1)/ri(n2); 
end 
cr1, ts=w1*w0, cr=cr1*w0

纯文本文件txt3.txt中的数据格式如下::

1 1 1 4 1 1/2 
1 1 2 4 1 1/2 
1 1/2 1 5 3 1/2 
1/4 1/4 1/5 1 1/3 1/3 
1 1 1/3 3 1 1 
2 2 2 3 3 1 
1 1/4 1/2 
4 1 3 
2 1/3 1 
1 1/4 1/5 
4 1 1/2 
5 2 1 
1 3 1/3 
1/3 1 1/7 
3 7 1 
1 1/3 5 
3 1 7 
1/5 1/7 1 
1 1 7 
1 1 7 
1/7 1/7 1 
1 7 9 
1/7 1 1 
1/9 1 1
  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
层次分析法(Analytic Hierarchy Process,AHP)是一种系统性的层次结构分析方法,可以用于处理多目标决策问题。下面是使用AHP进行画图及比较矩阵的步骤: 1.建立层次结构:将问题分解为若干层次,确定层次之间的关系,形成一个层次结构。 2.构造比较矩阵:对于同一层次的各个因素进行两两比较,得到一个比较矩阵。比较矩阵的元素为两个因素之间的相对重要性,通常采用1-9的尺度进行评价,其中1表示两个因素同等重要,9表示一个因素比另一个因素重要程度是另一个因素的9倍。 3.计算权重:通过计算比较矩阵的特征向量,可以得到每个因素的权重,即其在整个层次结构中的重要程度。特别地,对于AHP来说,特征向量需要进行归一化处理,使其元素和为1。 4.一致性检验:检验比较矩阵的一致性,即比较矩阵是否符合一定的数学规律。如果比较矩阵的一致性不好,需要进行调整,直到比较矩阵的一致性得到满意的结果。 5.绘制层次结构图:根据层次结构及各因素的权重,绘制出层次结构图。 6.进行灵敏度分析:对于各因素的权重进行不同的假设,分析结果的变化情况,以得到对于不同假设情况下的最优决策。 需要注意的是,AHP方法在实际应用中需要进行多次比较矩阵的构造,每次构造的比较矩阵都需要进行一致性检验。此外,选择合适的尺度和正确的比较是比较矩阵构造的关键。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值