层次分析法(AHP)综合评价与决策模型
项目介绍
本项目是一个基于 MATLAB 开发的自动化决策支持工具,实现了完整的层次分析法(Analytic Hierarchy Process, AHP)流程。该模型旨在解决多准则、多目标的复杂决策问题,通过将专家的主观判断矩阵进行量化处理,自动计算指标权重并执行逻辑一致性检验,从而为决策提供科学的定量依据。该方案可广泛应用于资源分配、供应商评估、风险判定及各类系统科学评价场景。
功能特性
- 自动化权重计算:内置三种主流计算模型,确保护凭多角度验证结果。
- 严密的一致性检验:自动计算 CI 与 CR 指标,并内置 1-15 阶随机一致性指标(RI)对照表。
- 矩阵合法性预检:程序能自动识别矩阵是否为方阵,并对主观判断矩阵的互反性进行偏差预警。
- 综合鲁棒性优化:汇总三种计算方法的结果取平均值值,有效降低单一算法可能带来的偏差。
- 直观可视化呈现:自动生成权重分布柱状图与占比饼图,决策结果一目了然。
使用方法
- 环境配置:安装 MATLAB R2016b 或更高版本。
- 数据输入:在程序定义的判断矩阵变量 A 处,按照 1-9 标度法录入您的专家评分矩阵。
- 运行程序:执行脚本,系统将自动进行矩阵检查、权重计算及一致性验证。
- 结果获取:
- 在控制台查看各指标在特征值法、算术平均法、几何平均法下的具体权重。
- 确认 CR(一致性比例)是否小于 0.1。
- 若检验通过,程序将自动弹出可视化图形窗口。
系统要求
- 软件环境:MATLAB (推荐 R2018a 及以上版本)
- 硬件要求:通用计算机配置即可,内存建议 4GB 以上以保证可视化渲染流畅。
计算逻辑说明
程序核心处理逻辑遵循以下标准 AHP 流程:
- 矩阵合法性校验:
程序首先检查输入矩阵的阶数是否大于 1 且为方阵。随后通过嵌套循环遍历矩阵元素,校验 $A_{ij} times A_{ji} = 1$ 的互反性特征,若误差超过 $1 times 10^{-4}$ 则通过警告信息提示用户。
- 权重计算算法实现:
- 特征值法:通过内置函数进行特征值分解,提取最大特征根 $lambda_{max}$ 对应的特征向量,并进行归一化处理。
- 算术平均法:将矩阵按列归一化后,计算每行元素的算术平均值作为权重。
- 几何平均法(方根法):将矩阵每行元素相乘并开该矩阵阶数次方的根,最后进行归一化,此方法能较好地处理极端评分。
- 一致性检验机制:
程序计算一致性指标 $CI = (lambda_{max} - n) / (n - 1)$。根据矩阵阶数 $n$ 从内置的 RI 映射表中查找对应的随机一致性指标。若 $CR = CI / RI < 0.1$,则判定该判断矩阵具有逻辑自洽性。
- 综合决策输出:
程序汇总三种算法得到的权重包并计算均值,生成最终的综合权重分布。
关键函数与算法分析
- 矩阵分解(eig):利用 MATLAB 核心求解器获取精确的最大特征值,这是 AHP 理论中确定权重的数学基础。
- 归一化处理(Normalized Operation):所有中间过程涉及到的向量均进行了归一化,确保各指标权重之和严格等于 1。
- 维度适应逻辑:程序具备处理不同阶数矩阵的能力,内置了高达 15 阶的 RI 经验常数,超过 15 阶时采用保守估计值。
- 逻辑判定分支:通过 if-else 结构控制可视化引擎,仅在 CR 校验通过时生成图表,严谨地防止了基于无效数据的错误决策引导。
- 向量化运算:在算术平均法与几何平均法的实现中,大量使用矩阵广播与向量乘积,保证了大规模矩阵运算的高效性。