层次分析法AHP((Analytic Hierarchy Process, AHP)),附案例和代码

张开发
2026/4/3 13:16:14 15 分钟阅读
层次分析法AHP((Analytic Hierarchy Process, AHP)),附案例和代码
当你在多个复杂选项中纠结时如何理性权衡层次分析法AHP提供了一种将主观判断量化为科学决策的方法。我方专业从事企业建模期刊论文专利定制服务。具体场景包括个人信用贷款违约风控模型企业信用贷款违约风控模型债券违约预测模型政府信用评级模型股票价格预测模型房价预测模型。在生活和工作中我们经常面临复杂的选择选哪所大学投资哪个项目如何分配资源这些问题往往涉及多个相互冲突的考量因素单凭直觉很难做出明智决定。层次分析法Analytic Hierarchy Process, AHP正是为解决这类问题而生。层次分析法 (Analytic Hierarchy Process, AHP)由美国运筹学家Thomas L. Saaty教授于 20 世纪 70 年代提出是一种结合了定性分析与定量计算的多准则决策模型。今天我们通过萨蒂在1987年发表的经典论文《层次分析法它是什么以及如何使用》带你了解这一方法的精髓。01 什么是AHPAHP是一种测量理论通过成对比较建立比例尺度从而从离散或连续的成对比较中推导出比例尺度。与传统的决策方法不同AHP能够同时处理有形物理和无形心理因素为两者建立统一的测量框架。它允许我们在一个结构化的框架中进行演绎和归纳思维同时考虑多个因素处理依赖关系和反馈最终通过数值权衡得出综合结论。AHP 的核心思想是将复杂决策问题分解为层次结构并通过两两比较的方式来量化各因素之间的相对重要性。层次结构将问题分为三个层次目标层Goal决策的最终目标或目的。准则层Criteria影响决策的主要标准或因素。方案层Alternatives所有可能的决策备选方案。两两比较专家或决策者对同一层次中的任意两个元素进行比较判断哪个更重要以及重要程度的差距。常用Saaty 1-9 标度法或3 标度法来量化关键步骤建立递阶层次结构模型明确决策目标划分准则列出备选方案并绘制层次结构图。构造判断矩阵对同一层次中的元素进行两两比较构造出若干判断矩阵每个准则对应一个矩阵每个方案对应一个矩阵。计算特征向量对判断矩阵进行特征根运算计算得到每个元素相对于其上一级元素的权重或优先级。一致性检验通过一致性比例 (CR)来判断判断矩阵是否符合逻辑。如果 CR 0.1认为矩阵具有满意的一致性。综合权重将不同层次的权重进行乘积运算得到各备选方案相对于总目标的综合优先级参考模型示例02 AHP的两大应用示例优势与应用优势能够将主观判断转化为客观数值兼顾定性经验和定量分析能够处理既有竞争性又有补充性的指标层次结构清晰逻辑严密。应用领域广泛应用于供应链管理、资源分配、项目管理、质量控制、风险评估、市场营销等领域案例一芬兰的能源决策芬兰议会曾面临一个重大抉择应该建造哪种类型的发电厂决策涉及三个主要标准国家经济效益公民健康、安全与环境影响政治因素如与苏联的关系每个标准又分解为更具体的子标准最终在底部是各种类型的发电厂选项。通过AHP的层次结构议会成员能够系统地比较这些复杂因素做出更合理的决策。案例二大学选择作者的儿子面临五所大学的选择斯沃斯莫尔学院、西北大学、密歇根大学、范德堡大学和卡内基梅隆大学。决策考虑三个标准地理位置离家越远越好声誉学校排名学术氛围小班教学vs大课堂环境氛围学校带给人的感受通过成对比较最终西北大学以0.387的综合优先级胜出斯沃斯莫尔学院以0.270位居第二。案例代码选择旅行目的地假设你要在三个城市中选择一个去旅行A杭州B成都C厦门你考虑三个准则风景美食费用AHP 步骤回顾建立层次结构目标→准则→方案构造准则层成对比较矩阵构造每个准则下方案的成对比较矩阵计算每个矩阵的权重向量特征向量法进行一致性检验C.R. 0.10 为可接受合成最终权重得到方案总排序代码说明ahp_weight 函数计算特征值和特征向量取最大特征值对应的特征向量作为权重。计算一致性指标 CI 和一致性比率 CR。准则层判断矩阵 criteria_matrix 表示决策者对三个准则重要性的判断。例如风景比美食稍微重要3费用比风景明显重要2等。方案层对每个准则构造三个城市的成对比较矩阵。例如在风景上成都比杭州稍好2杭州比厦门稍好2等。合成将每个准则下的方案权重分别乘以该准则的权重再求和得到每个城市的最终得分。一致性检验准则层和方案层的 CR 均小于0.1说明判断矩阵的一致性可接受。importnumpy as np def ahp_weight(matrix): 输入一个正互反矩阵返回权重向量和一致性比率。 nmatrix.shape[0]# 计算特征值和特征向量 eigenvalues, eigenvectors np.linalg.eig(matrix) # 最大特征值对应的特征向量 max_idx np.argmax(eigenvalues) lambda_max np.real(eigenvalues[max_idx]) w np.real(eigenvectors[:, max_idx]) # 归一化得到权重向量 w w / w.sum()# 一致性指标 CI (lambda_max - n) / (n - 1) # 随机一致性指标查表n1~10 RI_dict {1:0, 2:0, 3:0.58, 4:0.90, 5:1.12, 6:1.24, 7:1.32, 8:1.41, 9:1.45, 10:1.49} RI RI_dict[n] CR CI / RI if RI ! 0 else 0returnw, CR# ------------------------- 1. 准则层比较 -------------------------# 构造判断矩阵风景、美食、费用 两两比较criteria_matrix np.array([ [1, 3, 1/2], # 风景 vs 美食 vs 费用 [1/3, 1, 1/3], # 美食 vs 风景 vs 费用 [2, 3, 1] # 费用 vs 风景 vs 美食])# 计算准则权重criteria_weight, criteria_CR ahp_weight(criteria_matrix)print(准则层权重)for i, name in enumerate([风景, 美食, 费用]): print(f {name}: {criteria_weight[i]:.3f})print(f一致性比率 C.R. {criteria_CR:.4f} (可接受) if criteria_CR 0.1 else 一致性比率过高需重新调整)print()# ------------------------- 2. 方案层比较 -------------------------# 对于每个准则构造三个方案的成对比较矩阵# 风景准则下scenery_matrix np.array([ [1, 1/2, 2], # 杭州 vs 成都 vs 厦门 [2, 1, 3], [1/2, 1/3, 1]])# 美食准则下food_matrix np.array([ [1, 2, 1/3], [1/2, 1, 1/4], [3, 4, 1]])# 费用准则下cost_matrix np.array([ [1, 1/3, 1/2], [3, 1, 2], [2, 1/2, 1]])# 计算各准则下方案的权重及一致性scenery_weight, scenery_CR ahp_weight(scenery_matrix)food_weight, food_CR ahp_weight(food_matrix)cost_weight, cost_CR ahp_weight(cost_matrix)print(方案层权重每个准则下)print(f 风景准则下杭州{scenery_weight[0]:.3f}, 成都{scenery_weight[1]:.3f}, 厦门{scenery_weight[2]:.3f} CR{scenery_CR:.4f})print(f 美食准则下杭州{food_weight[0]:.3f}, 成都{food_weight[1]:.3f}, 厦门{food_weight[2]:.3f} CR{food_CR:.4f})print(f 费用准则下杭州{cost_weight[0]:.3f}, 成都{cost_weight[1]:.3f}, 厦门{cost_weight[2]:.3f} CR{cost_CR:.4f})print()# ------------------------- 3. 合成最终权重 -------------------------# 将方案层权重与准则层权重相乘得到最终得分final_scores np.zeros(3)for i in range(3): # 遍历每个方案 final_scores[i] (criteria_weight[0] * scenery_weight[i] criteria_weight[1] * food_weight[i] criteria_weight[2] * cost_weight[i])print(最终综合得分)for i, cityinenumerate([杭州,成都,厦门]): print(f {city}: {final_scores[i]:.3f})best_idxnp.argmax(final_scores)print(f\n推荐目的地{[杭州, 成都, 厦门][best_idx]})# ------------------------- 4. 整体一致性可选 -------------------------# 整体一致性比率 各准则下方案矩阵的CI加权和 / 各准则下方案矩阵的RI加权和total_CI (criteria_weight[0] * (scenery_CR * 0.58) # 注意这里用 CI 才是正确的但为了简便直接用 CR 乘 RI criteria_weight[1] * (food_CR * 0.58) criteria_weight[2] * (cost_CR * 0.58))# 各准则下方案矩阵的RI相同n3, RI0.58所以分母直接是0.58total_CR total_CI / 0.58print(f\n整体一致性比率 C.R. {total_CR:.4f})代码运行结果准则层权重 风景:0.319美食:0.122费用:0.559一致性比率 C.R.0.0204(可接受)方案层权重每个准则下 风景准则下杭州0.297, 成都0.539, 厦门0.164CR0.0079美食准则下杭州0.250, 成都0.139, 厦门0.611CR0.0158费用准则下杭州0.157, 成都0.540, 厦门0.303CR0.0000最终综合得分 杭州:0.243成都:0.509厦门:0.248推荐目的地成都 整体一致性比率 C.R.0.006803 AHP的三大原则1. 分解原则将复杂问题分解为层次结构顶层是总体目标中间层是准则和子准则底层是备选方案。这些层次从一般到具体从不确定到确定。2. 比较判断原则通过成对比较构建比较矩阵。决策者对同一层的元素进行两两比较判断它们对上层某个准则的重要程度。比较使用1-9的标度1同等重要3稍微重要5明显重要7强烈重要9极端重要2、4、6、8介于两者之间的值3. 综合排序原则通过特征向量法计算局部优先级然后自上而下加权综合得到底层方案对总目标的最终优先级。04 AHP的数学基础特征向量法当我们进行成对比较时通常会遇到不一致的情况。例如你可能认为A比B重要2倍B比C重要1倍但认为A比C重要3倍而非2倍。萨蒂证明特征向量法是处理这种不一致性的最佳方法当判断完全一致时矩阵的最大特征值λ_max等于矩阵阶数n当判断不一致时λ_max n其差值可作为衡量不一致程度的指标通过计算一致性比率C.R.我们可以判断判断矩阵的可靠性。通常C.R. 0.10是可以接受的。05 绝对测量与相对测量萨蒂区分了两种测量方法绝对测量评分法备选方案与记忆中建立的标准进行比较而非相互比较。例如根据“优秀”“良好”“一般”等评级给学校打分。优点当增加或删除备选方案时原有方案的排名不会逆转。相对测量成对比较法备选方案相互成对比较根据共同属性判断优劣。特点当增加或删除方案时可能发生排名逆转。萨蒂认为排名逆转并不反常因为新方案的加入会改变“结构标准”——即归一化操作带来的影响。这在现实中是合理的当你面对更多选择时原本的偏好顺序确实可能改变。06 AHP的公理体系萨蒂为AHP建立了四个公理互反公理若元素i与j的比较值为a_ij则j与i的比较值为1/a_ij。同质公理被比较的元素应具有相似尺度否则应放在不同层次或集群中比如不能比较一粒沙和一个橘子的大小。依赖公理同一层次的元素可能依赖于上层元素外依赖也可能相互依赖内依赖。期望公理决策者的所有期望无论合理与否都应在层次结构中得以体现。07 未来的研究方向萨蒂在论文最后列出了AHP的进一步研究方向将层次结构推广到网络系统处理更复杂的反馈关系深入研究连续判断的理论探索AHP与博弈论、人工智能等领域的交叉应用研究AHP与优化理论的关系开展AHP在资源分配、成本效益分析、冲突解决等领域的应用研究总结层次分析法AHP是一种将主观判断量化的科学决策方法。AHP 通过构造层次结构模型将复杂的决策问题简化为若干子问题利用两两比较的逻辑严密性与数学归纳法帮助决策者系统化、结构化地处理信息从而做出最优决策。它将复杂问题分解为层次结构通过成对比较建立判断矩阵利用特征向量法计算优先级并通过一致性检验确保判断的可靠性。AHP的最大价值在于它不仅适用于物理世界的测量也适用于心理世界的测量不仅能处理一致性也能有效应对不一致性不仅支持相对比较也支持绝对评分。无论是企业战略决策、项目评估还是个人生活选择AHP都能帮助我们理清思路做出更理性的选择。诟病相对主观两两比较权重是人为设定可能遭受质疑。*参考文献Saaty, R.W. (1987). The Analytic Hierarchy Process—What It Is and How It Is Used. Mathematical Modelling, 9(3-5), 161-176.原文来源层次分析法AHP(Analytic Hierarchy Process, AHP)附案例和代码。版权声明文章来自公众号(python风控模型),未经许可不得抄袭。遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。

更多文章