层次分析法(AHP)

Analytic Hierarchy Process — 系统性多准则决策方法


0 方法概览与层次结构

将复杂决策问题分解为三层结构,通过两两比较量化判断,最终得出各方案的综合优先级权重。

层级内容示例
目标层最终决策目标(唯一)选择最佳旅游城市
准则层评价维度(3~9 个)景色、费用、交通、饮食
方案层备选方案北京、上海、成都

1 构造判断矩阵

对同一层级的元素进行两两比较,用 1~9 标度法赋值,构造 n×n 正互反矩阵 A,满足 $a_{ij} = 1/a_{ji}$,对角线为 1。

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

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

景色费用交通饮食
景色1253
费用1/2132
交通1/51/311/2
饮食1/31/221
矩阵中每个元素 $a_{ij}$ 表示"行元素相对于列元素的重要程度",互为倒数关系由矩阵自动保证。

2 计算权重向量

使用算术平均法(近似计算,工程中最常用):

① 对判断矩阵按列求和,得到各列的列和 $S_j$

② 每个元素除以所在列的列和,对矩阵进行列归一化

③ 对归一化矩阵按行求平均值,即为权重向量 $\mathbf{W} = [w_1, w_2, \dots, w_n]^\top$

$$ w_i = \frac{1}{n} \sum_{j=1}^{n} \frac{a_{ij}}{\sum_{k=1}^{n} a_{kj}} $$

沿用上例,得到准则层权重向量:

准则景色费用交通饮食
权重 w0.4770.2580.0960.169

3 一致性检验

判断矩阵是否存在逻辑矛盾(如"A > B > C 但 C > A")。共四个子步骤:

第一步:计算最大特征值 $\lambda_{max}$

$$ \lambda_{max} = \frac{1}{n} \sum_{i=1}^{n} \frac{(A\mathbf{W})_i}{w_i} $$

其中 $(A\mathbf{W})_i$ 为矩阵 $A$ 与权重向量 $\mathbf{W}$ 之积的第 $i$ 个分量。

第二步:计算一致性指标 CI

$$ CI = \frac{\lambda_{max} - n}{n - 1} $$

$n$ 为判断矩阵阶数;完全一致时 $\lambda_{max} = n$,$CI = 0$。

第三步:查找平均随机一致性指标 RI

n123456789101112131415
RI000.520.891.121.261.361.411.461.491.521.541.561.581.59
$n = 1$ 或 $2$ 时,矩阵必然满足一致性,无需检验;RI 由 Saaty 通过大量随机矩阵仿真统计得出。

第四步:计算一致性比例 CR

$$ CR = \frac{CI}{RI} $$

  • CR < 0.1:一致性可接受,权重有效,可继续
  • CR ≥ 0.1:判断矩阵逻辑矛盾过大,需重新修正

4 层次总排序

对每个方案,在每个准则下分别构造判断矩阵(重复步骤 1~3),得到方案对各准则的局部权重 $w_{ij}$,再按准则权重加权求和得到最终综合得分:

$$ \text{综合得分}_{\text{方案}i} = \sum_{j} w_j \times w_{ij} $$

其中 $w_j$ 为准则 $j$ 的权重,$w_{ij}$ 为方案 $i$ 在准则 $j$ 下的局部权重。

示例综合得分(括号内为准则权重):

方案景色 (0.477)费用 (0.258)交通 (0.096)饮食 (0.169)综合得分
北京0.300.250.450.200.280
上海0.250.400.400.500.329
成都0.450.350.150.300.391 ✓
层次总排序也需进行一致性检验:
$$CR_{总} = \frac{\sum w_j \cdot CI_j}{\sum w_j \cdot RI_j} < 0.1$$

5 完整流程总览

阶段操作输出
建模构建目标—准则—方案层次结构层次结构图
赋值对各层两两比较,填写判断矩阵判断矩阵 A
计算列归一化 → 行平均 → 权重向量权重向量 W
检验计算 $\lambda_{max}$ → CI → CRCR < 0.1 通过
排序加权求和,计算综合得分方案优先级排序
决策综合得分最高者为推荐方案最优方案

方法评价

优点局限
定性判断量化,系统性强准则/方案过多时矩阵数量爆炸
一致性检验保障逻辑自洽仍依赖专家主观赋值
定性 + 定量有机结合n > 9 时一致性难以保证
应用广泛,工具成熟(Excel / MATLAB)新增方案可能引起"排序逆转"