【B题第二套完整论文已出】2024数模国赛B题第二套完整论文+可运行代码参考(无偿分享)
2024数模国赛B题完整论文
摘要:
随着电子产品制造业的快速发展,质量控制与成本优化问题成为生产过程中亟待解决的核心挑战。为应对生产环节中的质量不确定性及成本控制需求,本文结合抽样检测理论和成本效益分析,通过构建数学模型,探讨了如何在保证质量的前提下最小化生产成本的优化策略。我们基于零配件次品率、检测成本、成品检测与拆解费用等关键指标,制定了检测与处理的最优决策,并使用优化算法对模型进行求解。
针对问题一,本文设计了一种基于显著性水平和允许误差的抽样检测方案,计算了不同置信度下的最小样本量,通过决策理论分析零配件接受与拒收的标准,为后续生产决策提供数据支持。
针对问题二,本文通过构建生产流程的决策模型,全面分析了在次品率、检测成本、拆解费用等条件下,不同检测与处理策略对生产成本的影响。优化模型旨在确定最优检测与拆解策略,从而降低整体生产成本。
针对问题三,本文进一步扩展了问题二的模型,考虑到多个生产工序及多个零配件的协同作用,设计了多工序决策优化方案。通过对比不同策略组合的成本表现,找出在复杂生产流程中的最优生产控制方案。
针对问题四,本文在基于抽样检测估算出零配件和成品次品率的基础上,对前述模型进行了调整和优化。本文验证了通过抽样检测得到的次品率能够有效提升生产流程中的决策质量,减少生产过程中的次品处理损失,并进一步优化了生产成本。
本文验证了通过抽样检测得到的次品率能够有效提升生产流程中的决策质量,减少生产过程中的次品处理损失,并进一步优化了生产成本,本文的模型不仅贴合生产实践,能够有效解决质量控制和成本优化问题,还具有较强的实用性和可操作性。算法高效且适用范围广,可为电子产品生产中的供应链管理、质量保证、生产决策等领域提供参考和借鉴。
一、问题重述
1.1问题背景
随着现代制造业的飞速发展,特别是电子产品行业的复杂供应链和精密生产流程,如何在保证产品质量的前提下,合理控制生产成本已成为企业提升竞争力的关键问题之一。生产过程中,原材料、零配件、半成品和成品的质量对最终产品的市场表现和企业利润有着直接影响,而这些生产环节的质量控制往往伴随着较高的检测成本和处理不合格产品的费用。因此,如何在有限的资源和预算条件下,通过科学的检测和决策流程,找到质量控制与成本最优平衡点是企业亟待解决的重要课题。
在实际生产过程中,由于不同零配件和成品存在一定的次品率,企业需要在生产的各个阶段做出检测和处理决策。次品率较高的零配件和成品如果不经过检测直接投入市场,可能会造成客户退货、市场声誉受损等问题;而过于频繁的检测则会增加生产成本,影响企业的利润率。因此,如何在检测成本与次品处理成本之间做出权衡,优化检测策略成为生产管理中的重要研究方向。
本文针对生产环节中的质量控制问题,设计了一个以最小化生产成本为目标的决策模型,基于抽样检测方法和成本效益分析,分别对零配件的抽样方案、成品的检测与处理流程、以及多工序生产流程进行了研究。通过合理的决策模型,企业可以在保证质量的前提下,降低检测成本和处理费用,从而实现整个生产流程的优化与提升。
1.2问题提出
问题一:如何确定合理的样本量来估计次品率:由于生产中的零配件和成品存在一定的次品率,企业需要通过抽样检测来确定这些次品率。在保证检测结果准确的前提下,如何在不同的置信度和允许误差下计算合理的样本量,是生产流程优化的首要问题。
问题二:如何在零配件和成品的次品率基础上,确定最优的检测和处理策略:面对不同的次品率,企业可以选择对零配件和成品进行检测,但检测会增加生产成本。此外,企业还需要决定是否对不合格成品进行拆解或直接报废,拆解有助于回收零配件,但也会带来额外的费用。这些决策直接影响生产的总成本,因此如何在检测成本、次品处理成本之间找到平衡,是优化生产流程的关键问题。
问题三:在多工序的复杂生产环境下,如何协调各个工序的决策:生产过程中涉及多个零配件和工序,不同工序之间的决策相互关联,复杂的生产流程给企业带来了更高的管理难度。因此,如何在多工序环境下做出全局最优的检测与处理决策,以保证总成本最小化,是企业需要解决的又一重要问题。
问题四:如何在抽样检测的基础上,进一步优化生产决策:在对零配件和成品进行抽样检测并得到次品率后,企业还需要根据这些检测结果调整生产决策。如何利用抽样检测得到的次品率优化之前的问题二和问题三中的决策流程,并确保成本最小化,是模型的最终目标。
二、问题分析
策模型的求解。
针对问题一,确定合理的抽样检测方案 企业需要根据供应商提供的零配件的次品率,通过抽样检测来决定是否接收零配件。针对这一问题,我们设计了一种基于置信度和误差精度的抽样检测方案。在不同的置信度下,企业可以通过样本量的计算,判断是否接受零配件,确保在次品率超出标称值时及时拒收。
问题二,生产流程中的检测与处理决策 针对已知次品率的零配件和成品,企业需要在各个生产阶段做出是否检测和处理次品的决策。我们根据零配件和成品的次品率、检测成本以及拆解费用等关键因素,设计了全面的决策模型,帮助企业确定最优的检测策略以及对不合格成品的处理方式,从而控制生产成本。
问题三,多工序和多个零配件下的决策优化 本问题进一步扩展了生产环节,考虑了多个零配件与工序的复杂生产环境。通过对不同生产工序和多个零配件的综合分析,我们构建了全局优化模型,确定了各个工序中零配件检测与成品处理的最优方案。
问题四,基于抽样检测的次品率优化决策 在最后一个问题中,我们基于抽样检测得到的次品率,重新对问题二和问题三中的决策模型进行了优化。通过结合抽样检测结果,模型进一步改进了生产决策的精确性,帮助企业在不增加过多检测成本的前提下,提升生产效率并减少次品处理损失。
三、模型假设与符号说明
3.1基本模型假设
- 次品率假设:假设零配件和成品的次品率是已知或可通过抽样检测得到的,次品率在各个生产环节中是稳定的,不会随着时间或批次的变化而波动。
- 成本线性关系假设:假设生产中涉及的成本(包括检测成本、装配成本、拆解成本、市场损失等)是线性增加的,即单位成本不随生产规模或检测数量的变化而改变。
- 独立决策假设:假设在每个生产环节中,零配件和成品的检测决策是相互独立的,不同环节的决策不会相互影响。即每个阶段的检测与处理策略可以独立优化。
- 抽样检测代表性假设:假设抽样检测的结果能够准确反映整个批次的次品率。样本的次品率与总体的次品率一致,抽样结果具有统计代表性。
- 无其他外部干扰假设:假设整个生产过程中不存在其他外部干扰因素,如市场需求波动、设备故障等,这些因素不会对模型中的生产成本和次品率产生影响。
- 固定市场价格假设:假设成品的市场价格是固定的,不随市场供需或时间的变化而波动,成品的市场损失也保持固定比例。
3.2符号说明
:零配件的次品率。
:成品的次品率,即经过装配后,成品仍然为次品的概率。
:每个零配件的采购成本,即不检测直接购买的单价。
:每个零配件的检测成本,即对零配件进行检测的费用。
:成品的装配成本,即将所有零配件装配成成品的费用。
:成品的检测成本,即成品经过质量检测的费用。
:成品拆解成本,即将不合格的成品进行拆解、回收零配件的费用。
:市场损失,成品未检测或不合格成品进入市场后产生的损失。
:置信度对应的正态分布临界值,用于样本量计算。
:允许误差,用于控制样本量与实际次品率的误差范围。
:样本量,即在一定置信度和误差下,需要抽样检测的样本数量。
四、模型建立与求解
4.1问题一模型建立与求解
4.1.1问题背景
供应商承诺零配件的次品率不超过某个标称值(如10%)。
企业需要通过抽样检测方案,在不同信度下,确定是否接收这批零配件。
有两个情形:
(1)在95%的信度下认定零配件次品率超过标称值,则拒收这批零配件。
(2)在90%的信度下认定零配件次品率不超过标称值,则接收这批零配件。
4.1.2建模过程
该问题属于典型的质量控制中的假设检验问题。我们可以通过构建假设检验模型,计算所需的样本量,来满足企业在不同信度下的决策要求。
1. 确定假设
原假设::零配件的次品率
,即供应商提供的零配件次品率不超过标称值。
备择假设::零配件的次品率
,即零配件的次品率超过标称值。
这里的 是供应商承诺的标称次品率(如10%),
是真实的次品率。我们需要通过抽样来估计
,并根据抽样结果决定是否接收零配件。
2. 确定抽样方案
抽样方案的核心是确定样本量n,以及基于抽样数据的判断规则。
抽样比例估计
我们假设对 n 个零配件进行抽样,其中有 X 个次品,则次品率的估计为:
根据大样本性质,次品率 的标准差为:
在给定的置信度下,我们可以构建对应的置信区间,基于该区间判断是否拒收零配件。
3. 不同情形下的检验
情形 1:95% 信度下次品率超过标称值
当我们希望在95%的信度下判断次品率是否超过标称值,可以使用正态分布的检验。
显著性水平:α=0.05。
检验统计量:检验统计量 Z 的计算公式为:
我们查标准正态分布表,对于95%的信度,对应的临界值为:
拒绝域:如果 ,即:
则接收零配件。
4. 样本量的确定
样本量 n 的确定可以通过公式:
其中 E 是允许的误差精度。
对于95%的信度和90%的信度,可以分别代入对应的 值,结合标称次品率和误差精度,得到不同信度下所需的最小样本量。
4.1.3模型求解
通过代码计算了在不同信度下的样本量:
95% 信度下,所需的最小样本量为 609;
90% 信度下,所需的最小样本量为 370。
此外,还通过可视化分析了允许误差精度 E 与所需样本量之间的关系。图中展示了随着允许误差变小,所需的样本量迅速增加。这表明为了提高检测精度,需要增大样本量。
【参考代码】
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm# 设置标称次品率和误差精度
p0 = 0.10 # 标称次品率10%
alpha_95 = 0.05 # 显著性水平对于95%信度
alpha_90 = 0.10 # 显著性水平对于90%信度
E = 0.02 # 允许的误差精度# 计算对应信度下的Z值
Z_95 = norm.ppf(1 - alpha_95) # 对于95%信度
Z_90 = norm.ppf(1 - alpha_90) # 对于90%信度# 样本量公式
def calculate_sample_size(Z, p0, E):return (Z * np.sqrt(p0 * (1 - p0)) / E) ** 2# 计算不同信度下的样本量
n_95 = calculate_sample_size(Z_95, p0, E)
n_90 = calculate_sample_size(Z_90, p0, E)# 计算的样本量向上取整
n_95 = np.ceil(n_95)
n_90 = np.ceil(n_90)# 输出样本量结果
print(f"在95%信度下的最小样本量为: {n_95}")
print(f"在90%信度下的最小样本量为: {n_90}")# 绘制样本量随误差变化的趋势图
errors = np.linspace(0.005, 0.05, 100)
samples_95 = calculate_sample_size(Z_95, p0, errors)
samples_90 = calculate_sample_size(Z_90, p0, errors)plt.figure(figsize=(10, 6))
plt.plot(errors, samples_95, label='95% Confidence', color='blue', lin-estyle='--', linewidth=2)
plt.plot(errors, samples_90, label='90% Confidence', color='green', linestyle='-', linewidth=2)
plt.xlabel('Allowed Error (E)', fontsize=12)
plt.ylabel('Sample Size (n)', fontsize=12)
plt.title('Sample Size vs Allowed Error', fontsize=14)
plt.legend(loc='upper right')
plt.grid(True)# 美化图表
plt.style.use('seaborn-darkgrid')
plt.show()
4.2问题二模型建立与求解
4.2.1问题背景
企业生产过程中,需要购买两种零配件(零配件 1 和零配件 2),然后将它们装配成成品。如果任一零配件不合格,则成品必然不合格;如果两个零配件都合格,成品仍可能不合格。企业可以选择对零配件和成品进行检测,并对不合格成品进行拆解或报废。每个决策都影响着成本,目标是在最低成本下保证成品质量。
4.2.2建模过程
1. 决策变量
企业在生产过程中面临三大决策:
是否检测零配件:检测零配件时,次品会被剔除,剩余零配件用于装配成品。检测有检测成本,但可以避免次品进入生产环节。
是否检测成品:检测成品时,不合格成品会被剔除,减少市场上的次品风险。如果不检测,成品可能会导致客户退货,带来调换损失。
是否拆解不合格成品:企业可以选择拆解不合格成品,以保留完好的零配件,或者直接报废不合格成品。拆解虽然有成本,但可能降低总体损失。
2. 成本效益分析模型
模型通过计算不同决策下的总成本来选择最优策略。成本由以下几个部分组成:
2.1 零配件检测成本:
若检测零配件1,成本为:
若检测零配件2,成本为:
若不检测,则成本为购买零配件的单价 c1和c2。
2.2装配成本
成品装配成本是零配件成本之和,再加上固定的装配成本。
总装配成本为:
2.3成品检测成本
若检测成品,成品次品率影响检测成本,公式为:
若不检测,成品次品直接进入市场。
2.4不合格成品的处理
若选择拆解不合格成品,成本为拆解费用 。
若不拆解,直接报废并产生调换损失 。
4.2.3模型求解
通过代码计算,我们已生成并展示了多个场景下的成本分析图。通过查看这些图表,了解不同决策下的成本表现。每个场景的图表对比了5种不同的决策组合,包括检测和拆解策略,可以更直观地选择最优方案。
场景 1:零配件 1 和零配件 2 的次品率均为 10%,成品次品率为 10%
在场景 1 中,图表展示了5种不同的决策组合下的总成本:
Detect All & Rework(检测所有零配件和成品,并选择拆解不合格成品)是成本最低的策略。这表明在次品率为 10% 时,全面检测和拆解不合格产品能有效降低损失。
Detect All, No Rework 和 Detect Parts & Rework 的成本略高,分别不选择拆解或者不检测成品。
No Parts Detect, Rework 和 No Detect & No Rework 的成本最高,尤其是完全不进行检测和不拆解策略会导致高昂的调换损失。
场景 2:零配件 1 和零配件 2 的次品率均为 20%,成品次品率为 20%
在场景 2 中,次品率增加到 20%:
Detect All & Rework 再次显示出最优成本表现。相比其他策略,这种全面检测和拆解不合格产品的策略仍然是最佳选择。
No Detect & No Rework 的成本最高,因为高次品率导致大量不合格产品,增加了调换损失。
场景3 略
场景4 略
场景5 略
场景6 略
结论与决策建议:
1、零配件检测:在大多数情况下,检测所有零配件(零配件1和零配件2)是最优选择,特别是当次品率较高或检测成本较低时,零配件的检测可以有效降低后续的损失。
2、成品检测:全面检测成品在大多数情况下也是合理的决策。通过检测成品,企业可以避免高昂的退换损失,特别是在成品次品率较高的场景下。
3、拆解不合格成品:当拆解费用较低时,拆解不合格产品是最佳选择。然而,在拆解费用较高(如场景6)时,不拆解可能成为更具成本效益的决策。
4、最终建议:在大多数场景下,全面检测零配件和成品,并选择拆解不合格成品是最优策略,可以有效降低总成本,避免不必要的损失。只有当拆解费用过高时,可以考虑不拆解策略。
【参考代码】
import numpy as np
import matplotlib.pyplot as plt# 设置问题中的参数
params = [{'p1': 0.10, 'p2': 0.10, 'p_f': 0.10, 'c1': 4, 'c2': 18, 'c_d1': 2, 'c_d2': 3, 'c_df': 3, 'c_a': 6, 'c_m': 56,'c_r': 6, 'c_t': 5},{'p1': 0.20, 'p2': 0.20, 'p_f': 0.20, 'c1': 4, 'c2': 18, 'c_d1': 2, 'c_d2': 3, 'c_df': 3, 'c_a': 6, 'c_m': 56,'c_r': 6, 'c_t': 5},{'p1': 0.10, 'p2': 0.10, 'p_f': 0.10, 'c1': 4, 'c2': 18, 'c_d1': 2, 'c_d2': 3, 'c_df': 3, 'c_a': 6, 'c_m': 56,'c_r': 30, 'c_t': 5},{'p1': 0.20, 'p2': 0.20, 'p_f': 0.20, 'c1': 4, 'c2': 18, 'c_d1': 1, 'c_d2': 1, 'c_df': 2, 'c_a': 6, 'c_m': 56,'c_r': 30, 'c_t': 5},{'p1': 0.10, 'p2': 0.20, 'p_f': 0.10, 'c1': 4, 'c2': 18, 'c_d1': 8, 'c_d2': 1, 'c_df': 2, 'c_a': 6, 'c_m': 56,'c_r': 10, 'c_t': 5},{'p1': 0.05, 'p2': 0.05, 'p_f': 0.05, 'c1': 4, 'c2': 18, 'c_d1': 2, 'c_d2': 3, 'c_df': 3, 'c_a': 6, 'c_m': 56,'c_r': 10, 'c_t': 40}
]# 计算成本的函数
def calculate_cost(decision, p1, p2, p_f, c1, c2, c_d1, c_d2, c_df, c_a, c_m, c_r, c_t):# 零配件检测if decision['detect_parts']:cost_p1 = p1 * c_d1 + (1 - p1) * c1cost_p2 = p2 * c_d2 + (1 - p2) * c2else:cost_p1 = c1cost_p2 = c2# 成品装配成本assembly_cost = cost_p1 + cost_p2 + c_a# 成品检测if decision['detect_final']:final_cost = p_f * c_df + (1 - p_f) * assembly_costelse:final_cost = assembly_cost# 不合格成品拆解或丢弃if decision['rework_defective']:rework_cost = c_telse:rework_cost = c_r# 总成本total_cost = final_cost + rework_costreturn total_cost# 决策集合
decisions = [{'detect_parts': True, 'detect_final': True, 'rework_defective': True, 'label': 'Detect All & Rework'},{'detect_parts': True, 'detect_final': True, 'rework_defective': False, 'label': 'Detect All, No Rework'},{'detect_parts': True, 'detect_final': False, 'rework_defective': True, 'label': 'Detect Parts & Rework'},{'detect_parts': False, 'detect_final': True, 'rework_defective': True, 'label': 'No Parts Detect, Rework'},{'detect_parts': False, 'detect_final': False, 'rework_defective': False, 'label': 'No Detect & No Rework'}
]# 存储成本结果
results = []# 对每个情况进行成本计算
for i, scenario in enumerate(params):scenario_results = []for decision in decisions:cost = calculate_cost(decision,scenario['p1'], scenario['p2'], scenario['p_f'],scenario['c1'], scenario['c2'], scenario['c_d1'], scenar-io['c_d2'], scenario['c_df'],scenario['c_a'], scenario['c_m'], scenario['c_r'], scenar-io['c_t'])scenario_results.append(cost)results.append(scenario_results)# 可视化结果
for i, scenario_results in enumerate(results):plt.figure(figsize=(10, 6))labels = [decision['label'] for decision in decisions]plt.barh(labels, scenario_results, color=['blue', 'green', 'red', 'purple', 'orange'])plt.xlabel('Total Cost (Yuan)')plt.title(f'Cost Analysis for Scenario {i + 1}')plt.grid(True)plt.show()
4.3问题三模型建立与求解
4.3.1问题背景
在生产流程中,涉及多个零配件、半成品和成品的装配。企业需要在每个生产阶段(包括零配件、半成品和成品)作出检测和处理决策,以最大限度地降低总成本。问题三要求针对这些决策进行建模,通过比较不同决策组合下的总成本,找出最优策略。
4.3.2建模过程
1. 决策变量
企业的决策包括:
零配件检测:是否检测零配件,检测次品并剔除不合格品,但会产生检测成本。
半成品检测:是否检测装配后的半成品,剔除不合格的半成品,产生检测成本。
成品检测:是否检测成品,不合格成品会导致客户退货,产生退货损失。
拆解不合格成品:对不合格成品是否进行拆解再利用,或选择直接报废。拆解有拆解费用,而不拆解则有市场损失。
2. 模型的构建
模型的目标是通过对每个决策场景下的总成本进行计算与比较,来选择最优的决策组合。主要成本包括:
零配件成本:无论是否检测零配件,生产都需要采购零配件。但如果选择检测次品,次品会被剔除,减少进入装配环节的不合格品。
半成品检测成本:半成品装配完成后,企业可以选择是否检测半成品。
成品检测成本:成品装配完成后,企业可以选择是否检测成品。不检测成品的次品进入市场可能导致退货损失。
不合格成品处理:企业可以选择是否拆解不合格成品。拆解会产生费用,而直接报废则会导致市场损失。
3. 成本公式
4.3.3模型求解
根据生成的图表和结果表格,不同决策场景的成本分析如下:
Detect All & Rework(检测所有零配件、半成品和成品,并拆解不合格成品)总成本最低,为 99.3 元。这表明全面检测并处理不合格成品是最优策略,能够有效控制成本。
Detect All, No Rework(检测所有零配件、半成品和成品,但不拆解不合格成品)的总成本为 129.3 元,由于没有拆解,导致了较高的成本。
Detect Parts & Rework(只检测零配件,选择拆解不合格成品)总成本为 100.5 元,次优策略。
No Parts Detect, Rework(不检测零配件,但选择拆解不合格成品)的总成本为 104.6 元,表明不检测零配件仍能控制一定的成本。
No Detect & No Rework(不进行检测和拆解)总成本最高,为 136.0 元,这是最不优的决策方案。
结论
通过对不同决策组合的成本分析,企业可以选择全面检测并拆解不合格成品的策略,以有效控制次品率并减少损失。这种决策虽然有检测成本和拆解费用,但在长期生产中可以最小化总成本。
参考代码
import numpy as np
import matplotlib.pyplot as plt# 定义零配件、半成品和成品的相关参数
parts = [{'p': 0.10, 'cost': 2, 'test_cost': 1}, # 零配件1{'p': 0.10, 'cost': 8, 'test_cost': 1}, # 零配件2{'p': 0.10, 'cost': 12, 'test_cost': 2}, # 零配件3{'p': 0.10, 'cost': 2, 'test_cost': 1}, # 零配件4{'p': 0.10, 'cost': 8, 'test_cost': 1}, # 零配件5{'p': 0.10, 'cost': 12, 'test_cost': 2}, # 零配件6{'p': 0.10, 'cost': 8, 'test_cost': 1}, # 零配件7{'p': 0.10, 'cost': 12, 'test_cost': 2} # 零配件8
]half_products = [{'p': 0.10, 'assemble_cost': 8, 'test_cost': 4, 'rework_cost': 6}, # 半成品1{'p': 0.10, 'assemble_cost': 8, 'test_cost': 4, 'rework_cost': 6}, # 半成品2{'p': 0.10, 'assemble_cost': 8, 'test_cost': 4, 'rework_cost': 6}, # 半成品3
]final_product = {'p': 0.10, 'assemble_cost': 8, 'test_cost': 6, 're-work_cost': 10, 'market_price': 200, 'loss': 40}# 成本计算函数
def calculate_total_cost(detect_parts, detect_half, detect_final, re-work_defective):# 零配件检测total_cost_parts = 0for part in parts:if detect_parts:cost_part = part['p'] * part['test_cost'] + (1 - part['p']) * part['cost']else:cost_part = part['cost']total_cost_parts += cost_part# 半成品检测total_cost_half = 0for half in half_products:if detect_half:cost_half = half['p'] * half['test_cost'] + (1 - half['p']) * half['assemble_cost']else:cost_half = half['assemble_cost']total_cost_half += cost_half# 成品检测if detect_final:cost_final = final_product['p'] * final_product['test_cost'] + (1 - final_product['p']) * final_product['assemble_cost']else:cost_final = final_product['assemble_cost']# 不合格成品处理if rework_defective:rework_cost = final_product['rework_cost']else:rework_cost = final_product['loss']total_cost = total_cost_parts + total_cost_half + cost_final + re-work_costreturn total_cost# 决策场景
scenarios = [{'detect_parts': True, 'detect_half': True, 'detect_final': True, 'rework_defective': True, 'label': 'Detect All & Rework'},{'detect_parts': True, 'detect_half': True, 'detect_final': True, 'rework_defective': False, 'label': 'Detect All, No Rework'},{'detect_parts': True, 'detect_half': False, 'detect_final': True, 'rework_defective': True, 'label': 'Detect Parts & Rework'},{'detect_parts': False, 'detect_half': True, 'detect_final': True, 'rework_defective': True, 'label': 'No Parts Detect, Rework'},{'detect_parts': False, 'detect_half': False, 'detect_final': False, 'rework_defective': False, 'label': 'No Detect & No Rework'}
]# 计算每种场景下的总成本
results = []
for scenario in scenarios:cost = calculate_total_cost(scenario['detect_parts'],scenario['detect_half'],scenario['detect_final'],scenario['rework_defective'])results.append((scenario['label'], cost))# 将结果可视化
labels, costs = zip(*results)
plt.figure(figsize=(10, 6))
plt.barh(labels, costs, color=['blue', 'green', 'red', 'purple', 'orange'])
plt.xlabel('Total Cost (Yuan)')
plt.ylabel('Decision Scenarios')
plt.title('Cost Analysis for Different Decision Scenarios')
plt.grid(True)
plt.show()
4.4问题四模型建立与求解
4.4.1问题背景
在生产流程中,企业面临多个决策点,包括是否对零配件、半成品和成品进行检测,是否对不合格成品进行拆解。这些决策会直接影响总成本,并且次品率是通过抽样检测得出的。问题四要求企业通过合理的抽样方案来估计零配件和成品的次品率,并基于这些次品率做出优化决策,以最小化生产中的总体成本。
4.4.2建模过程
1. 样本量估计
为了估计零配件和成品的次品率,企业需要通过抽样检测来获取数据。根据不同的置信度和允许误差,我们可以使用以下公式来计算样本量:
2. 决策模型
估算出次品率后,企业需要在多个生产环节中做出以下决策:
是否检测零配件:通过检测,企业可以剔除次品,避免次品进入后续生产环节,但检测会产生成本;不检测可能导致次品进入生产,影响成品质量。
是否检测成品:成品检测可以剔除不合格产品,避免销售次品带来的客户退货和市场损失,但也会增加检测成本;如果不检测,次品可能进入市场,导致高额的退货损失。
是否拆解不合格成品:对于不合格成品,企业可以选择进行拆解回收部分零配件,但拆解有费用;不拆解则意味着直接报废,产生更大的损失。
3. 成本分析
对于每种决策组合,模型计算以下几部分成本:
零配件成本:根据是否检测零配件计算检测费用与采购费用的组合。
...
4.成本优化
...
4.4.3模型求解
代码通过以下几个步骤进行求解:
1、样本量计算:使用公式
基于置信度和误差计算出检测零配件和成品所需的样本量。
...
结论
全面检测零配件和成品,并选择拆解不合格产品,是成本最低且最优的决策方案。尽管检测和拆解增加了初始成本,但可以有效控制总成本。
参考代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm# 设置置信度和误差
confidence_levels = [0.95, 0.90]
errors = [0.02, 0.03] # Allowed errors# 样本量计算函数
def calculate_sample_size(p, Z, E):return (Z * np.sqrt(p * (1 - p)) / E) ** 2# 计算在不同置信度和误差下的样本量
def sample_size_for_parts(confidence, error, p=0.10):Z = norm.ppf(confidence)n = np.ceil(calculate_sample_size(p, Z, error))return n# 计算不同条件下的样本量
sample_sizes = []
for confidence in confidence_levels:for error in errors:n = sample_size_for_parts(confidence, error)sample_sizes.append((confidence, error, n))# 生成新次品率和基于这些次品率的决策模型
parts = [{'name': 'Part 1', 'p': 0.10, 'cost': 4, 'test_cost': 2},{'name': 'Part 2', 'p': 0.20, 'cost': 18, 'test_cost': 3}
]final_product = {'p': 0.10, 'assemble_cost': 6, 'test_cost': 3, 'mar-ket_price': 56, 'loss': 6, 'rework_cost': 5}# 成本计算函数
def calculate_cost(detect_parts, detect_final, rework_defective):total_cost_parts = 0for part in parts:if detect_parts:cost_part = part['p'] * part['test_cost'] + (1 - part['p']) * part['cost']else:cost_part = part['cost']total_cost_parts += cost_part# 成品检测和处理if detect_final:final_cost = final_product['p'] * final_product['test_cost'] + (1 - final_product['p']) * final_product['assemble_cost']else:final_cost = final_product['assemble_cost']if rework_defective:rework_cost = final_product['rework_cost']else:rework_cost = final_product['loss']total_cost = total_cost_parts + final_cost + rework_costreturn total_cost
五、模型评价与推广
5.1模型的优点
- 贴近实际生产场景
- 多环节协同优化
- 灵活适用的决策方案
- 可量化的成本与收益
5.2模型的不足
- 忽略了动态因素
- 未考虑生产中的不确定性
- 简化的成本结构
5.3模型的推广
- 应用于其他制造业领域:
- 结合动态环境下的优化:
- 引入多目标优化:
- 与智能制造结合:
参考文献
...
相关文章:

【B题第二套完整论文已出】2024数模国赛B题第二套完整论文+可运行代码参考(无偿分享)
2024数模国赛B题完整论文 摘要: 随着电子产品制造业的快速发展,质量控制与成本优化问题成为生产过程中亟待解决的核心挑战。为应对生产环节中的质量不确定性及成本控制需求,本文结合抽样检测理论和成本效益分析,通过构建数学模型…...

大数据之Flink(四)
11、水位线 11.1、水位线概念 一般实时流处理场景中,事件时间基本与处理时间保持同步,可能会略微延迟。 flink中用来衡量事件时间进展的标记就是水位线(WaterMark)。水位线可以看作一条特殊的数据记录,它是插入到数…...

《Web性能权威指南》-网络技术概览-读书笔记
注:TCP/IP等知识牵涉面太广,且不说本文,哪怕是原书,限于篇幅,很多知识点都是大致介绍下。如果想深入理解,需要更一步Google相关页面资料。 延迟与带宽 WPO,Web Performance Optimization&…...

最新版php进销存系统源码 ERP进销存专业化管理 永久免费升级更新+完整图文搭建教程
在当今信息化时代,企业管理的高效性与精确性是企业竞争力的关键。分享一款最新版的PHP进销存系统源码,一款专为企业设计的ERP进销存管理工具,其丰富的功能、灵活的子账号设置、强大的权限控制、以及独家升级的合同管理和报价单打印功能&#…...

