【2024数模国赛赛题思路公开】国赛B题第二套思路丨附可运行代码丨无偿自提
2024年数模国赛B题解题思路
B 题 生产过程中的决策问题
一、问题1解析
问题1的任务是为企业设计一个合理的抽样检测方案,基于少量样本推断整批零配件的次品率,帮助企业决定是否接收供应商提供的这批零配件。具体来说,企业需要依据两个不同置信度(95% 和 90%)来判断次品率是否超过或不超过标称值(10%)。
供应商声称的次品率为不超过10%,但企业需要通过抽样检测来验证实际次品率是否符合此要求。通过设计合理的抽样方案,企业可以在不同的置信度下做出关于是否接受这批零配件的决策。
情况1:在95%的置信水平下,如果次品率超过标称值(10%),则拒收该批次零配件。
情况2:在90%的置信水平下,如果次品率不超过标称值(10%),则接收该批次零配件。
抽样检测模型
本问题可以使用统计学中的假设检验方法进行抽样检测。具体步骤如下:
1. 假设检验模型
我们可以使用二项分布或正态分布来描述抽样的过程,具体步骤如下:
零假设H0: 次品率等于10%,即 p = 0.1 。
备择假设 H1 : 次品率不同于10%。
在情况1中,我们希望拒收零配件,意味着在95%的置信水平下拒绝H0 ,即认为次品率超过10%。
在情况2中,我们希望接收零配件,意味着在90%的置信水平下不拒绝H0,即认为次品率不超过10%。
2. 检验统计量
次品率的检测可以基于样本中不合格品的比例。假设抽取的样本量为n,不合格品的数量为X,则样本次品率为:
根据二项分布,假设次品率为p,则有:
当n 较大时,二项分布可以近似为正态分布:
其中p0=0.1为标称次品率。
3. 置信区间
根据置信水平的不同,利用正态分布的累积概率可以计算出相应的抽样量 n。对于95%和90%的置信水平,分别使用:
对于95%的置信水平:使用标准正态分布的临界值Z0.95=1.645。
对于90%的置信水平:使用标准正态分布的临界值Z0.90=1.28。
我们需要确定在给定的置信度下,样本次品率是否超出10%。
4. 抽样次数n的计算
情况1:在95%的置信度下,假设次品率大于10%,我们需要拒收零配件。可以根据公式推导出所需的最小样本量n,以保证检验的灵敏度:
通过该公式,我们可以求得n 值。
情况2:在90%的置信度下,假设次品率不超过10%,我们可以接收零配件。对应的样本量n 由:
在这两个条件下,我们可以分别计算所需的样本量n,并根据抽样的结果做出决策。
5. 具体计算步骤
(1) 设定假设:基于样本中观测到的次品率,计算标准差并应用正态分布近似。
(2) 计算临界值:根据给定的置信水平(95%和90%)计算对应的Z值。
(3) 确定抽样次数:使用上述公式确定样本量 n,使得能够满足所需的置信度要求。
(4) 结果分析:在样本量n 下,根据实际检测结果判断是否接收或拒收该批次零配件。
6.总结(问题一总结)
问题1的核心在于为企业设计一个基于抽样检测的方案,以有效评估供应商所提供的零配件是否符合次品率不超过10%的标称值。该问题的解决过程可以通过统计学中的假设检验和置信区间的概念来实现。在不同置信水平(95%和90%)下,企业需要判断是否接收这批零配件。具体而言,若在95%的置信水平下,检测显示次品率超过10%,则企业应拒收该批次零配件;在90%的置信水平下,若次品率未超过10%,则可接收该批次零配件。
为了实现这一目的,本问题采用了假设检验的统计学模型。零假设(H0H0)设定为次品率等于10%,而备择假设(H1H1)则表示次品率不同于10%。通过对抽样结果进行假设检验,企业可以判断是否接受或拒绝这批零配件。使用二项分布或正态分布对样本次品率进行建模,使得在大样本条件下的样本分布可以近似为正态分布。
在计算过程中,关键在于确定样本量 nn 以确保在不同的置信水平下能有效进行检验。样本量的计算基于正态分布的标准化统计量,通过公式推导出最小的样本量,使得在给定的置信水平下,能够做出关于次品率是否超出标称值的判断。
问题1通过假设检验和置信区间分析,成功构建了企业在不同置信水平下的抽样检测方案。该方案能够在减少检测成本的前提下,准确评估供应商提供的零配件质量是否符合企业的标准,帮助企业做出科学决策。
二、问题二解析
对于问题2,题目要求对企业的生产过程中各个阶段做出决策,涉及是否对零配件和成品进行检测,以及如何处理不合格产品。这是一个生产过程中的多阶段决策问题,我们可以通过成本分析、次品率计算以及决策树模型来为企业制定合理的检测和处理策略。以下是解题思路的具体展开:
企业生产某种电子产品,使用两种零配件(零配件1和零配件2)进行装配,最终产生成品。在整个过程中,企业需要做出以下几项决策:
(1)零配件检测:是否对零配件1和零配件2进行检测,不检测的零配件直接进入装配环节。
(2)成品检测:是否对成品进行检测,检测合格的成品进入市场。
(3)不合格成品处理:是否对不合格成品进行拆解,拆解后可以回收合格的零配件并重新使用,或者直接丢弃。
(4)用户退货处理:用户退回不合格成品后,企业承担物流、信誉等成本,需要决定是否再次拆解。
1. 模型设计
决策的关键是考虑检测成本、装配成本、次品率、调换损失和拆解费用之间的权衡,以此来做出最优决策。
决策模型设计:
我们可以采用决策树模型,考虑每个环节可能的决策及其结果。每个决策的目标是最小化总成本,这包括检测成本、次品率引起的损失(包括调换损失和拆解费用)等。
步骤1:零配件检测决策
检测零配件1或零配件2可以减少进入装配环节的不合格零配件,从而减少成品的次品率。
成本与收益分析:检测成本与不检测导致的次品率的损失之间的平衡。检测的目的在于减少不合格成品的数量,因此要比较检测成本与由于不检测导致更多不合格成品的调换损失、拆解费用等。
步骤2:成品检测决策
成品检测可以避免不合格成品直接进入市场,减少调换损失。
成本与收益分析:成品检测的成本要与调换损失、企业信誉的损失相权衡。检测合格的成品可以直接进入市场,而不合格的成品要么拆解、要么丢弃。
步骤3:不合格成品拆解决策
不合格成品的拆解会产生额外的拆解费用,但拆解出的零配件可以重复使用。
成本与收益分析:拆解费用与再次利用合格零配件带来的收益之间的平衡。如果拆解出的零配件价值较大,则拆解是合理的选择;否则可以考虑直接丢弃。
步骤4:退货产品处理
退货处理涉及到物流成本和企业信誉的损失,对于退回的不合格成品,企业要决定是否进行拆解。
成本与收益分析:与前面类似,考虑调换损失与拆解费用之间的平衡。
2. 模型构建:
(1) 设定变量:
Cd:检测成本
Ca:装配成本
Ct:拆解费用
Cr:调换损失
p1、p2:零配件1和零配件2的次品率
pf成品的次品率(基于零配件次品率计算)
(2) 目标函数:最小化总成本
总成本 = 检测成本 + 装配成本 + 不合格产品处理成本 + 调换损失 + 拆解费用
(3)约束条件:
零配件次品率、成品次品率以及检测、拆解成本等实际情况构成了约束条件。
不同情形下的决策方案:
表1中的不同情形(如零配件次品率、装配成本、检测成本等)会影响到每个决策的选择。具体方案可以基于以下原则:
1. 检测成本 vs 不检测损失:当检测成本低于不合格成品带来的损失时,进行检测。
2. 不合格成品处理:当拆解费用低于调换损失时,选择拆解不合格成品。
3. 用户退货处理:对于退回的不合格成品,综合调换损失和拆解费用做出合理决策。
3.总结(问题二总结)
问题二的核心是如何在企业生产过程中,通过合理的决策实现成本的最小化。企业在生产过程中,需要面对多个决策点,包括是否对零配件、半成品和成品进行检测,以及如何处理不合格成品。通过权衡检测成本、次品率、装配成本和不合格品处理成本,企业可以制定出最优的生产策略。
在整个生产流程中,企业首先需要决定是否对零配件1和零配件2进行检测。如果选择检测,这将能够有效减少进入装配环节的不合格品数量,从而降低成品的次品率。企业还需决定是否对成品进行检测。成品检测的目的是避免不合格的成品进入市场,减少因次品流入市场而带来的调换损失和企业信誉的影响。此外,企业在生产过程中还面临不合格成品的处理问题。对于检测出不合格的成品,企业可以选择进行拆解,回收其中的合格零配件,或者直接丢弃这些次品。拆解虽然需要额外的费用,但能减少材料浪费。最后,企业还需处理用户退回的产品,用户退回的不合格成品可能会带来物流和信誉损失,企业需要权衡是否对这些退回的产品进行再次拆解处理。
为了应对这些决策问题,我们可以构建一个数学模型,旨在最小化总成本。模型中包含检测成本、装配成本、调换损失和拆解费用等多种成本因素。在实际计算中,企业需要评估零配件的次品率对成品次品率的影响,以及检测决策对后续装配环节的影响。
在这种多阶段决策问题中,企业可以通过决策树或成本收益分析模型,评估每一个决策点对总成本的影响。在决策过程中,次品率是一个关键的决策变量。当检测成本较低且次品率较高时,企业应优先进行检测,以减少后续环节的不合格品处理成本。而在不合格成品的处理方面,如果拆解费用低于调换损失,企业应选择拆解以回收合格零配件;若调换损失较小,则可以选择丢弃不合格成品。
在不同的生产情境下,企业的决策将随次品率、检测成本、装配成本和拆解费用等因素的变化而调整。总的来说,问题二要求我们在生产的各个环节中做出基于成本最小化的合理决策,确保在减少次品率的同时,优化检测和不合格品处理策略,从而最大程度地降低企业的整体生产成本。
【Python参考代码】
# 导入必要的库
import pandas as pd
# 情况输入,基于表1的数据
data = {'情境': [1, 2, 3, 4, 5, 6],'零配件1_次品率': [0.1, 0.2, 0.1, 0.2, 0.1, 0.05],'零配件1_购买单价': [4, 4, 4, 4, 4, 4],'零配件1_检测成本': [2, 2, 2, 1, 8, 2],'零配件2_次品率': [0.1, 0.2, 0.1, 0.2, 0.2, 0.05],'零配件2_购买单价': [18, 18, 18, 18, 18, 18],'零配件2_检测成本': [3, 3, 3, 1, 1, 3],'成品_次品率': [0.1, 0.2, 0.1, 0.2, 0.1, 0.05],'成品_装配成本': [6, 6, 6, 6, 6, 6],'成品_检测成本': [3, 3, 3, 2, 2, 3],'成品_市场售价': [56, 56, 56, 56, 56, 56],'不合格成品_调换损失': [6, 6, 30, 30, 10, 10],'不合格成品_拆解费用': [5, 5, 5, 5, 5, 40]
}# 将数据转换为DataFrame
df = pd.DataFrame(data)# 定义成本计算函数
def calculate_cost(row, detect_parts=True, detect_products=True, rework_defects=True):"""计算在不同决策下的总成本:param row: 当前情形的数据:param detect_parts: 是否检测零配件:param detect_products: 是否检测成品:param rework_defects: 是否对不合格成品进行拆解:return: 总成本"""# 获取各类成本和次品率part1_defect_rate = row['零配件1_次品率']part2_defect_rate = row['零配件2_次品率']product_defect_rate = row['成品_次品率']part1_cost = row['零配件1_购买单价']part2_cost = row['零配件2_购买单价']product_price = row['成品_市场售价']product_assemble_cost = row['成品_装配成本']product_check_cost = row['成品_检测成本']swap_loss = row['不合格成品_调换损失']rework_cost = row['不合格成品_拆解费用']# 检测零配件的成本part_check_cost = 0if detect_parts:part_check_cost = row['零配件1_检测成本'] + row['零配件2_检测成本']# 如果检测,假设不合格零配件直接丢弃part1_defect_rate = 0part2_defect_rate = 0# 成品检测成本product_check_total_cost = 0if detect_products:product_check_total_cost = product_check_costproduct_defect_rate = 0 # 如果检测,直接丢弃不合格成品# 不合格成品处理成本product_defect_total_cost = product_defect_rate * (swap_loss + rework_cost if rework_defects else swap_loss)# 计算总成本 = 零配件成本 + 装配成本 + 检测成本 + 不合格处理成本total_cost = (part1_cost + part2_cost + product_assemble_cost + part_check_cost + product_check_total_cost + product_defect_total_cost)return total_cost# 对每种情境计算成本
decisions = []
for index, row in df.iterrows():# 三种决策情况的成本计算cost1 = calculate_cost(row, detect_parts=True, detect_products=True, rework_defects=True)cost2 = calculate_cost(row, detect_parts=False, detect_products=True, rework_defects=True)cost3 = calculate_cost(row, detect_parts=True, detect_products=False, rework_defects=False)# 找到最小的成本决策min_cost = min(cost1, cost2, cost3)if min_cost == cost1:decision = "检测零配件和成品,拆解不合格成品"elif min_cost == cost2:decision = "不检测零配件,检测成品,拆解不合格成品"else:decision = "检测零配件,不检测成品,不拆解不合格成品"decisions.append(decision)# 添加决策结果到DataFrame
df['最优决策'] = decisions# 打印最终决策结果
import ace_tools as tools; tools.display_dataframe_to_user(name="决策结果", dataframe=df)
相关文章:

