2024数学建模国赛B题生产过程中的决策问题详细思路:基于抽样检测和多阶段决策模型

2024高教社杯数学建模竞赛A题B题C题D题E题完整成品文章和全部问题的解题代码完整版本更新如下:https://www.yuque.com/u42168770/qv6z0d/rytbc1nelty1mu4o

问题分析

这道题目涉及了一个电子产品生产企业的决策问题,主要包括零配件采购、生产过程管理和质量控制等方面。题目分为四个子问题,逐步深入探讨了企业在生产过程中面临的各种决策情况。

问题1针对零配件采购环节,要求设计一个抽样检测方案来决定是否接收供应商提供的零配件批次。这个问题主要涉及统计学中的假设检验理论。可以考虑使用二项分布或超几何分布来建立模型,通过设定显著性水平和检验功效来确定最优的样本量。需要权衡检测成本和错误决策的风险,找到一个平衡点。可能使用的方法包括单次抽样计划、多次抽样计划或序贯抽样计划。这个问题的难点在于如何在保证检测效果的同时最小化检测次数,需要综合考虑成本效益和统计可靠性。

问题2关注生产过程中的多个决策点,包括零配件检测、成品检测、不合格品处理等。这是一个典型的多阶段决策问题,可以考虑使用决策树或动态规划方法来建模。每个决策点都会影响后续的成本和收益,需要考虑的因素包括各种检测成本、拆解成本、调换损失以及市场售价等。可以通过构建一个综合的成本-收益模型,对不同决策方案进行评估和比较。这个问题的难点在于如何处理各个决策点之间的相互影响,以及如何在多个目标(如成本最小化和质量保证)之间找到最佳平衡。可能需要使用多目标优化技术或敏感性分析来深入探讨不同因素的影响。

问题3将问题2的情景扩展到更复杂的多工序、多零配件情况。这个问题可以看作是一个更大规模的供应链优化问题。可以考虑使用网络流模型或整数规划模型来描述整个生产过程。每个工序和零配件都可以看作是网络中的一个节点,需要考虑的约束条件包括产能限制、质量要求、成本控制等。由于问题规模较大,可能需要使用启发式算法或分解方法来求解。这个问题的难点在于如何有效地处理大规模的决策变量和约束条件,以及如何在计算复杂度和解的质量之间取得平衡。可能需要结合运筹学、图论等多个领域的知识来构建一个综合的优化模型。

模型的建立与求解

模型的建立与求解

问题一模型的建立与求解

思路分析

2024数学建模国赛B题问题一要求我们为企业设计一个抽样检测方案,以决定是否接收从供应商购买的一批零配件。这个问题的核心在于如何在保证检测准确性的同时,尽可能减少检测次数,从而降低企业的检测成本。我们需要考虑的关键因素包括供应商声称的次品率标称值、企业期望的置信水平、以及可接受的错误决策风险。

在统计学中,这类问题通常可以用假设检验的方法来解决。我们可以将供应商声称的次品率标称值作为原假设,然后通过抽样检测来判断是否有足够的证据拒绝这个假设。考虑到题目中提到的两种情形(95%的信度下拒收和90%的信度下接收),我们可以构建一个双边假设检验模型。

为了最小化检测次数,我们可以考虑采用序贯概率比检验(Sequential Probability Ratio Test, SPRT)方法。这种方法允许我们在检测过程中动态决定是否需要继续抽样,而不是事先确定一个固定的样本量。SPRT方法的优势在于,它可以在保证所需置信水平的同时,平均而言使用最少的样本量。

在建立模型时,我们需要确定两个重要的参数:可接受质量水平(Acceptable Quality Level, AQL)和拒绝质量水平(Rejectable Quality Level, RQL)。AQL可以基于供应商声称的标称值来设定,而RQL则需要根据企业的质量控制要求来确定。此外,我们还需要考虑两类错误的风险:第一类错误(误拒)和第二类错误(误收)的概率。

序贯概率比检验(SPRT)模型建立

基于上述思路,我们可以建立一个序贯概率比检验模型来解决这个问题。SPRT模型的核心思想是在每次抽样检测后,计算似然比,并将其与预先设定的上下限进行比较,以决定是否需要继续抽样或者做出接收/拒绝的决定。

