层次分析法 AHP · 深度手册
分类:评价类 | 难度:★☆☆ 入门 | 编号:
ahp
一、这是什么(一句话用途)
多指标决策、方案排序、确定权重(选址 / 供应商 / 方案评估)
二、核心思想
层次分析法(Analytic Hierarchy Process)由 Saaty 提出,核心是把一个复杂的多准则决策问题分解为"目标层—准则层—方案层"三层结构,将决策者的定性判断转化为定量的相对权重。它不要求给出绝对分数,而是通过"两两比较"问专家:"准则A比准则B重要多少?"从而把人脑难以同时处理的多维权衡,拆成一堆两两之间的一维比较,大大降低判断负担并提高一致性。最终把各层权重逐层合成,得到方案对总目标的总排序。它的最大价值在于嵌入了"一致性检验"——如果专家的判断逻辑自相矛盾(例如 A>B、B>C 但 C>A),算法会报警要求重调,这是很多主观测评方法缺失的理性护栏。
三、数学原理与推导
设判断矩阵 ,满足互反性 且 。权重向量 与最大特征根 满足特征方程:
特征根法(精确解):直接求 的最大特征根对应特征向量并归一化即得权重。
和积法(常用近似):先按列归一 ,再对每行求和并平均得近似权重 ,最后归一 。
一致性检验:最大特征根 。一致性指标
随机一致性比率 ( 为同阶随机矩阵平均 )。判定准则: 时判断矩阵可接受,否则需重新调整标度。总权重由各层权重沿树状结构相乘合成。
四、建模 / 求解步骤
- 建立层次结构(目标/准则/方案)
- 1-9 标度构造判断矩阵
- 和积法或特征根法求权重
- 一致性检验 CI、CR
- 合成总权重并排序
五、关键公式速查
A·W = λmax·W;CI=(λmax−n)/(n−1);CR=CI/RI;要求 CR<0.1
六、典型示例
三准则(成本/质量/交期)给 3 个供应商打分 → 3 个判断矩阵 → 权重 → 总排序选优。
完整算例(数字演示,照着算一遍)
场景:从 3 家物流供应商(S1/S2/S3)中选优,准则为成本、质量、交期。
准则判断矩阵(1-9 标度):
成本 质量 交期
成本 1 1/3 1/5
质量 3 1 1/2
交期 5 2 1
列和归一 + 行平均得权重:w=(0.110, 0.309, 0.581),λmax≈3.004,CI≈0.002,RI(3)=0.58,CR≈0.003<0.1 ✓ 通过一致性检验。
方案打分(5 分制):S1=(4,3,2)、S2=(3,5,4)、S3=(2,4,3)。加权总分:S1=3.11、S2=3.97、S3=3.16。
结论:质量权重最高,S2 综合最优(重质量与交期时胜出)。
七、Python 实现示例
import os, numpy as np
import pandas as pd
HERE = os.path.dirname(os.path.abspath(__file__))
# 1) 读原始打分(越大越好)
df = pd.read_csv(os.path.join(HERE,"..","datasets","ahp.csv"))
crit = ["cost","quality","delivery"]
raw = df[crit].to_numpy(dtype=float)
# 2) 1-9 标度构造判断矩阵(演示:用打分比值近似)
n = len(crit)
A = np.ones((n, n))
for i in range(n):
for j in range(n):
A[i, j] = round(raw[:, i].mean() / raw[:, j].mean(), 2)
# 3) 和积法求权重
col = A / A.sum(axis=0)
w = col.mean(axis=1); w = w / w.sum()
# 4) 一致性检验
AW = A @ w
lam = (AW / w).mean()
CI = (lam - n) / (n - 1)
RI = {1:0,2:0,3:0.58,4:0.9,5:1.12}[n]
CR = CI / RI
print("权重:", dict(zip(crit, np.round(w,3))))
print("CR=%.3f"%CR, "-> 可接受" if CR<0.1 else "-> 需重调")
配套文件:
py_ahp.py(需 numpy / pandas;与下方数据集配套练习)
八、MATLAB 实现示例
%% AHP 和积法示例(MATLAB/Octave)
df = readtable('..\datasets\ahp.csv');
crit = {'cost','quality','delivery'};
raw = table2array(df(:,crit));
[n,~] = size(raw);
A = ones(n,n);
for i=1:n, for j=1:n, A(i,j)=mean(raw(:,i))/mean(raw(:,j)); end, end
col = A ./ sum(A,1);
w = mean(col,2); w = w/sum(w);
AW = A*w; lam = mean(AW./w);
CI = (lam-n)/(n-1); RI = 0.58; CR = CI/RI;
fprintf('权重: %.3f %.3f %.3f\n', w);
fprintf('CR=%.3f (%s)\n', CR, string(CR<0.1));
配套文件:
m_ahp.m(基础 MATLAB / Octave 即可运行)
九、练手数据集(可下载)
三个供应商在成本/质量/交期三项上的专家打分(数值越大越优)。用于构造判断矩阵、计算和积法权重并做一致性检验。
- 字段:alt, cost, quality, delivery
- 行数:3 行
- 下载:
ahp.csv
十、常见误区与避坑清单
- CR>0.1 说明判断矛盾,要重调
- 标度别全填 1(无区分)
- 层次别超过 4 层
十一、结果怎么解读
权重越大越重要;CR<0.1 结果可信;总得分最高者优先。
十二、常与谁搭配
常与熵权法 / TOPSIS 组合(主观+客观)。
十三、论文写作技巧(怎么把它写进论文)
把 层次分析法 AHP 写进论文,核心不是堆公式,而是讲清「为什么用它、结果怎么呈现、如何对比」三件事。
1. 动机怎么写(为什么用它而不是别的)
开篇点明研究对象存在「多指标、且指标间相互冲突」的取舍(如成本要低但质量要高),因此需要多准则决策方法(MCDM)。随后说明权重来源:可主观(专家两两比较 + 一致性检验)或客观(数据驱动赋权),并交代为什么选 层次分析法 AHP 而非简单加权平均——例如它能兼顾理想解距离 / 降低人为主观偏差。这样评审一眼看懂你的评价逻辑。
2. 结果怎么写(图表与指标)
结果页放两张图最稳:① 各方案指标权重条形图(或熵权贡献);② 方案贴近度 / 综合得分排序表。若指标权重敏感,补一张「权重扰动 → 排序是否变」的敏感性分析,能显著提升结论可信度。
3. 可直接套用的写作话术
- 中文模板:针对<问题>,本文采用 层次分析法 AHP 进行多指标决策、方案排序、确定权重(选址 / 供应商 / 方案评估)。该方法能够自动刻画<优势>,在处理<场景>时相较<对比方法>更具<特点>。
- 英文模板:To address
, we adopt 层次分析法 AHP to 多指标决策、方案排序、确定权重(选址 / 供应商 / 方案评估). Benefiting from its ability to , it outperforms on .
4. 同类易踩的写作坑
别只给最终排名,要写出每一层的权重与中间矩阵;避免「我觉得」这类主观表述,改用「依据 CR<0.1 的一致性检验」等客观依据。
5. 典型论文段落范例(可直接参考 / 改写)
下面是一段可直接套用的论文表述,已按本算法定制,填空处(…)替换成你的真实数值即可。
针对供应商选择中成本、质量与交期相互冲突的多准则决策问题,本文采用 层次分析法 AHP 计算各方案的贴近度并排序。为避免单一赋权带来的主观偏差,权重由熵权法给出,最终综合得分表明方案 S3 最优(C=0.82)。
To rank candidate suppliers under the conflicting criteria of cost, quality, and lead time, we adopt 层次分析法 AHP to compute the closeness coefficient. Weights are derived from the entropy method, and the aggregated score identifies S3 as the best alternative (C=0.82).
十四、相关手册(延伸阅读)
- TOPSIS 优劣解距离法 · 评价类
- 熵权法 · 评价类
十五、本手册导航
- 上一篇:(已是首篇)
- 下一篇:TOPSIS 优劣解距离法 · 评价类
- 返回:算法深度手册库 | 资料站首页
本手册由「算法深度手册生成器」自动产出,配套提供 Python / MATLAB 双版本示例与可下载练手数据集。