目录
- 2025“华中杯”大学生数学建模挑战赛
- 选题分析
- A题:晶硅片产销策略优化
- B题:校园共享单车的调度与维护问题
- C题:就业状态分析与预测
- D题:患者院内转运不良事件的分析与预测
- A 题 晶硅片产销策略优化
- 问题 1:月利润计算模型
- 问题分析
- 解题思路
- 模型算法
- 初步建模代码(Python)
- 问题 2:预测模型
- 问题分析
- 解题思路
- 模型算法
- 初步建模代码(Python)
- 问题 3:决策优化模型
- 问题分析
- 解题思路
- 模型算法
- 初步建模代码(Python)
2025“华中杯”大学生数学建模挑战赛
选题分析
目前来看本科组,C题的选题人数最多,C题>B题>A题
A题:晶硅片产销策略优化
这是一道典型的优化类题目。题目要求从晶硅片的销量、售价、单晶方棒进价等重要决策变量入手,综合考虑生产成本、销售费用、管理费用和财务费用等因素,建立数学模型来优化企业经营决策,提高企业利润。问题涉及多因素的相互制约与平衡,需要通过建立利润计算模型、预测模型以及决策优化模型,来解决不同阶段的问题,最终为企业提供9月份的生产计划与销售预案,甚至结合大语言模型进行更智能的决策支持。
B题:校园共享单车的调度与维护问题
这是一道调度与优化类题目。题目围绕校园共享单车的运营情况展开,要求参赛者基于单车数量统计和校园地图等数据,估算单车总量、建立停车点的用车需求模型、调度模型以及运营效率评价模型,并进一步优化停车点位布局,最后设计出高效的故障车辆巡检路线。该题目涉及多个环节的建模和优化,需要综合运用数学建模、运筹学和图论等知识,解决实际运营中的供需矛盾、调度效率和维护成本等问题。
C题:就业状态分析与预测
这是一道数据分析与预测类题目。题目提供宜昌地区部分就业数据,要求参赛者先进行数据特征分析,了解不同特征(如年龄、性别、学历等)对就业状态的影响,再构建就业状态预测模型并对预测集进行预测,同时对模型进行评估和优化,并进一步考虑宏观经济等因素的影响来完善模型,最后建立人岗匹配模型。该题目重点考察参赛者对数据的处理和分析能力、特征选择和模型构建能力,以及对就业市场的理解。
D题:患者院内转运不良事件的分析与预测
这是一道预测类题目。题目提供某医院急诊危重患者及神经外科患者院内转运的相关数据,要求参赛者分析转运过程中病情变化的影响因素、不良事件的影响因素及相关性,建立不良事件的预测模型,并从医院管理角度给出建设性意见。该题目需要参赛者深入挖掘数据中的因果关系,运用统计分析、机器学习等方法进行建模和预测。
A 题 晶硅片产销策略优化
以下是对该数学建模问题中每个问题的详细分析、解题思路、模型算法以及初步建模代码:
问题 1:月利润计算模型
问题分析
- 需要建立一个月利润计算模型,重点考虑四型硅片的销量、售价、单晶方棒进价以及其他影响企业利润的重要决策因子。
- 利润受多种因素影响,包括生产成本(硅单耗、耗材价格、生产变动成本、生产公用成本、人工成本等)、销售量、销售费用、管理费用和财务费用等。
解题思路
- 明确利润公式:利润 = 销售收入 - 总成本。
- 分解成本:将总成本分解为固定成本和变动成本,固定成本包括设备折旧、管理人员工资等,变动成本包括原材料成本、生产过程中的耗材成本等。
- 建立关系式:根据附件 1 中的说明,建立各变量之间的关系式,如销售收入 = 销售量 × 售价,原材料成本 = 硅单耗 × 单晶方棒进价 × 生产量等。
- 整合模型:将所有关系式整合到利润公式中,形成完整的月利润计算模型。
模型算法
- 线性规划:如果各变量之间的关系是线性的,可以使用线性规划模型来求解。
- 非线性规划:如果存在非线性关系,如成本与产量之间的非线性关系,可以使用非线性规划模型。
初步建模代码(Python)
import numpy as np# 定义变量
x = np.array([x1, x2, x3, x4]) # 四型硅片的销量
p = np.array([p1, p2, p3, p4]) # 四型硅片的售价
c = np.array([c1, c2, c3, c4]) # 四型硅片的单晶方棒进价
si = np.array([si1, si2, si3, si4]) # 四型硅片的硅单耗
fixed_cost = 100000 # 固定成本
variable_cost_per_unit = np.array([vc1, vc2, vc3, vc4]) # 每单位产品的变动成本
selling_expense = 0.1 * np.sum(x * p) # 销售费用,假设为销售收入的10%
management_expense = 50000 # 管理费用
financial_expense = 20000 # 财务费用# 计算利润
revenue = np.sum(x * p) # 销售收入
raw_material_cost = np.sum(si * c * x) # 原材料成本
variable_cost = np.sum(variable_cost_per_unit * x) # 变动成本
total_cost = fixed_cost + raw_material_cost + variable_cost + selling_expense + management_expense + financial_expense
profit = revenue - total_costprint("月利润为:", profit)
问题 2:预测模型
问题分析
- 需要建立数学模型预测企业四型硅片的月销量、售价、单晶方棒价格以及其他重要因子的波动趋势,并推测因子的合理变化区间。
- 需要利用附件 2 中的 2024 年 1 至 8 月的数据来建立模型。
解题思路
- 数据预处理:对附件 2 中的数据进行预处理,包括数据清洗、缺失值处理、异常值处理等。
- 选择预测方法:根据数据的特点选择合适的预测方法,如时间序列分析(ARIMA 模型)、回归分析(线性回归、多项式回归)、机器学习方法(随机森林、神经网络)等。
- 建立预测模型:使用选定的方法建立预测模型,对各因子进行预测。
- 确定变化区间:根据预测结果和历史数据的波动情况,确定各因子的合理变化区间。
模型算法
- 时间序列分析:ARIMA 模型适用于具有时间序列特征的数据预测。
- 回归分析:线性回归或多项式回归可用于预测因子之间的线性或非线性关系。
- 机器学习方法:随机森林、神经网络等可用于处理复杂的非线性关系和高维数据。
初步建模代码(Python)
import pandas as pd
import numpy as np
from statsmodels.tsa.arima.model import ARIMA
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split# 加载数据
data = pd.read_csv("附件2.csv")# 数据预处理
data = data.dropna() # 删除缺失值
data = data[data['销量'] > 0] # 删除销量为0的异常值# 时间序列预测(以销量为例)
time_series = data['销量']
model = ARIMA(time_series, order=(5, 1, 0))
model_fit = model.fit()
forecast = model_fit.forecast(steps=1) # 预测下一个月的销量
print("预测的销量:", forecast)# 回归分析预测(以售价为例)
X = data[['销量', '单晶方棒进价']] # 自变量
y = data['售价'] # 因变量
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
regressor = LinearRegression()
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)
print("预测的售价:", y_pred)# 机器学习方法预测(以单晶方棒价格为例)
X = data[['销量', '售价']] # 自变量
y = data['单晶方棒进价'] # 因变量
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
regressor = RandomForestRegressor()
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)
print("预测的单晶方棒价格:", y_pred)
问题 3:决策优化模型
问题分析
- 需要建立能够辅助决策优化企业利润的数学模型,并依据模型的计算结果,给出 9 月份的生产计划与销售预案。
- 企业面临售价与销量的反向关系、固定成本与产量的反向关系、变动成本波动等多方面的制约与冲突。
解题思路
- 建立目标函数:以最大化企业利润为目标函数。
- 确定约束条件:根据企业的实际情况,确定约束条件,如生产量、销售量、原材料供应、设备产能等。
- 选择优化方法:根据目标函数和约束条件的特点,选择合适的优化方法,如线性规划、非线性规划、遗传算法等。
- 求解优化模型:使用选定的优化方法求解模型,得到最优的生产计划与销售预案。
模型算法
- 线性规划:如果目标函数和约束条件都是线性的,可以使用线性规划模型。
- 非线性规划:如果存在非线性关系,可以使用非线性规划模型。
- 遗传算法:适用于复杂的非线性优化问题,能够搜索到全局最优解。
初步建模代码(Python)
from scipy.optimize import linprog# 定义目标函数系数(以最大化利润为例)
c = [-p1, -p2, -p3, -p4] # 售价的负值,因为linprog默认求最小值# 定义约束条件
A = [[1, 1, 1, 1]] # 生产量约束
b = [1000] # 最大生产量
A_eq = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] # 销量约束
b_eq = [x1, x2, x3, x4] # 销量目标# 求解线性规划模型
result = linprog(c, A_ub=A, b_ub=b, A_eq=A_eq, b_eq=b_eq, bounds=(0, None))# 输出结果
print("最优生产计划:", result.x)
print("最大利润:", -result.fun)