国赛 · 2025E
AI 辅助智能体测
用摄像头采集的骨骼关键点数据判断学生体测动作是否规范,建立评分模型并给出辅助判定流程。
4 个关联模型拆解这道题 →
指标难以量化、主要依靠专家经验判断权重,需要把两两比较的定性结论转成可计算的权重。
依赖见代码开头;示例在自己的 Python 环境运行,页面不执行代码。用于理解方法,正式参赛请补齐数据检验与误差分析。
# 依赖: 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 '不通过,需重新打分')