摘要TOPSISTechnique for Order Preference by Similarity to Ideal Solution是一种经典的多属性决策分析方法。本文系统阐述了TOPSIS模型的数学原理、算法流程并结合MathorCup赛题特点设计了针对性的数据预处理方案。在此基础上构建了基于熵权法改进的TOPSIS模型详细定义了变量、目标函数及排序规则。通过算例分析验证了模型的有效性并讨论了其优缺点及改进方向。最后探讨了该模型在其他三类数学建模赛题中的推广价值。关键词TOPSIS多属性决策熵权法MathorCup数据预处理目录摘要一、TOPSIS模型的完整数学公式推导LaTeX格式1.1 问题的数学描述1.2 正向化处理1.3 无量纲化归一化1.4 构造加权规范化矩阵1.5 确定正理想解与负理想解1.6 计算距离1.7 计算相对贴近度二、算法的伪代码详细步骤三、数据预处理方法针对MathorCup赛题假设3.1 缺失值处理3.2 异常值检测与修正3.3 数据标准化与正向化3.4 权重确定3.5 数据合理性假设示例四、模型在该赛题中的具体构建过程4.1 变量定义4.2 目标函数排序依据4.3 约束条件隐含在数据中4.4 模型求解流程五、求解过程与结果分析模拟数据5.1 求解过程Python实现核心部分5.2 结果表格示例5.3 分析结论5.4 可视化建议文字描述六、模型的优缺点分析6.1 优点6.2 缺点七、至少2个具体的改进方向改进方向1采用马氏距离替代欧氏距离改进方向2引入模糊TOPSIS处理不确定性八、该模型如何推广到其他3个不同的数学建模赛题8.1 推广12025年MathorCup A题“物流配送中心选址”8.2 推广22024年国赛C题“小麦发育期气象影响评估”8.3 推广3研究生数学建模竞赛“城市道路交通拥堵评价”8.4 跨赛题通用适配策略结论一、TOPSIS模型的完整数学公式推导LaTeX格式1.1 问题的数学描述设共有 mm 个待评价方案或对象记为 A1,A2,…,AmA1​,A2​,…,Am​每个方案有 nn 个评价指标记为 C1,C2,…,CnC1​,C2​,…,Cn​。原始决策矩阵为X(xij)m×n[x11x12⋯x1nx21x22⋯x2n⋮⋮⋱⋮xm1xm2⋯xmn]X(xij​)m×n​​x11​x21​⋮xm1​​x12​x22​⋮xm2​​⋯⋯⋱⋯​x1n​x2n​⋮xmn​​​其中 xijxij​ 表示第 ii 个方案在第 jj 个指标下的原始数值。1.2 正向化处理不同类型的指标效益型、成本型、区间型需要统一转化为效益型越大越好。效益型指标已为正向无需变换。成本型指标越小越好yijmax⁡ixij−xij或yij1xijϵyij​imax​xij​−xij​或yij​xij​ϵ1​其中 ϵϵ 为极小正数如 10−810−8防止除零。区间型指标落在 [a,b][a,b] 内最佳yij{1−a−xijmax⁡(a−min⁡(xij), max⁡(xij)−b),xija1,a≤xij≤b1−xij−bmax⁡(a−min⁡(xij), max⁡(xij)−b),xijbyij​⎩⎨⎧​1−max(a−min(xij​), max(xij​)−b)a−xij​​,1,1−max(a−min(xij​), max(xij​)−b)xij​−b​,​xij​aa≤xij​≤bxij​b​1.3 无量纲化归一化常用向量归一化法消除量纲影响zijyij∑k1mykj2,i1,…,m; j1,…,nzij​∑k1m​ykj2​​yij​​,i1,…,m; j1,…,n1.4 构造加权规范化矩阵设指标权重向量为 w(w1,w2,…,wn)⊤w(w1​,w2​,…,wn​)⊤满足 ∑j1nwj1∑j1n​wj​1则vijwj⋅zijvij​wj​⋅zij​1.5 确定正理想解与负理想解正理想解AA各项指标均为最优A(v1,v2,…,vn),vjmax⁡ivijA(v1​,v2​,…,vn​),vj​imax​vij​负理想解A−A−各项指标均为最劣A−(v1−,v2−,…,vn−),vj−min⁡ivijA−(v1−​,v2−​,…,vn−​),vj−​imin​vij​1.6 计算距离采用欧氏距离di∑j1n(vij−vj)2,di−∑j1n(vij−vj−)2di​j1∑n​(vij​−vj​)2​,di−​j1∑n​(vij​−vj−​)2​1.7 计算相对贴近度Cidi−didi−,0≤Ci≤1Ci​di​di−​di−​​,0≤Ci​≤1CiCi​ 越大方案越优。排序依据 CiCi​ 从大到小排列。二、算法的伪代码详细步骤text算法TOPSIS熵权法改进版 输入原始数据矩阵 X (m×n)指标类型数组 types (1×n) 输出各方案得分 C (m×1)排序结果 Begin // 步骤1数据正向化 for j 1 to n: if types[j] cost: X[:,j] max(X[:,j]) - X[:,j] else if types[j] interval: 设最佳区间 [a,b] M max(a - min(X[:,j]), max(X[:,j]) - b) for i 1 to m: if X[i,j] a: X[i,j] 1 - (a - X[i,j]) / M else if X[i,j] b: X[i,j] 1 - (X[i,j] - b) / M else: X[i,j] 1 // 效益型不做处理 end for // 步骤2向量归一化 for j 1 to n: norm sqrt(sum(X[:,j]^2)) Z[:,j] X[:,j] / norm end for // 步骤3熵权法计算权重 for j 1 to n: p[:,j] Z[:,j] / sum(Z[:,j]) e_j - (1 / ln(m)) * sum(p[:,j] * ln(p[:,j] eps)) d_j 1 - e_j end for w_j d_j / sum(d_j) // 权重归一化 // 步骤4加权矩阵 V Z * diag(w) // 步骤5理想解 V_plus max(V, axis0) V_minus min(V, axis0) // 步骤6距离与贴近度 for i 1 to m: d_plus[i] sqrt(sum((V[i,:] - V_plus)^2)) d_minus[i] sqrt(sum((V[i,:] - V_minus)^2)) C[i] d_minus[i] / (d_plus[i] d_minus[i]) end for // 步骤7排序 rank argsort(C, descendingTrue) return C, rank End三、数据预处理方法针对MathorCup赛题假设以第十六届MathorCup C题假设为“城市应急资源优化配置”为例指标可能包括响应时间成本型、覆盖人口效益型、成本成本型、设施可靠性效益型、区域重要性区间型如1-3级对应不同权重。3.1 缺失值处理若某方案缺失10%数据用同类均值填补。若连续缺失30%删除该方案或使用KNN插值。3.2 异常值检测与修正使用箱线图法Q1-1.5IQR, Q31.5IQR对超出范围的视为异常值替换为边界值盖帽法。3.3 数据标准化与正向化响应时间ymax⁡(x)−xymax(x)−x成本y1/xy1/x加小常数区域重要性设定区间 [2,3] 为最优采用区间型变换。3.4 权重确定为避免主观赋权采用熵权法详见伪代码步骤3。3.5 数据合理性假设示例假设收集了20个应急物资储备点方案指标如下储备点响应时间(min)覆盖人口(万人)建设成本(万元)可靠性评分区域重要性(1-5)P14.28.51200.923P26.112.32000.884..................预处理后得到标准化矩阵 ZZ。四、模型在该赛题中的具体构建过程4.1 变量定义m20m20 个备选应急点n5n5 个指标响应时间 (C1C1​成本型)、覆盖人口 (C2C2​效益型)、建设成本 (C3C3​成本型)、可靠性 (C4C4​效益型)、区域重要性 (C5C5​区间型最优区间 [2,3])决策变量ii 表示第 ii 个方案权重 wjwj​ 由熵权法自动计算4.2 目标函数排序依据并非传统优化目标而是综合得分最大化max⁡Cidi−didi−,∀imaxCi​di​di−​di−​​,∀i等价于选择 CiCi​ 最大的方案作为最优。4.3 约束条件隐含在数据中指标取值范围约束xij∈Rxij​∈R实际数据权重约束wj≥0, ∑wj1wj​≥0, ∑wj​1归一化约束∑i1mzij21∑i1m​zij2​14.4 模型求解流程读取原始数据20×5矩阵执行正向化、归一化熵权法得权重向量例w [0.31, 0.28, 0.22, 0.12, 0.07]加权后计算 d,d−d,d−得到贴近度 CiCi​ 并排序五、求解过程与结果分析模拟数据5.1 求解过程Python实现核心部分pythonimport numpy as np # 原始数据模拟 X np.array([ [4.2, 8.5, 120, 0.92, 3], [6.1, 12.3, 200, 0.88, 4], [3.5, 6.2, 90, 0.95, 2], # ... 共20行 ]) # 正向化成本型C1, C3 X[:,0] np.max(X[:,0]) - X[:,0] # 响应时间 X[:,2] 1 / (X[:,2] 1e-8) # 建设成本 # 归一化 Z X / np.sqrt(np.sum(X**2, axis0)) # 熵权法 P Z / np.sum(Z, axis0) E -np.sum(P * np.log(P 1e-8), axis0) / np.log(len(X)) D 1 - E W D / np.sum(D) # 加权 V Z * W # 理想解 V_plus np.max(V, axis0) V_minus np.min(V, axis0) # 距离 d_plus np.sqrt(np.sum((V - V_plus)**2, axis1)) d_minus np.sqrt(np.sum((V - V_minus)**2, axis1)) # 贴近度 C d_minus / (d_plus d_minus) ranking np.argsort(C)[::-1] 15.2 结果表格示例排名储备点贴近度 CiCi​综合评语1P30.873响应快、成本低2P70.812覆盖人口多3P10.756可靠性高............20P120.211成本高、响应慢5.3 分析结论P3贴近度0.873明显优于其他点因其响应时间仅3.5min且成本最低。熵权法显示“响应时间”权重最大0.31说明时间在应急决策中最为关键。P12得分低因其位于区域重要性仅为1且成本高。5.4 可视化建议文字描述雷达图展示排名前3与后3方案在各指标上的对比前3方案覆盖面积更大。柱状图所有方案的贴近度排序呈右偏分布表明少数方案表现极佳。热力图原始指标与 CiCi​ 的相关性响应时间与 CiCi​ 呈强负相关-0.85。六、模型的优缺点分析6.1 优点直观且物理意义明确贴近度 CiCi​ 直接反映方案与理想解的接近程度易于向非专业评委解释。对数据分布不敏感无需假设指标独立或正态分布适用性强。可结合客观权重熵权法避免了人为偏见适合MathorCup这类需要客观评价的赛题。6.2 缺点欧氏距离的等权性各维度距离贡献相同实际中指标可能高度相关或尺度差异大虽然归一化部分缓解。逆序问题当增加或删除方案时理想解改变可能引起方案排名颠倒。忽略指标间交互作用无法捕捉非线性耦合效应如“成本低但可靠性也低”的平衡关系。七、至少2个具体的改进方向改进方向1采用马氏距离替代欧氏距离马氏距离Mahalanobis distance能消除指标间的相关性影响。di(vi−v)⊤Σ−1(vi−v)di​(vi​−v)⊤Σ−1(vi​−v)​其中 ΣΣ 为指标的协方差矩阵。这样可以解决缺点2和缺点1的部分问题。代码修改pythoncov_inv np.linalg.inv(np.cov(V, rowvarFalse)) diff_p V - V_plus d_plus np.sqrt(np.diag(diff_p cov_inv diff_p.T))改进方向2引入模糊TOPSIS处理不确定性针对应急资源数据可能不精确如覆盖人口为“约10万”采用三角模糊数 x~ij(aij,bij,cij)x~ij​(aij​,bij​,cij​)。距离计算改为d(v~i,v~)∑j1n[(aij−aj)2(bij−bj)2(cij−cj)23]d(v~i​,v~)j1∑n​[3(aij​−aj​)2(bij​−bj​)2(cij​−cj​)2​]​贴近度公式不变。这样可处理模糊、不完整的评审数据。八、该模型如何推广到其他3个不同的数学建模赛题8.1 推广12025年MathorCup A题“物流配送中心选址”原赛题需要从多个候选点中选择最优配送中心考虑成本、时效、覆盖范围、土地价格等。TOPSIS应用方案候选地址指标运输成本成本型、平均送达时间成本型、服务人口效益型、扩建潜力效益型权重可采用熵权法或AHPTOPSIS组合输出选址排序8.2 推广22024年国赛C题“小麦发育期气象影响评估”原赛题评估不同种植区的小麦生长状况受温度、降水、日照影响的程度。TOPSIS应用方案不同年份/不同区域指标积温距平成本型、干旱指数成本型、日照时数效益型、产量效益型预处理对气象指数做标准化结果得出最适宜种植区或最不利年份排序辅助农业决策8.3 推广3研究生数学建模竞赛“城市道路交通拥堵评价”原赛题对城市多个路口或路段进行拥堵程度综合评价。TOPSIS应用方案路口ID指标平均车速效益型、拥堵时长成本型、排队长度成本型、通行能力效益型动态TOPSIS引入时间维度计算每周/每月的贴近度变化输出拥堵黑点排序及时序演变图8.4 跨赛题通用适配策略赛题类型方案维度指标维度权重确定特殊预处理资源选址类候选点成本、效益、风险熵权法区间型指标处理评估预测类对象/年份多特征指标专家AHP正向化与归一化排序决策类方案/策略多个评价维度组合赋权处理负向指标结论本文系统推导了TOPSIS模型的数学原理给出了完整的伪代码和Python实现并结合MathorCup赛题特点设计了数据预处理流程。通过应急资源优化配置的算例验证了模型能够有效排序方案并给出合理解释。同时指出了模型在距离度量、逆序问题及指标交互方面的不足提出了马氏距离和模糊TOPSIS两种改进方向。最后展示了该模型在物流选址、气象评估、交通拥堵三个不同赛题中的推广方法证明了TOPSIS模型在数学建模竞赛中的广泛适用性和强大生命力。