【数学建模】层次分析法(AHP)详解及其应用

层次分析法(AHP)详解及其应用

引言

在现实生活和工作中,我们经常面临复杂的决策问题,这些问题通常涉及多个评价准则 ,且各准则之间可能存在相互影响。如何在这些复杂因素中做出合理的决策?层次分析法 (Analytic Hierarchy Process, AHP)作为一种系统、灵活的多准则决策方法,为我们提供了科学的决策工具。

文章目录

什么是层次分析法?

层次分析法是由美国运筹学家Thomas L. Saaty教授于20世纪70年代提出的一种系统分析方法,它将复杂问题分解为多个层次和要素,通过定性和定量相结合的方式进行决策分析。

层次分析法的基本原理

层次分析法的核心思想是将复杂问题分解为层次结构,通常包括:

  1. 目标层:决策的最终目标
  2. 准则层:评价目标的各种准则
  3. 方案层:可供选择的各种方案

在建立层次结构后,通过两两比较各层次中的元素,形成判断矩阵,计算各元素的权重,最终得到各方案的综合评价。

层次分析法的实施步骤

1. 建立层次结构模型

将决策问题分解为相互关联的决策元素,构建层次结构模型。

2. 构造判断矩阵

采用1-9标度法对同一层次的元素进行两两比较,形成判断矩阵 A A A:

A = [ a i j ] n × n A = [a_{ij}]_{n \times n} A=[aij]n×n

其中 a i j a_{ij} aij表示元素 i i i相对于元素 j j j的重要性程度,标度含义如下:

  • 1:表示两个元素同等重要
  • 3:表示一个元素比另一个元素稍微重要
  • 5:表示一个元素比另一个元素明显重要
  • 7:表示一个元素比另一个元素强烈重要
  • 9:表示一个元素比另一个元素极端重要
  • 2,4,6,8:表示上述相邻判断的中间值

且满足: a j i = 1 a i j a_{ji} = \frac{1}{a_{ij}} aji=aij1

3. 计算权重向量和最大特征值

通过求解判断矩阵的特征向量来获得权重,常用的方法有:

  • 和法归一化:将判断矩阵各列归一化后求行平均值

w i = 1 n ∑ j = 1 n a i j ∑ k = 1 n a k j w_i = \frac{1}{n} \sum_{j=1}^{n} \frac{a_{ij}}{\sum_{k=1}^{n} a_{kj}} wi=n1j=1∑n∑k=1nakjaij

  • 根法:计算每行元素乘积的n次方根,再归一化

w ˉ i = ∏ j = 1 n a i j n \bar{w}i = \sqrt[n]{\prod{j=1}^{n} a_{ij}} wˉi=nj=1∏naij

w i = w ˉ i ∑ j = 1 n w ˉ j w_i = \frac{\bar{w}i}{\sum{j=1}^{n} \bar{w}_j} wi=∑j=1nwˉjwˉi

  • 特征值法:求解判断矩阵的最大特征值及其对应的特征向量

A ⋅ W = λ m a x ⋅ W A \cdot W = \lambda_{max} \cdot W A⋅W=λmax⋅W

其中 λ m a x \lambda_{max} λmax为最大特征值, W W W为对应的特征向量。

4. 一致性检验

确保判断的合理性,避免出现决策者认为"A比B重要,B比C重要,C却又比A重要"的矛盾,需要进行一致性检验:

  1. 计算一致性指标CI:

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

其中 λ m a x \lambda_{max} λmax为最大特征值, n n n为矩阵阶数。

当 C I = 0 CI = 0 CI=0 时对应的矩阵为为一致矩阵

关于一致矩阵 的性质与相关介绍可以参考我的这篇文章:【数学建模】一致矩阵的应用及其在层次分析法(AHP)中的性质

  1. 查找对应的随机一致性指标RI
  2. 计算一致性比率CR:

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

  1. 当 C R < 0.1 CR < 0.1 CR<0.1时,认为判断矩阵具有满意的一致性

5. 计算综合权重