首先,我们需要定义以下参数:

  1. p 0 p_0 p0:可接受质量水平(AQL),可以设定为供应商声称的标称值。
  2. p 1 p_1 p1:拒绝质量水平(RQL),需要根据企业的质量要求来确定。
  3. α \alpha α:第一类错误(误拒)的概率。
  4. β \beta β:第二类错误(误收)的概率。

接下来,我们定义似然比函数:

L ( x ) = p 1 x ( 1 − p 1 ) n − x p 0 x ( 1 − p 0 ) n − x L(x) = \frac{p_1^x(1-p_1)^{n-x}}{p_0^x(1-p_0)^{n-x}} L(x)=p0x(1p0)nxp1x(1p1)nx

其中, n n n是当前的样本量, x x x是观察到的不合格品数量。

然后,我们需要计算两个决策边界:

A = 1 − β α A = \frac{1-\beta}{\alpha} A=α1β
B = β 1 − α B = \frac{\beta}{1-\alpha} B=1αβ

SPRT的决策规则如下:

  1. 如果 L ( x ) ≥ A L(x) \geq A L(x)A,则拒绝这批零配件。
  2. 如果 L ( x ) ≤ B L(x) \leq B L(x)B,则接受这批零配件。
  3. 如果 B < L ( x ) < A B < L(x) < A B<L(x)<A,则继续抽样。

为了简化计算,我们可以对似然比函数取对数,得到:

ln ⁡ L ( x ) = x ln ⁡ ( p 1 p 0 ) + ( n − x ) ln ⁡ ( 1 − p 1 1 − p 0 ) \ln L(x) = x \ln(\frac{p_1}{p_0}) + (n-x) \ln(\frac{1-p_1}{1-p_0}) lnL(x)=xln(p0p1)+(nx)ln(1p01p1)

相应地,决策边界变为:

ln ⁡ A = ln ⁡ ( 1 − β α ) \ln A = \ln(\frac{1-\beta}{\alpha}) lnA=ln(α1β)
ln ⁡ B = ln ⁡ ( β 1 − α ) \ln B = \ln(\frac{\beta}{1-\alpha}) lnB=ln(1αβ)

动态抽样决策算法步骤

基于SPRT模型,我们可以设计一个动态抽样决策算法来实现最优的检测方案。该算法的步骤如下:

  1. 初始化参数:设定 p 0 p_0 p0, p 1 p_1 p1, α \alpha α, β \beta β,并计算 ln ⁡ A \ln A lnA ln ⁡ B \ln B lnB

  2. 开始抽样:从批次中随机抽取一个样本进行检测。

  3. 更新统计量:记录当前的样本量 n n n 和不合格品数量 x x x

  4. 计算对数似然比: ln ⁡ L ( x ) = x ln ⁡ ( p 1 p 0 ) + ( n − x ) ln ⁡ ( 1 − p 1 1 − p 0 ) \ln L(x) = x \ln(\frac{p_1}{p_0}) + (n-x) \ln(\frac{1-p_1}{1-p_0}) lnL(x)=xln(p0p1)+(nx)ln(1p01p1)

  5. 决策:(略,见完整版本)

模型数学公式与解释

2024数学建模国赛B题:为了更深入地理解SPRT模型,我们需要详细解释其中涉及的数学公式及其含义。

  1. 似然比函数:

L ( x ) = p 1 x ( 1 − p 1 ) n − x p 0 x ( 1 − p 0 ) n − x L(x) = \frac{p_1^x(1-p_1)^{n-x}}{p_0^x(1-p_0)^{n-x}} L(x)=p0x(1p0)nxp1x(1p1)nx

这个函数表示在观察到x个不合格品时,批次实际次品率为p1的可能性与次品率为p0的可能性之比。如果这个比值很大,说明观察到的数据更支持p1而不是p0,反之亦然。

  1. 对数似然比:

ln ⁡ L ( x ) = x ln ⁡ ( p 1 p 0 ) + ( n − x ) ln ⁡ ( 1 − p 1 1 − p 0 ) \ln L(x) = x \ln(\frac{p_1}{p_0}) + (n-x) \ln(\frac{1-p_1}{1-p_0}) lnL(x)=xln(p0p1)+(nx)ln(1p01p1)

对似然比取对数可以简化计算,同时保持单调性,不影响决策结果。

  1. 决策边界:

A = 1 − β α , B = β 1 − α A = \frac{1-\beta}{\alpha}, \quad B = \frac{\beta}{1-\alpha} A=α1β,B=1αβ

ln ⁡ A = ln ⁡ ( 1 − β α ) , ln ⁡ B = ln ⁡ ( β 1 − α ) \ln A = \ln(\frac{1-\beta}{\alpha}), \quad \ln B = \ln(\frac{\beta}{1-\alpha}) lnA=ln(α1β),lnB=ln(1αβ)

这两个边界是基于Wald’s approximation推导出来的。其中A是上边界,当似然比超过A时,我们有足够的证据拒绝原假设;B是下边界,当似然比低于B时,我们没有足够的证据拒绝原假设。

  1. 操作特征函数(OC函数):

L ( p ) ≈ α ( 1 − β ) − ( 1 − α ) β ( p p 0 ) h ( p p 1 ) h − ( p p 0 ) h L(p) \approx \frac{\alpha(1-\beta) - (1-\alpha)\beta(\frac{p}{p_0})^h}{(\frac{p}{p_1})^h - (\frac{p}{p_0})^h} L(p)(p1p)h(p0p)hα(1β)(1α)β(p0p)h

其中, h = ln ⁡ ( 1 − p 1 1 − p 0 ) ln ⁡ ( p 1 ( 1 − p 0 ) p 0 ( 1 − p 1 ) ) h = \frac{\ln(\frac{1-p_1}{1-p_0})}{\ln(\frac{p_1(1-p_0)}{p_0(1-p_1)})} h=ln(p0(1p1)p1(1p0))ln(1p01p1)

OC函数描述了在不同实际次品率p下,接受批次的概率。这个函数可以帮助我们评估SPRT的性能。

  1. 平均样本量函数(ASN函数):

E ( n ∣ p ) ≈ L ( p ) ln ⁡ B + ( 1 − L ( p ) ) ln ⁡ A E ( z ∣ p ) E(n|p) \approx \frac{L(p)\ln B + (1-L(p))\ln A}{E(z|p)} E(np)E(zp)L(p)lnB+(1L(p))lnA

其中, E ( z ∣ p ) = p ln ⁡ ( p 1 p 0 ) + ( 1 − p ) ln ⁡ ( 1 − p 1 1 − p 0 ) E(z|p) = p\ln(\frac{p_1}{p_0}) + (1-p)\ln(\frac{1-p_1}{1-p_0}) E(zp)=pln(p0p1)+(1p)ln(1p01p1)

ASN函数给出了在不同实际次品率p下,平均需要的样本量。这个函数可以帮助我们评估SPRT的效率。

这些数学公式构成了SPRT模型的理论基础。在实际应用中,我们主要使用似然比(或其对数形式)和决策边界来进行动态抽样决策。OC函数和ASN函数则主要用于模型的性能评估和参数调优。

在实际操作中,我们需要根据具体情况来设定模型参数。例如,对于题目中给出的情况,我们可以这样设置参数:

  • p 0 = 0.10 p_0 = 0.10 p0=0.10(标称值为10%)
  • p 1 = 0.15 p_1 = 0.15 p1=0.15(假设我们认为15%的次品率是不可接受的)
  • α = 0.05 \alpha = 0.05 α=0.05(对应95%的信度下拒收)
  • β = 0.10 \beta = 0.10 β=0.10(对应90%的信度下接收)

使用这些参数,我们可以计算出决策边界:

ln ⁡ A = ln ⁡ ( 1 − 0.10 0.05 ) ≈ 2.89 \ln A = \ln(\frac{1-0.10}{0.05}) \approx 2.89 lnA=ln(0.0510.10)2.89
ln ⁡ B = ln ⁡ ( 0.10 1 − 0.05 ) ≈ − 2.25 \ln B = \ln(\frac{0.10}{1-0.05}) \approx -2.25 lnB=ln(10.050.10)2.25

然后,我们可以使用前面描述的动态抽样决策算法来进行实际的检测。每次抽样后,我们计算对数似然比并与这两个边界比较,以决定是继续抽样还是做出最终决策。

这个模型的一个重要特点是,它不需要预先确定样本量,而是根据实际观察到的数据动态决定是否需要继续抽样。这种方法在平均意义上可以达到最小的样本量,同时保证了所需的统计功效。

