数模笔记——一、层次分析法(AHP)

一、层次分析法(AHP)

(一)适用问题

层次分析法适用于评价类问题。

评价类问题要求确定评价指标、形成评价体系来选择最佳的方案。

一般来说,题目中会给出评价的目标,可选的方案,但需要我们给出评价的准则,而这些准则则需要结合题目中的背景资料,常识及网上搜集的参考资料来确定。

(二)模型建立

1.画出层次结构图

分析系统中各因素之间的关系,建立系统的递阶层次结构

在这里插入图片描述

简而言之,评价某个对象的最终指标由各项指标决定,而这各项指标的总得分决定着各个方案的优劣。

2.构造判断矩阵

目标层与准则层的各个指标可以构成一个判断矩阵

如:判断矩阵o~c

在这里插入图片描述

准则层的各个指标分别可以与方案层的各个方案构成判断矩阵

如:判断矩阵c1~p

在这里插入图片描述

此外,还有c2~p, c3~p

表格中有颜色的部分所填的为标度,标度为两个因素两两比较的结果

如:a表示p1与p2相比,p1的重要程度,a、b互为倒数

常用的标度为1~9

标度含义
1两个因素同等重要
3一个因素比另一个因素稍微重要
5一个因素比另一个因素明显重要
7一个因素比另一个因素强烈重要
9一个因素比另一个因素极端重要
2,4,6,8上述两相邻判断的中间值

(重要性也可理解为满意度)

判断矩阵中的元素即为标度

判断矩阵为一个 n × n n\times{n} n×n​​的矩阵,记为A,对应元素为 a i j a_{ij} aij