【2024数模国赛赛题思路公开】国赛B题第二套思路丨附可运行代码丨无偿自提
2024年数模国赛B题解题思路 B 题 生产过程中的决策问题 一、问题1解析 问题1的任务是为企业设计一个合理的抽样检测方案,基于少量样本推断整批零配件的次品率,帮助企业决定是否接收供应商提供的这批零配件。具体来说,企业需要依据两个不同…...
P1166 打保龄球
共可以投 1 局 一局10轮 在一局中,一共有十个柱,会出现很多种情况。 第1次把10个 打倒全部 >> 分数10后2次得分 --若是第10轮则还需另加两次滚球; 没全部打倒 >> 第2次把剩下的 打倒 >&g…...

[数据集][目标检测]西红柿成熟度检测数据集VOC+YOLO格式3241张5类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3241 标注数量(xml文件个数):3241 标注数量(txt文件个数):3241 标注…...

数仓工具—Hive语法之URL 函数
hive—语法—URL 函数 业务需求中,我们经常需要对用户的访问、用户的来源进行分析,用于支持运营和决策。例如我们经常对用户访问的页面进行统计分析,分析热门受访页面的Top10,观察大部分用户最喜欢的访问最多的页面等: 又或者我们需要分析不同搜索平台的用户来源分析,统…...
c#如何实现触发另外一个文本框的回车事件
一.需求 我需要实现listview中的一行双击后,将其中的一个值传给一个文本框,传完后,给文本框一个回车指令。 我的方法:后面加上 \rthis.txt_ID.Text this.listView1.SelectedItems[0].Text"\r" 结果无效。 二.问通义…...
Vue 中 nextTick 的最主要作用是什么,为什么要有这个 API
在 Vue.js 中,nextTick 是一个用于在 DOM 更新后执行代码的 API。它的主要作用是确保在某个操作完成后,DOM 已经更新且可以被访问或操作。这个 API 在处理需要等待 DOM 更新完成的逻辑时非常有用。 nextTick 的最主要作用 确保 DOM 更新完成: Vue 的响应…...
python科学计算:NumPy 数组的运算
1 数组的数学运算 NumPy 提供了一系列用于数组运算的函数和操作符,这些运算可以作用于数组的每个元素上。常见的数学运算包括加、减、乘、除等。 1.1 元素级运算 NumPy 支持对数组的每个元素进行逐元素运算。这些操作可以通过标准的数学符号或 NumPy 函数来完成。…...