【高效办公】三、两台电脑共享鼠标、键盘和文件,两台电脑当一个用的神操作!barrier
1.下载 ubuntu:sudo apt install barrierwindows:https://github.com/debauchee/barrier/releases-下载 : 2.4.0-Assets-BarrierSetup-2.4.0-release.exe 2.运行 ubuntu:sudo apt install barrierwindows:https://github.com/debauchee/barrier/releases-下载 : 2.4.0-Asset…...

智能合约系统DAPP开发
智能合约系统DAPP(去中心化应用)的开发是一个复杂且综合性的过程,它结合了区块链技术、智能合约编程、前端开发以及安全性等多方面的知识和技能。以下是对智能合约系统DAPP开发过程的详细概述: 一、需求分析 明确应用场景…...

宠物狗检测-目标检测数据集(包括VOC格式、YOLO格式)
宠物狗检测-目标检测数据集(包括VOC格式、YOLO格式) 数据集: 链接:https://pan.baidu.com/s/1roegkaGAURWUVRR-D7OzzA?pwddxv6 提取码:dxv6 数据集信息介绍: 共有20580 张图像和一一对应的标注文件 标…...

2.5多任务示例编程2
1.CUBEMX配置 2.代码 void StartADC(void const * argument) {/* USER CODE BEGIN StartADC */TickType_t pxPreviousWakeTimexTaskGetTickCount();/* Infinite loop */for(;;){HAL_ADC_Start(&hadc1);if(HAL_ADC_PollForConversion(&hadc1,100)HAL_OK){uint32_t valu…...

JavaWeb - 4 - Vue Ajax
一.Vue Vue Vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写 基于MVVM(Model-VIew-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上 官网:https://cn.vuejs.org…...

深入掌握Go语言中的正则表达式与字符串处理
Go语言中的正则表达式与模式匹配 在编程中,字符串处理是常见的需求之一,而正则表达式则是一个强大的工具,能够帮助我们实现复杂的字符串匹配、提取和替换功能。Go语言内置了对正则表达式的支持,通过regexp包,我们可以…...

Docker进入容器运行命令
Docker进入容器运行命令 1. **使用 docker exec 进入容器并运行命令**语法:示例 1:进入容器并启动交互式 Bash 终端示例 2:在容器中运行单个命令 2. **使用 docker attach 进入容器**3. **使用 docker run 启动新容器并运行命令**4. **使用 d…...

[数据集][目标检测]机油泄漏检测数据集VOC+YOLO格式43张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):43 标注数量(xml文件个数):43 标注数量(txt文件个数):43 标注类别数…...

Python实现读取Excel数据详细教学版
Python实现读取Excel数据详细教学版 在处理数据和进行数据分析时,Excel文件是常见的数据载体。通过Python读取Excel数据,可以方便地对数据进行进一步的处理和分析。以下将详细介绍使用Python读取Excel数据的方法和相关库的使用,并提供具体代…...

【HarmonyOS】- 内存优化
文章目录 知识回顾前言源码分析1. onMemoryLevel2. 使用LRUCache优化ArkTS内存原理介绍3. 使用生命周期管理优化ArkTS内存4. 使用purgeable优化C++内存拓展知识1. Purgeable Memory总结知识回顾 前言 当应用程序占用过多内存时,系统可能会频繁进行内存回收和重新分配,导致应…...

【生日视频制作】保时捷车主提车交车仪式感AE模板修改文字软件生成器教程特效素材【AE模板】
生日视频制作教程保时捷车主提车交车仪式感AE模板修改文字特效广告生成神器素材祝福玩法AE模板工程 怎么如何做的【生日视频制作】保时捷车主提车交车仪式感AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 下载AE模板 安装AE软件 把AE模板导入…...

【自用14】C++俄罗斯方块-思路复盘3
在上篇降落函数中使用到了判断游戏是否结束的功能,因此这篇先从判断游戏是否结束开始 判断游戏是否结束 void failCheck(void){if(!moveable(START_X,START_Y,MOVE_DOWN,BLOCK_UP)){setcolor(WHITE);setfont(45,0,_T("隶体"));outtextxy(75,300,_T(&quo…...

ElasticSearch的DSL查询⑤(ES数据聚合、DSL语法数据聚合、RestClient数据聚合)
目录 一、数据聚合 1.1 DSL实现聚合 1.1.1 Bucket聚合 1.1.2 带条件聚合 1.1.3 Metric聚合 1.1.4 总结 2.1 RestClient实现聚合 2.1.1 Bucket聚合 2.1.2 带条件聚合 2.2.3 Metric聚合 一、数据聚合 聚合(aggregations)可以让我们极其方便的实…...

DBeaver 24.0 高阶用法
DBeaver 24.0 高阶用法 文章目录 DBeaver 24.0 高阶用法DBeaver 介绍功能一、元数据搜索功能二、仪表盘显示功能三、ER图功能四、导出数据最后 DBeaver 介绍 DBeaver 确实是一款功能强大的通用数据库管理工具,适合所有需要以专业方式处理数据的用户。它不仅提供了直…...

外卖会员卡项目骗局揭秘,你还在做梦吗?改醒醒了
大家好,我是鲸天科技千千,大家都知道我是做开发的,做互联网行业很多年了,平时会在这里给大家分享一些互联网相关的小技巧和小项目,感兴趣的给我点个关注。 关于外卖会员卡这个项目的一些骗局和套路,我真的…...

比较顺序3s1,3s2,4s1之间的关系
(A,B)---6*30*2---(0,1)(1,0) 分类A和B,让B全是0。当收敛误差为7e-4,收敛199次取迭代次数平均值,3s1为 3s2为 4s1为 3s1,3s2,4s1这3个顺序之间是否有什么联系 , 因为4s1可以按照结构加法 变换成与4s1内在…...

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin
目录 [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法: [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问…...

数据库锁之行级锁、记录锁、间隙锁和临键锁
1. 行级锁 InnoDB 引擎支持行级锁,而MyISAM 引擎不支持行级锁,只支持表级锁。行级锁是基于索引实现的。 对于普通的select语句,是不会加记录锁的,因为它属于快照读,通过在MVCC中的undo log版本链实现。如果要在查询时对…...

基于yolov8的血细胞检测计数系统python源码+onnx模型+评估指标曲线+精美GUI界面
【算法介绍】 基于YOLOv8的血细胞检测与计数系统是一种利用深度学习技术,特别是YOLOv8目标检测算法,实现高效、准确血细胞识别的系统。该系统能够自动识别并计数图像或视频中的血细胞,包括红细胞、白细胞和血小板等,为医疗诊断提…...

【深度学习详解】Task3 实践方法论-分类任务实践 Datawhale X 李宏毅苹果书 AI夏令营
前言 综合之前的学习内容, 本篇将探究机器学习实践方法论 出现的问题及其原因 🍎 🍎 🍎 系列文章导航 【深度学习详解】Task1 机器学习基础-线性模型 Datawhale X 李宏毅苹果书 AI夏令营 【深度学习详解】Task2 分段线性模型-引入…...

乐凡北斗 | 手持北斗智能终端的作用与应用场景
在科技日新月异的今天,北斗智能终端作为一项融合了北斗导航系统与现代智能技术的创新成果,正悄然改变着我们的生活方式和工作模式。 北斗智能终端,是以北斗卫星导航系统为核心,集成了高精度定位、导航、授时等功能的智能设备。它…...

Linux:线程互斥
线程互斥 先看到一个抢票案例: class customer { public:int _ticket_num 0;pthread_t _tid;string _name; };int g_ticket 10000;void* buyTicket(void* args) {customer* cust (customer*)args;while(true){if(g_ticket > 0){usleep(1000);cout << …...

misc流量分析
一、wireshark语法 1、wireshark过滤语法 (1)过滤IP地址 ip.srcx.x..x.x 过滤源IP地址 ip.dstx.x.x.x 过滤目的IP ip.addrx.x.x.x 过滤某个IP (2)过滤端口号 tcp.port80tcp.srcport80 显示TCP的源端口80tcp.dstport80 显示…...

Linux驱动(五):Linux2.6驱动编写之设备树
目录 前言一、设备树是个啥?二、设备树编写语法规则1.文件类型2.设备树源文件(DTS)结构3.设备树源文件(DTS)解析 三、设备树API函数1.在内核中获取设备树节点(三种)2.获取设备树节点的属性 四、…...

算法【Java】 —— 前缀和
模板引入 一维前缀和 https://www.nowcoder.com/share/jump/9257752291725692504394 解法一:暴力枚举 在每次提供 l 与 r 的时候,都从 l 开始遍历数组,直到遇到 r 停止,这个方法的时间复杂度为 O(N * q) 解法二:前…...

python网络爬虫(四)——实战练习
0.为什么要学习网络爬虫 深度学习一般过程: 收集数据,尤其是有标签、高质量的数据是一件昂贵的工作。 爬虫的过程,就是模仿浏览器的行为,往目标站点发送请求,接收服务器的响应数据,提取需要的信息,…...