自上而下计算各层次元素对最终目标的综合权重,得出最终决策方案。

如果第 k − 1 k-1 k−1层有 m m m个元素 P 1 k − 1 , P 2 k − 1 , ... , P m k − 1 P_1^{k-1}, P_2^{k-1}, \ldots, P_m^{k-1} P1k−1,P2k−1,...,Pmk−1,它们对总目标的权重分别是 a 1 k − 1 , a 2 k − 1 , ... , a m k − 1 a_1^{k-1}, a_2^{k-1}, \ldots, a_m^{k-1} a1k−1,a2k−1,...,amk−1;第 k k k层有 n n n个元素 P 1 k , P 2 k , ... , P n k P_1^k, P_2^k, \ldots, P_n^k P1k,P2k,...,Pnk,且元素 P i k P_i^k Pik对元素 P j k − 1 P_j^{k-1} Pjk−1的权重为 b i j k b_{ij}^k bijk,则元素 P i k P_i^k Pik对总目标的权重为:

a i k = ∑ j = 1 m b i j k ⋅ a j k − 1 a_i^k = \sum_{j=1}^{m} b_{ij}^k \cdot a_j^{k-1} aik=j=1∑mbijk⋅ajk−1

层次分析法的应用实例

案例:选择最佳投资项目

假设某公司需要从三个投资项目中选择一个最佳方案,考虑的因素有:预期收益、风险程度和市场前景。

第一步:建立层次结构
  • 目标层:选择最佳投资项目
  • 准则层:预期收益(C1)、风险程度(C2)、市场前景(C3)
  • 方案层:项目A、项目B、项目C
第二步:构造判断矩阵

准则层对目标层的判断矩阵:

A = [ 1 2 4 1 2 1 3 1 4 1 3 1 ] A = \begin{bmatrix} 1 & 2 & 4 \\ \frac{1}{2} & 1 & 3 \\ \frac{1}{4} & \frac{1}{3} & 1 \end{bmatrix} A= 121412131431

第三步:计算权重

使用和法归一化计算权重向量:

A 的列和 = [ 1.75 3.33 8 ] A的列和 = \begin{bmatrix} 1.75 & 3.33 & 8 \end{bmatrix} A的列和=[1.753.338]

归一化矩阵 = [ 1 1.75 2 3.33 4 8 0.5 1.75 1 3.33 3 8 0.25 1.75 0.33 3.33 1 8 ] = [ 0.571 0.600 0.500 0.286 0.300 0.375 0.143 0.100 0.125 ] 归一化矩阵 = \begin{bmatrix} \frac{1}{1.75} & \frac{2}{3.33} & \frac{4}{8} \\ \frac{0.5}{1.75} & \frac{1}{3.33} & \frac{3}{8} \\ \frac{0.25}{1.75} & \frac{0.33}{3.33} & \frac{1}{8} \end{bmatrix} = \begin{bmatrix} 0.571 & 0.600 & 0.500 \\ 0.286 & 0.300 & 0.375 \\ 0.143 & 0.100 & 0.125 \end{bmatrix} 归一化矩阵= 1.7511.750.51.750.253.3323.3313.330.33848381 = 0.5710.2860.1430.6000.3000.1000.5000.3750.125

W = [ 0.571 + 0.600 + 0.500 3 0.286 + 0.300 + 0.375 3 0.143 + 0.100 + 0.125 3 ] = [ 0.558 0.320 0.122 ] W = \begin{bmatrix} \frac{0.571+0.600+0.500}{3} \\ \frac{0.286+0.300+0.375}{3} \\ \frac{0.143+0.100+0.125}{3} \end{bmatrix} = \begin{bmatrix} 0.558 \\ 0.320 \\ 0.122 \end{bmatrix} W= 30.571+0.600+0.50030.286+0.300+0.37530.143+0.100+0.125 = 0.5580.3200.122

第四步:一致性检验

计算 λ m a x \lambda_{max} λmax:

A ⋅ W = [ 1 2 4 1 2 1 3 1 4 1 3 1 ] ⋅ [ 0.558 0.320 0.122 ] = [ 1.704 0.978 0.372 ] A \cdot W = \begin{bmatrix} 1 & 2 & 4 \\ \frac{1}{2} & 1 & 3 \\ \frac{1}{4} & \frac{1}{3} & 1 \end{bmatrix} \cdot \begin{bmatrix} 0.558 \\ 0.320 \\ 0.122 \end{bmatrix} = \begin{bmatrix} 1.704 \\ 0.978 \\ 0.372 \end{bmatrix} A⋅W= 121412131431 ⋅ 0.5580.3200.122 = 1.7040.9780.372

λ m a x = 1 3 ( 1.704 0.558 + 0.978 0.320 + 0.372 0.122 ) = 3.054 \lambda_{max} = \frac{1}{3} \left( \frac{1.704}{0.558} + \frac{0.978}{0.320} + \frac{0.372}{0.122} \right) = 3.054 λmax=31(0.5581.704+0.3200.978+0.1220.372)=3.054

C I = λ m a x − n n − 1 = 3.054 − 3 2 = 0.027 CI = \frac{\lambda_{max} - n}{n-1} = \frac{3.054 - 3}{2} = 0.027 CI=n−1λmax−n=23.054−3=0.027

对于 n = 3 n=3 n=3的矩阵, R I = 0.58 RI = 0.58 RI=0.58

C R = C I R I = 0.027 0.58 = 0.047 < 0.1 CR = \frac{CI}{RI} = \frac{0.027}{0.58} = 0.047 < 0.1 CR=RICI=0.580.027=0.047<0.1

判断矩阵具有满意的一致性。

第五步:计算方案层对各准则的权重

(此处省略具体计算过程,假设已经得到以下权重矩阵)

W C 1 = [ 0.65 0.25 0.10 ] , W C 2 = [ 0.20 0.30 0.50 ] , W C 3 = [ 0.30 0.60 0.10 ] W_{C1} = \begin{bmatrix} 0.65 \\ 0.25 \\ 0.10 \end{bmatrix}, W_{C2} = \begin{bmatrix} 0.20 \\ 0.30 \\ 0.50 \end{bmatrix}, W_{C3} = \begin{bmatrix} 0.30 \\ 0.60 \\ 0.10 \end{bmatrix} WC1= 0.650.250.10 ,WC2= 0.200.300.50 ,WC3= 0.300.600.10

第六步:计算综合权重

W 综合 = W C 1 ⋅ w 1 + W C 2 ⋅ w 2 + W C 3 ⋅ w 3 W_{综合} = W_{C1} \cdot w_1 + W_{C2} \cdot w_2 + W_{C3} \cdot w_3 W综合=WC1⋅w1+WC2⋅w2+WC3⋅w3

= [ 0.65 0.25 0.10 ] ⋅ 0.558 + [ 0.20 0.30 0.50 ] ⋅ 0.320 + [ 0.30 0.60 0.10 ] ⋅ 0.122 = \begin{bmatrix} 0.65 \\ 0.25 \\ 0.10 \end{bmatrix} \cdot 0.558 + \begin{bmatrix} 0.20 \\ 0.30 \\ 0.50 \end{bmatrix} \cdot 0.320 + \begin{bmatrix} 0.30 \\ 0.60 \\ 0.10 \end{bmatrix} \cdot 0.122 = 0.650.250.10 ⋅0.558+ 0.200.300.50 ⋅0.320+ 0.300.600.10 ⋅0.122

= [ 0.45 0.32 0.23 ] = \begin{bmatrix} 0.45 \\ 0.32 \\ 0.23 \end{bmatrix} = 0.450.320.23

因此,项目A是最佳选择。

层次分析法的优缺点

优点

  1. 结构清晰,逻辑性强
  2. 计算简便,易于理解和应用
  3. 能够处理定性和定量相结合的复杂决策问题
  4. 通过一致性检验保证判断的合理性