即:
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] A=\begin{bmatrix} {a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\ {a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {a_{n1}}&{a_{n2}}&{\cdots}&{a_{nn}}\\ \end{bmatrix} A=a11a21an1a12a22an2a1na2nann
其中 a i j > 0 a_{ij}>0 aij>0​,且 a i j × a j i = 1 a_{ij}\times{a_{ji}}=1 aij×aji=1​​

3.对判断矩阵进行一致性检验

层次分析法要求求出各个被比较元素的相对权重,而这个相对权重只有在判断矩阵通过一致性检验才能使用。

一致矩阵的特点:

各行(各列)成比例,且最大特征值 λ m a x = n \lambda_{max}=n λmax=n

一致性检验的步骤如下:

(1)计算一致性指标CI

C I = λ m a x − n n − 1 CI=\frac{\lambda_{max}-n}{n-1} CI=n1λmaxn

(2)查表找到平均随机一致性指标RI
n123456789101112131415
RI000.520.891.121.261.361.411.461.491.521.541.561.581.59
(3)计算一致性指标CR

C R = C I R I CR=\frac{CI}{RI} CR=RICI

(4)判断

C R < 0.1 CR<0.1 CR<0.1,则认为判断矩阵的一致性可以接受,否则则需要对判断矩阵进行修正,最简单的方法就是将判断矩阵向一致性矩阵修正,即尽量使判断矩阵的各行或各列成比例

4.计算判断矩阵的相对权重

计算判断矩阵的相对权重有三种方法,通常三种方法都采用,使结果更有稳健性

(1)算术平均法求权重

①将判断矩阵归一化,即将每个元素除以所在列的和

②将归一化得到的矩阵各列相加,即按行求和

③将相加后得到的列向量中的各分量除以n可得权重向量

算术平均法求得的权重向量为:
ω i = 1 n ∑ j = 1 n a i j ∑ k = 1 n a k j \omega_i=\frac1{n}\sum^{n}_{j=1}\frac{a_{ij}}{\sum^{n}_{k=1}a_{kj}} ωi=n1j=1nk=1nakjaij
( i = 1 , 2 , . . . , n ) (i=1,2,...,n) (i=1,2,...,n)

(2)几何平均法求权重

①将判断矩阵按行相乘

②将相乘后得到的列向量的各分量开n次方

③将开方后的列向量进行归一化处理即可得权重向量

几何平均法求得的权重向量为:
ω i = ( ∏ j = 1 n a i j ) 1 n ∑ k = 1 n ( ∏ j = 1 n a k j ) 1 n \omega_i=\frac{(\prod^{n}_{j=1}a_{ij})^\frac1{n}}{\sum^{n}_{k=1}(\prod^{n}_{j=1}a_{kj})^\frac1{n}} ωi=k=1n(j=1nakj)n1(j=1naij)n1

(3)特征法求权重

①求出判断矩阵的最大特征值及其对应的特征向量

(特征值为n时对应的特征向量为第一列元素)

②将求出的特征向量进行归一化处理即可得权重向量

5.汇总并计算得分
(1)汇总得权重矩阵

在这里插入图片描述

(2)计算各方案的最终得分

在这里插入图片描述

例如:p1的最终得分为:
a 1 × b 1 + a 2 × b 2 + a 3 × b 3 {a1}\times{b1}+{a2}\times{b2}+{a3}\times{b3} a1×b1+a2×b2+a3×b3
此处用excel表格比较方便
在这里插入图片描述

输入以下表达式按enter即可得到结果(B2表示B列第2个单元格的内容)

再将B列锁定,
在这里插入图片描述

将C5所在单元格右下角的小点往右移即可得到D列每个单元格与B列每个单元格相乘再求和的结果

以此类推可得出各方案的得分,排序即可得出该评价体系下的最优方案。

(三)Matlab代码

求判断矩阵的相对权重的Matlab代码如下:

disp('请输入判断矩阵A')
A = input('A=');
n = size(A,1); %求A的阶数n,由于A为n*n阶矩阵,求其行数即可得阶数

%%一致性检验(一致矩阵则不用进行检验,n=1,2的情况下一定为一致矩阵)
[V,D] = eig(A); %D为A的全部特征值构成的对角阵,矩阵V中的每一列为D中与之相同列的特征值对应的特征向量
max_eig = max(max(D)); %求对角阵D中的最大值即最大特征向量
CI = (max_eig-n) / (n-1);
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 = CI / RI(n); %RI(n)表示阶数为n时的RI值
if CR<0.1
    disp('CR<0.1,该判断矩阵A的一致性可以接受');
else
    disp('CR>=0.10,该判断矩阵A需要进行修正');
end

%%若一致性检验通过,则可以计算权重

%%算术平均法求权重
sum_A = sum(A);%将A按列求和得到一个行向量
SUM_A = repmat(sum_A,n,1); %将该行向量复制n行得到一个矩阵
stand_A = A./SUM_A; %将A归一化
disp('算术平均法求得的权重为:')
disp(sum(stand_A,2)./n) %将归一化后的结果按行求和后每个元素除以n

%%几何平均法求权重
prod_A = prod(A,2);%将A按行相乘得到一个列向量
PROD_A = prod_A.^(1/n);%将该列向量的各分量开n次方
disp('几何平均法求得的权重为:')
disp(PROD_A./sum(PROD_A))%将开方后的结果归一化处理

%%特征值法求权重
[r,c] = find(D==max_eig,1);%求最大特征值所在的列数c
disp('特征值法法求得的权重为:')
disp(V(:,c)./sum(V(:,c)))%将对应的特征向量进行归一化处理

(四)例题分析

题目:请确定评价指标,形成评价体系从苏杭,北戴河,桂林三地中选择一地作为旅游目的地

1.画出层次结构图

由于目标层和方案层已经给出,只需确定准则层

假设将景色、花费、居住、饮食、交通作为决定最佳目的地的准则,可画出以下层次结构图

在这里插入图片描述

2.构造判断矩阵

假设将各个因素两两比较后得到下列判断矩阵

目标~准则:

景色花费居住饮食交通
景色11/2433
花费21866
居住1/41/813/43/4
饮食1/31/64/311
交通1/31/64/311

准则~方案:

景色苏杭北戴河桂林
苏杭125
北戴河1/212
桂林1/51/21
花费苏杭北戴河桂林
苏杭11/31/8
北戴河311/3
桂林831
居住苏杭北戴河桂林
苏杭113
北戴河113
桂林1/31/31
饮食苏杭北戴河桂林
苏杭134
北戴河1/311
桂林1/411
交通苏杭北戴河桂林
苏杭111/4
北戴河111/4
桂林441
3.一致性检验并求相对权重

运行代码可得:(注意,矩阵用[]括起来,同一行的元素用“,”分开,不同行的元素用“;"分开)

各个准则的相对权重:

景色花费居住饮食交通
算术平均法0.26230.47440.05450.09850.1103
几何平均法0.26360.47730.05310.09880.1072
特征值法0.26360.47580.05380.09810.1087

各个方案对应各个指标的相对权重:

景色苏杭北戴河桂林
算术平均法0.59490.27660.1285
几何平均法0.59540.27640.1283
特征值法0.59540.27640.1283
花费苏杭北戴河桂林
算术平均法0.08200.23640.6816
几何平均法0.08190.23630.6817
特征值法0.08190.23630.6817
居住苏杭北戴河桂林
算术平均法0.42860.42860.1429
几何平均法0.42860.42860.1429
特征值法0.42860.42860.1429
饮食苏杭北戴河桂林
算术平均法0.63270.19240.1749
几何平均法0.63370.19190.1744
特征值法0.63370.19190.1744
交通苏杭北戴河桂林
算术平均法0.16670.16670.6667
几何平均法0.16670.16670.6667
特征值法0.16670.16670.6667
4.汇总并计算得分

算术平局法求得的权重矩阵

相对权重苏杭北戴河桂林
景色0.26230.59490.27660.1285
花费0.47440.08200.23640.6816
居住0.05450.42860.42860.1429
饮食0.09850.63270.19240.1749
交通0.11030.16670.16670.6667

几何平均法求得的权重矩阵:

相对权重苏杭北戴河桂林
景色0.26360.59540.27640.1283
花费0.47730.08190.23630.6817
居住0.05310.42860.42860.1429
饮食0.09880.63370.19190.1744
交通0.10720.16670.16670.6667

特征值法求得的权重矩阵:

相对权重苏杭北戴河桂林
景色0.26360.59540.27640.1283
花费0.47580.08190.23630.6817
居住0.05380.42860.42860.1429
饮食0.09810.63370.19190.1744
交通0.10870.16670.16670.6667

最终三地的得分为:

苏杭北戴河桂林
算术平均法0.299010.2453970.455609
几何平均法0.2992770.2452340.455484
特征值法0.299260.2452950.45544

按照三种求相对权重的方法,最佳目的地应该是桂林

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值