← 返回模型库
MODEL / 评价

层次分析法 AHP

指标难以量化、主要依靠专家经验判断权重,需要把两两比较的定性结论转成可计算的权重。

核心公式

\mathbf{A}\mathbf{w}=\lambda_{\max}\mathbf{w},\qquad CR=\frac{\lambda_{\max}-n}{(n-1)\,RI}<0.1

Python 最小示例

下载 .py 文件 ↓

依赖见代码开头;示例在自己的 Python 环境运行,页面不执行代码。用于理解方法,正式参赛请补齐数据检验与误差分析。

Python · 层次分析法 AHP
# 依赖: numpy
import numpy as np

RI = {1: 0.0, 2: 0.0, 3: 0.58, 4: 0.90, 5: 1.12, 6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45}

def ahp(matrix):
    A = np.asarray(matrix, dtype=float)
    if A.ndim != 2 or A.shape[0] != A.shape[1] or not 1 <= A.shape[0] <= 9:
        raise ValueError('示例支持 1~9 阶方阵')
    if not np.isfinite(A).all() or np.any(A <= 0) or not np.allclose(A*A.T, 1):
        raise ValueError('判断矩阵必须是有限、正值的互反矩阵')
    n = A.shape[0]
    w = np.power(np.prod(A, axis=1), 1.0 / n)      # 几何平均法求权重
    w = w / w.sum()
    lam_max = float(np.mean((A @ w) / w))
    cr = (lam_max - n) / (n - 1) / RI[n] if n > 2 else 0.0
    return w.round(4), round(cr, 4)

A = [[1, 1 / 2, 1 / 3], [2, 1, 1 / 2], [3, 2, 1]]   # 上三角与下三角必须互反
w, cr = ahp(A)
print(f'权重={w} CR={cr}', '通过' if cr < 0.1 else '不通过,需重新打分')

用它研究过哪些问题?

浏览赛题库 →
国赛 · 2025E

AI 辅助智能体测

用摄像头采集的骨骼关键点数据判断学生体测动作是否规范,建立评分模型并给出辅助判定流程。

图像处理数据处理评价
4 个关联模型拆解这道题 →
国赛 · 2023A

定日镜场的优化设计

由太阳位置与镜场几何推导光学效率与输出功率,优化镜场布局与镜面尺寸参数以提高单位面积输出。

优化几何光学评价
2 个关联模型拆解这道题 →