news 2026/4/17 0:49:33

2026妈妈杯数学建模第十六届MathorCup数学应用挑战赛 D题模型算法 思路+代码+模型 基于熵权法改进的TOPSIS模型及其在MathorCup赛题中的应用研究

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026妈妈杯数学建模第十六届MathorCup数学应用挑战赛 D题模型算法 思路+代码+模型 基于熵权法改进的TOPSIS模型及其在MathorCup赛题中的应用研究

摘要

TOPSIS(Technique 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 推广1:2025年MathorCup A题“物流配送中心选址”

8.2 推广2:2024年国赛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 正向化处理

不同类型的指标(效益型、成本型、区间型)需要统一转化为效益型(越大越好)。

  • 效益型指标(已为正向):无需变换。

  • 成本型指标(越小越好):

    yij=max⁡ixij−xij或yij=1xij+ϵyij​=imax​xij​−xij​或yij​=xij​+ϵ1​

    其中 ϵϵ 为极小正数(如 10−810−8)防止除零。

  • 区间型指标(落在 [a,b][a,b] 内最佳):

    yij={1−a−xijmax⁡(a−min⁡(xij), max⁡(xij)−b),xij<a1,a≤xij≤b1−xij−bmax⁡(a−min⁡(xij), max⁡(xij)−b),xij>byij​=⎩⎨⎧​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 无量纲化(归一化)

常用向量归一化法(消除量纲影响):

zij=yij∑k=1mykj2,i=1,…,m; j=1,…,nzij​=∑k=1m​ykj2​​yij​​,i=1,…,m; j=1,…,n

1.4 构造加权规范化矩阵

设指标权重向量为 w=(w1,w2,…,wn)⊤w=(w1​,w2​,…,wn​)⊤,满足 ∑j=1nwj=1∑j=1n​wj​=1,则:

vij=wj⋅zijvij​=wj​⋅zij​

1.5 确定正理想解与负理想解

  • 正理想解A+A+(各项指标均为最优):

    A+=(v1+,v2+,…,vn+),vj+=max⁡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+=∑j=1n(vij−vj+)2,di−=∑j=1n(vij−vj−)2di+​=j=1∑n​(vij​−vj+​)2​,di−​=j=1∑n​(vij​−vj−​)2​

1.7 计算相对贴近度

Ci=di−di++di−,0≤Ci≤1Ci​=di+​+di−​di−​​,0≤Ci​≤1

CiCi​ 越大,方案越优。排序依据 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, axis=0) V_minus = min(V, axis=0) // 步骤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, descending=True) return C, rank End

三、数据预处理方法(针对MathorCup赛题假设)

第十六届MathorCup C题(假设为“城市应急资源优化配置”)为例,指标可能包括:响应时间(成本型)、覆盖人口(效益型)、成本(成本型)、设施可靠性(效益型)、区域重要性(区间型,如1-3级对应不同权重)。

3.1 缺失值处理

  • 若某方案缺失<10%数据,用同类均值填补。

  • 若连续缺失>30%,删除该方案(或使用KNN插值)。

3.2 异常值检测与修正

使用箱线图法(Q1-1.5IQR, Q3+1.5IQR),对超出范围的视为异常值,替换为边界值(盖帽法)。

3.3 数据标准化与正向化

  • 响应时间:y=max⁡(x)−xy=max(x)−x

  • 成本:y=1/xy=1/x(加小常数)

  • 区域重要性:设定区间 [2,3] 为最优,采用区间型变换。

3.4 权重确定

为避免主观赋权,采用熵权法(详见伪代码步骤3)。

3.5 数据合理性假设示例

假设收集了20个应急物资储备点(方案),指标如下:

储备点响应时间(min)覆盖人口(万人)建设成本(万元)可靠性评分区域重要性(1-5)
P14.28.51200.923
P26.112.32000.884
..................

预处理后得到标准化矩阵 ZZ。


四、模型在该赛题中的具体构建过程

4.1 变量定义

  • m=20m=20 个备选应急点

  • n=5n=5 个指标:响应时间 (C1C1​,成本型)、覆盖人口 (C2C2​,效益型)、建设成本 (C3C3​,成本型)、可靠性 (C4C4​,效益型)、区域重要性 (C5C5​,区间型最优区间 [2,3])

  • 决策变量:ii 表示第 ii 个方案

  • 权重 wjwj​ 由熵权法自动计算

4.2 目标函数(排序依据)

并非传统优化目标,而是综合得分最大化

max⁡Ci=di−di++di−,∀imaxCi​=di+​+di−​di−​​,∀i

等价于选择 CiCi​ 最大的方案作为最优。

4.3 约束条件(隐含在数据中)

  • 指标取值范围约束:xij∈R+xij​∈R+(实际数据)

  • 权重约束:wj≥0, ∑wj=1wj​≥0, ∑wj​=1

  • 归一化约束:∑i=1mzij2=1∑i=1m​zij2​=1

4.4 模型求解流程

  1. 读取原始数据(20×5矩阵)

  2. 执行正向化、归一化

  3. 熵权法得权重向量(例:w = [0.31, 0.28, 0.22, 0.12, 0.07])

  4. 加权后计算 d+,d−d+,d−

  5. 得到贴近度 CiCi​ 并排序


五、求解过程与结果分析(模拟数据)

5.1 求解过程(Python实现核心部分)

python

import 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, axis=0)) # 熵权法 P = Z / np.sum(Z, axis=0) E = -np.sum(P * np.log(P + 1e-8), axis=0) / np.log(len(X)) D = 1 - E W = D / np.sum(D) # 加权 V = Z * W # 理想解 V_plus = np.max(V, axis=0) V_minus = np.min(V, axis=0) # 距离 d_plus = np.sqrt(np.sum((V - V_plus)**2, axis=1)) d_minus = np.sqrt(np.sum((V - V_minus)**2, axis=1)) # 贴近度 C = d_minus / (d_plus + d_minus) ranking = np.argsort(C)[::-1] + 1

