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) * c1
cost_p2 = p2 * c_d2 + (1 - p2) * c2
else:
cost_p1 = c1
cost_p2 = c2
# 成品装配成本
assembly_cost = cost_p1 + cost_p2 + c_a
# 成品检测
if decision['detect_final']:
final_cost = p_f * c_df + (1 - p_f) * assembly_cost
else:
final_cost = assembly_cost
# 不合格成品拆解或丢弃
if decision['rework_defective']:
rework_cost = c_t
else:
rework_cost = c_r
# 总成本
total_cost = final_cost + rework_cost
return 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 = 0
for 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 = 0
for 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_cost
return 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 = 0
for 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_cost
return total_cost
五、模型评价与推广
5.1模型的优点
- 贴近实际生产场景
- 多环节协同优化
- 灵活适用的决策方案
- 可量化的成本与收益
5.2模型的不足
- 忽略了动态因素
- 未考虑生产中的不确定性
- 简化的成本结构
5.3模型的推广
- 应用于其他制造业领域:
- 结合动态环境下的优化:
- 引入多目标优化:
- 与智能制造结合:
参考文献
...