B题一二问入口:
2024 年高教社杯全国大学生数学建模竞赛B题_生产过程中的决策问题一二问解析(含全部代码)-CSDN博客
题目和数据入口:
2024 年高教社杯全国大学生数学建模竞赛B题 - 飞书云文档 (feishu.cn)
一:问题3
本题是依据题意将为企业生产过程的各个阶段作出决策。
首先读取数据:
import pandas as pd
# 读取文件
excel_file = pd.ExcelFile('表3_自制.xlsx')
# 获取所有表名
sheet_names = excel_file.sheet_names
# 获取指定工作表中的数据
df = excel_file.parse('Sheet1')
# 查看数据的基本信息和前几行
print('数据的基本信息:')
df.info()
print('数据的前几行:')
print(df.head())
基于执行结果,数据集包含 7 行 13 列。推测参与分析的字段及含义如下:
次品率
:表示产品的次品概率。检测成本
:表示对产品进行检测所需的成本。购买单价
:表示产品的购买价格。装配成本
:表示将产品进行装配所需的成本。拆解费用
:表示对产品进行拆解所需的费用。市场售价
:表示产品在市场上的销售价格。调换损失
:表示因产品调换而产生的损失。
接下来,我将根据上述信息,为企业生产过程的各个阶段作出决策。
# 定义一个空字典,用于存储决策结果
decisions = {}
# 零配件检测决策
for part in ['零配件1', '零配件2', '零配件3', '零配件4', '零配件5', '零配件6', '零配件7', '零配件8']:
# 如果检测成本小于次品率乘以购买单价,则进行检测
if df.loc[1, part] < df.loc[0, part] * df.loc[2, part]:
decisions[f'{part}是否检测'] = '是'
else:
decisions[f'{part}是否检测'] = '否'
# 半成品检测决策
for semi_product in ['半成品1', '半成品2', '半成品3']:
# 如果检测成本小于次品率乘以(半成品装配成本 + 零配件购买单价之和),则进行检测
if df.loc[1, semi_product] < df.loc[0, semi_product] * (df.loc[3, semi_product] + df.loc[2, [f'零配件{i}' for i in range(1, 9)]].sum()):
decisions[f'{semi_product}是否检测'] = '是'