5.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 优点

  1. 直观且物理意义明确:贴近度 CiCi​ 直接反映方案与理想解的接近程度,易于向非专业评委解释。

  2. 对数据分布不敏感:无需假设指标独立或正态分布,适用性强。

  3. 可结合客观权重:熵权法避免了人为偏见,适合MathorCup这类需要客观评价的赛题。

6.2 缺点

  1. 欧氏距离的等权性:各维度距离贡献相同,实际中指标可能高度相关或尺度差异大(虽然归一化部分缓解)。

  2. 逆序问题:当增加或删除方案时,理想解改变,可能引起方案排名颠倒。

  3. 忽略指标间交互作用:无法捕捉非线性耦合效应(如“成本低但可靠性也低”的平衡关系)。


七、至少2个具体的改进方向

改进方向1:采用马氏距离替代欧氏距离

马氏距离(Mahalanobis distance)能消除指标间的相关性影响。

di+=(vi−v+)⊤Σ−1(vi−v+)di+​=(vi​−v+)⊤Σ−1(vi​−v+)​

其中 ΣΣ 为指标的协方差矩阵。这样可以解决缺点2和缺点1的部分问题。

代码修改

python

cov_inv = np.linalg.inv(np.cov(V, rowvar=False)) 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~+)=∑j=1n[(aij−aj+)2+(bij−bj+)2+(cij−cj+)23]d(v~i​,v~+)=j=1∑n​[3(aij​−aj+​)2+(bij​−bj+​)2+(cij​−cj+​)2​]​

贴近度公式不变。这样可处理模糊、不完整的评审数据。


八、该模型如何推广到其他3个不同的数学建模赛题

8.1 推广1:2025年MathorCup A题“物流配送中心选址”

  • 原赛题:需要从多个候选点中选择最优配送中心,考虑成本、时效、覆盖范围、土地价格等。

  • TOPSIS应用

    • 方案:候选地址

    • 指标:运输成本(成本型)、平均送达时间(成本型)、服务人口(效益型)、扩建潜力(效益型)

    • 权重:可采用熵权法或AHP+TOPSIS组合

    • 输出:选址排序

8.2 推广2:2024年国赛C题“小麦发育期气象影响评估”

  • 原赛题:评估不同种植区的小麦生长状况受温度、降水、日照影响的程度。

  • TOPSIS应用

    • 方案:不同年份/不同区域

    • 指标:积温距平(成本型)、干旱指数(成本型)、日照时数(效益型)、产量(效益型)

    • 预处理:对气象指数做标准化

    • 结果:得出最适宜种植区或最不利年份排序,辅助农业决策

8.3 推广3:研究生数学建模竞赛“城市道路交通拥堵评价”

  • 原赛题:对城市多个路口或路段进行拥堵程度综合评价。

  • TOPSIS应用

    • 方案:路口ID

    • 指标:平均车速(效益型)、拥堵时长(成本型)、排队长度(成本型)、通行能力(效益型)

    • 动态TOPSIS:引入时间维度,计算每周/每月的贴近度变化

    • 输出:拥堵黑点排序及时序演变图

8.4 跨赛题通用适配策略

赛题类型方案维度指标维度权重确定特殊预处理
资源选址类候选点成本、效益、风险熵权法区间型指标处理
评估预测类对象/年份多特征指标专家+AHP正向化与归一化
排序决策类方案/策略多个评价维度组合赋权处理负向指标

结论

本文系统推导了TOPSIS模型的数学原理,给出了完整的伪代码和Python实现,并结合MathorCup赛题特点设计了数据预处理流程。通过应急资源优化配置的算例,验证了模型能够有效排序方案并给出合理解释。同时,指出了模型在距离度量、逆序问题及指标交互方面的不足,提出了马氏距离和模糊TOPSIS两种改进方向。最后,展示了该模型在物流选址、气象评估、交通拥堵三个不同赛题中的推广方法,证明了TOPSIS模型在数学建模竞赛中的广泛适用性和强大生命力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 0:40:20

如何用fre:ac免费音频转换器轻松管理你的音乐库

如何用fre:ac免费音频转换器轻松管理你的音乐库 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 你是否曾为音乐文件格式不统一而烦恼&#xff1f;或是想要将老式CD中的珍贵音乐数字化保存&#xff1f;f…

作者头像 李华
网站建设 2026/4/17 0:39:20

YOLOv11赋能:构建端到端野生动物智能监测系统

1. YOLOv11&#xff1a;野生动物监测的新利器 第一次接触YOLOv11是在去年的一次野外考察中。当时我们团队正在为某自然保护区设计智能监测方案&#xff0c;传统的红外相机人工巡检模式已经无法满足需求。试过几个开源模型后&#xff0c;YOLOv11的表现让我眼前一亮——在树影斑驳…

作者头像 李华
网站建设 2026/4/17 0:36:37

实战Windbg:从线上死锁到内存异常的全链路调试指南

1. 初识Windbg&#xff1a;调试利器与线上救火场景 第一次接触Windbg是在一个深夜的线上告警中。当时我们的订单处理服务突然卡死&#xff0c;监控显示线程数暴涨但CPU利用率却很低&#xff0c;典型的死锁特征。由于是生产环境&#xff0c;既不能随意重启服务&#xff0c;又无法…

作者头像 李华
网站建设 2026/4/17 0:28:32

2025届必备的五大降重复率网站实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下占据主流态势的AI检测工具着重凭借文本的困惑程度、突发特性以及统计模式来展开判断。降…

作者头像 李华