缺点

  1. 当准则或方案较多时,需要进行大量的两两比较
  2. 判断矩阵的构造具有主观性
  3. 层次结构中的元素被假设为相互独立,可能与现实情况有差距
  4. 排序结果可能受到新增或删除方案的影响

层次分析法的扩展

为了克服传统层次分析法的局限性,研究者提出了多种改进方法,如:

  1. 模糊层次分析法 :引入模糊数学处理判断的不确定性,使用模糊数 a ~ i j \tilde{a}{ij} a~ij代替确定值 a i j a{ij} aij
  2. 网络分析法(ANP) :考虑元素之间的相互依赖关系,构建超矩阵 W W W
  3. 群体决策层次分析法:综合多个决策者的判断,如几何平均法:

a i j = ∏ k = 1 K a i j ( k ) K a_{ij} = \sqrt[K]{\prod_{k=1}^{K} a_{ij}^{(k)}} aij=Kk=1∏Kaij(k)

其中 a i j ( k ) a_{ij}^{(k)} aij(k)表示第 k k k个决策者对元素 i i i和 j j j的判断值, K K K为决策者总数。

层次分析法的应用领域

层次分析法在多个领域有广泛应用:

  1. 工程项目评估与选择
  2. 资源配置与投资决策
  3. 人才评价与绩效考核
  4. 产品设计与评价
  5. 风险评估与管理

结语

层次分析法作为一种系统、灵活的多准则决策方法,为复杂决策问题提供了科学的解决思路。虽然存在一些局限性,但通过不断改进和与其他方法的结合,层次分析法仍然是现代决策理论中不可或缺的重要工具。在实际应用中,我们应当根据具体问题的特点,合理运用层次分析法,以期获得科学、合理的决策结果。


参考文献

  1. Saaty, T. L. (1980). The Analytic Hierarchy Process. New York: McGraw-Hill.
  2. 徐泽水. (2002). 层次分析法原理. 天津: 天津大学出版社.
  3. 许树柏. (1995). 层次分析法. 北京: 中国人民大学出版社.

这篇文章详细介绍了层次分析法的基本原理、实施步骤、应用实例以及优缺点,希望对您有所帮助!如有任何问题,欢迎在评论区留言交流。

相关推荐
AI科技星2 小时前
张祥前统一场论中两个电荷定义的统一性解析
开发语言·线性代数·算法·数学建模·平面
做cv的小昊3 小时前
【TJU】研究生应用统计学课程笔记(1)——第一章 数理统计的基本知识(1.1 数理统计的基本内容、1.2 数理统计的基本概念)
笔记·线性代数·考研·数学建模·ai·矩阵·概率论
做cv的小昊19 小时前
【TJU】应用统计学——第五周作业(3.1 假设检验的基本思想、3.2 单个正态总体参数的假设检验)
学习·线性代数·机器学习·数学建模·矩阵·概率论·tju
飞舞哲1 天前
含模型不确定性的机械臂神经网络状态反馈自适应控制
人工智能·神经网络·数学建模
smppbzyc1 天前
2026认证杯挑战赛A题【 水系电解液配方】原创论文讲解
数学建模·认证杯数学建模·认证杯·2026认证杯·认证杯数学建模竞赛·2026认证杯数学建模
smppbzyc2 天前
2026认证杯数学建模A题【 水系电解液配方】原创论文讲解(含完整python代码)
数学建模·数学建模竞赛·认证杯·2026认证杯·2026认证杯数学建模竞赛·认证杯数学建模竞赛
apcipot_rain2 天前
Python实战——蒙特卡洛模拟分析杀牌游戏技能收益
python·游戏·数学建模
LingLong_roar2 天前
OCC 7.9.3 + VS2022 可编译、可运行的最简可视化窗口
数学建模
551只玄猫3 天前
【数学建模 matlab 实验报告13】主成分分析
开发语言·数学建模·matlab·课程设计·主成分分析
热心网友俣先生3 天前
2026年认证杯赛题浅析
数学建模