SPRT模型也有其局限性。例如,在某些极端情况下,理论上可能需要无限多的样本才能做出决策。为了避免这种情况,在实际应用中通常会设置一个最大样本量限制。此外,SPRT模型假设每次抽样是独立的,如果批次中的产品质量存在某种模式或趋势,可能会影响模型的准确性。

我们还需要考虑检测成本与错误决策成本之间的平衡。虽然SPRT模型在理论上可以实现最小的平均样本量,但如果检测成本远低于错误决策的潜在损失,那么增加样本量以提高决策准确性可能是更好的选择。因此,在使用这个模型时,我们需要结合企业的具体情况和风险承受能力来调整参数。
SPRT模型可以很容易地扩展到多阶段检测或者连续检测的场景。例如,我们可以在生产线上实时监控产品质量,根据SPRT的结果来决定是否需要停止生产线进行调整。这种应用可以帮助企业更快地发现和解决质量问题,从而提高整体的生产效率和产品质量。

问题一模型的求解

以下是基于前面建立的序贯概率比检验(SPRT)模型求解问题1的MATLAB代码,包括模型求解、结果可视化和分析:

% 问题1的SPRT模型求解与分析

% 参数设置
p0 = (略);  % 可接受质量水平(标称值)
p1 =(略);  % 拒绝质量水平
alpha =(略);  % 第一类错误概率
beta =(略);  % 第二类错误概率

% 计算决策边界
(略)

% SPRT模拟函数
function [decision, n] = sprt_simulation(p0, p1, lnA, lnB, true_p)
    n = 0;
    sum_x = 0;
    while true
        n = n + 1;
        x = rand() < true_p;  % 模拟抽样
        sum_x = sum_x + x;
        lnL = sum_x * log(p1/p0) + (n-sum_x) * log((1-p1)/(1-p0));
        (省略部分,见完整版本)
    end
end

% 模拟不同真实次品率下的SPRT性能
true_p_range = 0.05:0.01:0.25;
num_simulations = 10000;
oc_curve = zeros(size(true_p_range));
asn_curve = zeros(size(true_p_range));

for i = 1:length(true_p_range)
    true_p = true_p_range(i);
    decisions = cell(1, num_simulations);
    sample_sizes = zeros(1, num_simulations);
    
    parfor j = 1:num_simulations
       (省略部分,见完整版本)
    end
    
    oc_curve(i) = sum(strcmp(decisions, 'accept')) / num_simulations;
    asn_curve(i) = mean(sample_sizes);
end

% 绘制OC曲线
figure('Visible', 'off');
plot(true_p_range, oc_curve, 'b-', 'LineWidth', 2);
hold on;
plot([p0, p0], [0, 1], 'r--', 'LineWidth', 1.5);
plot([p1, p1], [0, 1], 'r--', 'LineWidth', 1.5);
title('操作特性(OC)曲线', 'FontSize', 14);
xlabel('真实次品率', 'FontSize', 12);
ylabel('接受概率', 'FontSize', 12);
legend('OC曲线', 'p0', 'p1', 'Location', 'best');
grid on;
saveas(gcf, '问题1_OC曲线.png');
saveas(gcf, '问题1_OC曲线.fig');
print('问题1_OC曲线_300dpi', '-dpng', '-r300');

% 绘制ASN曲线
figure('Visible', 'off');
plot(true_p_range, asn_curve, 'g-', 'LineWidth', 2);
hold on;
plot([p0, p0], [0, max(asn_curve)], 'r--', 'LineWidth', 1.5);
plot([p1, p1], [0, max(asn_curve)], 'r--', 'LineWidth', 1.5);
title('平均样本量(ASN)曲线', 'FontSize', 14);
(省略部分,见完整版本)
legend('ASN曲线', 'p0', 'p1', 'Location', 'best');
grid on;
saveas(gcf, '问题1_ASN曲线.png');
saveas(gcf, '问题1_ASN曲线.fig');
print('问题1_ASN曲线_300dpi', '-dpng', '-r300');

% 计算在p0和p1处的具体性能指标
[~, idx_p0] = min(abs(true_p_range - p0));
[~, idx_p1] = min(abs(true_p_range - p1));

p0_performance = [oc_curve(idx_p0), asn_curve(idx_p0)];
p1_performance = [oc_curve(idx_p1), asn_curve(idx_p1)];

