【2024数模国赛赛题思路公开】国赛B题思路丨附可运行代码丨无偿自提

2024-09-05 22:52

本文主要是介绍【2024数模国赛赛题思路公开】国赛B题思路丨附可运行代码丨无偿自提,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2024年国赛B题解题思路

问题 1: 抽样检测方案设计

【题目分析】

分析:

  • 目标是设计一个高效的抽样检测方案,在尽量少的样本数量下,确保在高信度水平下做出正确的接受或拒收决策。
  • 需要处理两个不同的信度要求,这对样本量的计算提出了挑战。

思路:

  • 贝叶斯抽样优化:可以使用贝叶斯方法结合贝叶斯抽样优化(Bayesian Optimization)来动态调整样本量,以达到所需的信度水平。通过将次品率建模为贝叶斯后验分布,可以逐步减少样本量,同时保证决策的可靠性。
  • 自适应序贯抽样:使用逐步抽样方法,根据初始样本的检测结果动态调整后续样本量,优化检测成本和时间。
  • 蒙特卡洛模拟:模拟大量的抽样检测场景,估计在不同样本量下达成信度要求的概率,找到最小样本量的解决方案。

【解题思路】

目标

设计一个抽样检测方案,以确定是否接受供应商提供的零配件,要求在尽可能少的检测次数下达到两个信度标准:

  1. 在 95% 信度下认定零配件次品率超过标称值(拒收)。
  2. 在 90% 信度下认定零配件次品率不超过标称值(接收)。

建模过程

  1. 定义变量和假设
    • 设次品率为p ,标称次品率为p0=0.10 (即10%)。
    • 抽样样本量为n ,检测出次品的数量为 x。
    • 我们需要对p  进行假设检验,并根据检验结果决定是否接受或拒收。

    2. 抽样检测模型

  • 根据二项分布,我们有
  • 检验假设:

原假设

备择假设(用于拒收的情况)

  • 使用正态近似来简化问题,当 n较大时, 可近似为正态分布:

  • 标准化后的检测统计量为:

3. 检验条件

  • 我们设定显著性水平α  对应的信度为1-α 。
  • 对于拒收情况,信度为 95%,则 α=0.05。
  • 计算临界值:,其中为标准正态分布的逆函数。
  • 对于接收情况,信度为 90%,则 α=0.10。

4. 计算样本量n

    • 拒收的决策规则:若 Z>Z0.05,则拒收。
    • 结合样本量的计算公式,我们得到:

  • 通过展开可以得到对 n 的不等式:

  • 为简化计算,可以迭代求解n。

5. 智能优化算法引入

  • 为了优化样本量 n,引入贝叶斯优化。贝叶斯优化是一种基于高斯过程(Gaussian Process)的黑箱优化方法,可以在不确定的环境下高效找到最优参数。
  • 步骤
    1. 定义目标函数:最小化检测成本 ,其中 c 为单次检测成本。
    2. 目标函数中包含信度约束,使用贝叶斯优化逐步逼近最优的 n。
    3. 通过模拟不同的样本量 n,评估在95%和90%信度下的检测成功率,并调整 n 使得目标函数最小。

6. 贝叶斯优化流程

    • 初始化样本集,随机选择 n0 的样本量进行检测,计算检测成本。
    • 使用高斯过程拟合当前的检测结果。
    • 通过高斯过程预测新的 n,并计算期望改进(Expected Improvement, EI)。
    • 选择使期望改进最大的 n 作为下一步的检测样本量。
    • 更新高斯过程模型,重复迭代,直到找到满足信度约束且成本最低的样本量n* 。

7. 最终方案

  • 通过贝叶斯优化得到的最优样本量 n*,将其应用于实际的检测流程中,以确保在满足信度要求的情况下尽可能减少检测次数。

公式总结

检测统计量:

临界值条件:Z>Z0.05拒收,Z<Z0.10接受

样本量不等式:

目标函数最小化:

Python参考代码】

# 定义检测成本函数
def detection_cost(n, c):return n * c# 定义统计检验函数
def hypothesis_test(n, p0, alpha, x):# 计算标准化的Z统计量p_hat = x / nZ = (p_hat - p0) / np.sqrt(p0 * (1 - p0) / n)# 计算临界值Z_alpha = norm.ppf(1 - alpha)return Z, Z_alpha# 定义目标函数,贝叶斯优化用
def objective(n):n = int(n[0])  # 样本量必须是整数c = 2  # 单次检测成本设为2元(可以根据具体情况调整)p0 = 0.10  # 标称次品率alpha_reject = 0.05  # 拒收信度为95%alpha_accept = 0.10  # 接收信度为90%# 模拟检测x个次品x = binom.rvs(n, p0)  # 假设次品率刚好为标称值# 进行拒收和接收检验Z_reject, Z_alpha_reject = hypothesis_test(n, p0, alpha_reject, x)Z_accept, Z_alpha_accept = hypothesis_test(n, p0, alpha_accept, x)# 判断是否满足信度条件if Z_reject > Z_alpha_reject and Z_accept < Z_alpha_accept:# 若同时满足拒收和接收信度要求,则计算成本cost = detection_cost(n, c)else:# 若不满足信度要求,则设为较高的惩罚成本cost = detection_cost(n, c) + 1000  # 惩罚项return costfrom skopt.space import Real, Integer# 定义优化参数空间
param_space = [Integer(10, 1000, name='n')]# 使用贝叶斯优化进行最小化
result = gp_minimize(objective, param_space, n_calls=50, random_state=0)# 输出最优样本量和最小检测成本
print(f"Optimal sample size: {result.x[0]}")
print(f"Minimum detection cost: {result.fun}")
# 绘制优化过程的收敛情况
plot_convergence(result)
plt.title('Convergence Plot of Bayesian Optimization')
plt.xlabel('Number of Calls')
plt.ylabel('Objective Function Value (Cost)')
plt.grid(True)
plt.show()# 绘制样本量与检测成本的关系
sample_sizes = np.arange(10, 1000, 10)
costs = [objective([n]) for n in sample_sizes]plt.figure(figsize=(10, 6))
plt.plot(sample_sizes, costs, '-o', markersize=4, color='b', label='Detection Cost')
plt.axvline(result.x[0], color='r', linestyle='--', label=f'Optimal Sample Size: {result.x[0]}')
plt.title('Detection Cost vs. Sample Size')
plt.xlabel('Sample Size')
plt.ylabel('Detection Cost')
plt.legend()
plt.grid(True)
plt.show()

这篇关于【2024数模国赛赛题思路公开】国赛B题思路丨附可运行代码丨无偿自提的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140292

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d