SAP B1 基础实操 - 用户定义字段 (UDF)
目录 一、功能介绍 1. 使用场景 2. 操作逻辑 3. 常用定义部分 3.1 主数据 3.2 营销单据 4. 字段设置表单 4.1 字段基础信息 4.2 不同类详细设置 4.3 默认值/必填 二、案例 1 要求 2 操作步骤 一、功能介绍 1. 使用场景 在实施过程中,经常会碰见用户需…...

Idea发布springboot项目无法识别到webapp下面的静态资源
问题: Idea发布springboot项目无法识别到webapp下面的静态资源 访问报错404 解决办法: 修改之后重新构建,访问成功...
Redis及其他缓存
1.NOSQL、Redis概述,通用命令,redis五大数据类型,三大特殊数据类型 NOSQL概述: (NOT ONLY SQL-不仅仅是SQL),泛指非关系型数据库,为解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用问题 常见no…...
golang入门
学习视频:https://www.bilibili.com/video/BV1gf4y1r79E go安装 go源码包一般解压到/usr/local/linux下go的环境变量配置: export GOROOT/usr/local/go # 源码包export GOPATH$HOME/go # 工作路径export PATH P A T H : PATH: PATH:GOROOT/bin:$GOPATH/…...

Behind the Code:与 Rakic 和 Todorovic 对话 OriginTrail 如何实现 AI 去中心化
原文:https://www.youtube.com/watch?vZMuLyLCtE3s&listPLtyd7v_I7PGnko80O0LCwQQsvhwAMu9cv&index12 作者:The Kusamarian 编译:OneBlock 随着人工智能技术的飞速发展,一系列前所未有的挑战随之而来:模型的…...