% 输出结果
disp('SPRT模型性能指标:');
disp(['在p0 (', num2str(p0), ') 处的接受概率: ', num2str(p0_performance(1))]);
disp(['在p0 (', num2str(p0), ') 处的平均样本量: ', num2str(p0_performance(2))]);
disp(['在p1 (', num2str(p1), ') 处的接受概率: ', num2str(p1_performance(1))]);
disp(['在p1 (', num2str(p1), ') 处的平均样本量: ', num2str(p1_performance(2))]);

% 保存结果到Excel文件
results_table = table(true_p_range', oc_curve', asn_curve', ...
    'VariableNames', {'真实次品率', '接受概率', '平均样本量'});
writetable(results_table, '问题1_SPRT性能指标.xlsx');

% 模拟实际检测过程
num_batches = 1000;
batch_decisions = cell(1, num_batches);
batch_sample_sizes = zeros(1, num_batches);

parfor i = 1:num_batches
    true_p = 0.10 + 0.05 * randn();  % 模拟批次间的质量波动
    true_p = max(0, min(1, true_p));  % 确保次品率在[0,1]范围内
    (省略部分,见完整版本)
    batch_decisions{i} = decision;
    batch_sample_sizes(i) = n;
end

% 统计结果
reject_rate = sum(strcmp(batch_decisions, 'reject')) / num_batches;
avg_sample_size = mean(batch_sample_sizes);

% 输出实际检测结果
disp('实际检测结果:');
disp(['拒收率: ', num2str(reject_rate)]);
disp(['平均样本量: ', num2str(avg_sample_size)]);

% 绘制样本量分布直方图
figure('Visible', 'off');
histogram(batch_sample_sizes, 'Normalization', 'probability');
title('样本量分布', 'FontSize', 14);
xlabel('样本量', 'FontSize', 12);
ylabel('频率', 'FontSize', 12);
grid on;
saveas(gcf, '问题1_样本量分布.png');
saveas(gcf, '问题1_样本量分布.fig');
print('问题1_样本量分布_300dpi', '-dpng', '-r300');

% 保存实际检测结果到Excel文件
actual_results_table = table(batch_sample_sizes', batch_decisions', ...
    'VariableNames', {'样本量', '决策'});
writetable(actual_results_table, '问题1_实际检测结果.xlsx');

这段代码实现了SPRT模型的求解、性能分析和实际检测过程模拟。现在我们来解释代码的主要部分并分析结果:

  1. 参数设置:我们设置了(略)(标称值),p1(略)拒绝质量水平),(略)(对应95%的信度下拒收),β=(略)(对应90%的信度下接收)。

  2. SPRT模拟函数:sprt_simulation函数实现了SPRT的核心算法,模拟单次抽样检测过程。
    (省略部分,见完整版本)

问题一求解结果分析

2024数学建模国赛B题:现在让我们分析结果:

OC曲线分析:OC曲线显示了在不同真实次品率下接受批次的概率。我们可以看到,当真实次品率接近或低于p0(0.10)时,接受概率很高;当真实次品率接近或高于p1(0.15)时,接受概率急剧下降。这表明我们的SPRT模型能够有效区分"好"批次和"坏"批次。
2024数学建模国赛B题生产过程中的决策问题详细思路:基于抽样检测和多阶段决策模型_第1张图片

ASN曲线分析:ASN曲线显示了在不同真实次品率下平均需要的样本量。我们可以观察到,当真实次品率接近p0或p1时,平均样本量较小;而当真实次品率在p0和p1之间时,平均样本量较大。这是因为当质量水平接近决策边界时,需要更多的样本才能做出可靠的决策。

2024数学建模国赛B题生产过程中的决策问题详细思路:基于抽样检测和多阶段决策模型_第2张图片

具体性能指标:在p0处的接受概率应接近1-α(0.95),在p1处的接受概率应接近β(0.10)。实际结果与这些理论值的接近程度反映了模型的准确性。

实际检测结果:拒收率反映了在模拟的生产环境中,有多少批次被拒收。平均样本量反映了实际检测过程中平均需要检测的产品数量。这些指标可以帮助企业评估质量控制成本和效果。(后略,见完整版本)

你可能感兴趣的:(数学建模,机器学习,算法,python)