TS 学习 (持续更新中)
如果我们在 ts 中写 不用运行就能在文件中报错 ts 是一种静态类型的检查 能将运行时出现的错误前置 一般不用 命令行编译 ts 转换成 js 将中文转码 tsc index(.ts) 输入命令生成 配置文件 能在中间进行 配置转换成 js 的哪个规范 es5 还是 6 和其它转…...

el-table使用type=“expand”根据数据条件隐藏展开按钮
一:添加className <el-table :data"tableData" border :loading"loading" :row-class-name"getRowClass" expand-change"expandchange"><el-table-column type"expand"><template #default"…...
9月6日(∠・ω<)⌒☆
1、手写unique_ptr指针指针 #include <iostream> #include <stdexcept>template <typename T> class unique_ptr { public:// 构造函数explicit unique_ptr(T* ptr nullptr) : m_ptr(ptr) {}// 析构函数~unique_ptr() {delete m_ptr;}// 禁止复制构造函数…...
k8s执行crictl images报错
FATA[0000] validate service connection: CRI v1 image API is not implemented for endpoint "unix:///run/containerd/containerd.sock": rpc error: code Unimplemented desc unknown service runtime.v1.ImageService 解决方法: vim /etc/contai…...

基于人工智能的音乐情感分类系统
目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 音乐情感分类是通过对音乐音频信号进行分析,识别出音乐传递的情感,如“愉快”、“悲伤”、“愤怒”等。该技术…...
MySQL灾难恢复策略:构建稳健的备份与恢复机制
在现代企业环境中,数据的安全性和可靠性至关重要。灾难恢复计划(Disaster Recovery Plan, DRP)是确保在发生灾难性事件后,能够迅速恢复业务的关键策略。对于依赖MySQL数据库的系统,实现有效的灾难恢复计划尤为重要。本…...

docker安装DVWA(巨简单)
拉取镜像docker pull vulnerables/web-dvwa 启动docker run --rm -it -p 80:80 vulnerables/web-dvwa dvwa:...

使用matplotlab绘制多条形图
##黑马程序学习 这种多个条形图放在一起的图形该怎么画呢? 请看以下代码 #横着的条形图 from matplotlib import pyplot as plt import matplotlib#设置显示中文 和 负号 matplotlib.rcParams[font.sans-serif][SimHei] matplotlib.rcParams[axes.unicode_minus]F…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...