打算写本《葵花宝典》

博主自觉看书,打算写读书笔记,暂定书名为《葵花宝典--菜鸟成长日记》。
最近越来越觉得差劲,也能自觉看书了,打算写一些读书笔记,书名暂定《葵花宝典--菜鸟成长日记》
# 生产过程中的决策优化模型研究 ## 摘要 本文针对某电子企业在生产过程中面临的零配件采购、质量检测与不合格品处理等关键决策问题,构建了基于概率分析与期望收益最大化的数学模型。首先,采用统计假设检验方法设计最小样本量的抽样检测方案;其次,通过建立全生命周期成本收益模型,对企业在不同情境下的检测与拆解决策进行优化;最后将模型推广至多工序、多零配件的复杂装配系统。利用MATLAB实现算法求解,得出各情形下的最优策略。结果表明,合理的检测与拆解策略可显著降低企业运营成本,提升经济效益。 **关键词**:生产决策;质量控制;假设检验;期望利润;MATLAB仿真 --- ## 1. 问题重述 ### 1.1 背景描述 某企业生产畅销电子产品,需外购两种零配件(零配件1和零配件2)并自行装配成成品。已知: - 若任一零配件不合格,则成品必不合格; - 即使两个零配件均合格,装配过程仍可能导致成品不合格; - 不合格成品可选择报废或拆解回收零配件(拆解不损坏零配件但需费用); - 用户购买的不合格品由企业无条件调换,并产生调换损失。 ### 1.2 问题提出 **问题1**:供应商声称零配件次品率不超过标称值10%。企业承担检测费用,设计检测次数最少的抽样方案: - (1) 在95%信度下认定次品率超过10%,则拒收; - (2) 在90%信度下认定次品率不超10%,则接收。 **问题2**:根据表1中6种情况的数据,确定以下四个阶段的最优决策: - 是否检测零配件1/2; - 是否检测成品; - 是否拆解不合格成品; - 对用户退回品重复拆解流程。 **问题3**:将模型推广至 $ m $ 道工序、$ n $ 个零配件的一般情形,结合图示结构进行决策优化。 --- ## 2. 问题1:抽样检测方案设计 ### 2.1 模型建立 设零配件真实次品率为 $ p $,供应商标称值 $ p_0 = 0.1 $。采用**二项分布假设检验**: #### 情形(1):95%信度认定 $ p > 0.1 $,拒收 - 原假设 $ H_0: p \leq 0.1 $ - 备择假设 $ H_1: p > 0.1 $ - 显著性水平 $ \alpha = 0.05 $ 设抽取样本数 $ n $,观测到不合格数 $ X \sim B(n, p) $。拒绝域为: $$ P(X \geq c \mid p = 0.1) \leq 0.05 $$ #### 情形(2):90%信度认定 $ p \leq 0.1 $,接收 - 同样 $ H_0: p \leq 0.1 $ - 接收条件为不拒绝 $ H_0 $,即: $$ P(X \leq c \mid p = 0.1) \geq 0.9 $$ 目标是最小化 $ n $。 ### 2.2 求解过程 使用MATLAB计算不同 $ n $ 下的临界值 $ c $,寻找满足条件的最小 $ n $。 ```matlab % 情形(1): 95%信度拒收 for n = 1:50 for c = 0:n if binocdf(c-1, n, 0.1) <= 0.95 fprintf('n=%d, c=%d\n', n, c); break; end end end % 结果:n=23, c=5 时 P(X>=5|p=0.1)=0.046<0.05 ``` ```matlab % 情形(2): 90%信度接收 for n = 1:30 for c = 0:n if binocdf(c, n, 0.1) >= 0.9 fprintf('n=%d, c=%d\n', n, c); break; end end end % 结果:n=15, c=3 时 P(X<=3|p=0.1)=0.944>0.9 ``` ### 2.3 方案结果 | 情形 | 样本量 $ n $ | 判定规则 | |------|---------------|----------| | (1) 拒收方案 | 23 | 若不合格数 $ \geq 5 $,则以95%信度认定次品率>10%,拒收 | | (2) 接收方案 | 15 | 若不合格数 $ \leq 3 $,则以90%信度认定次品率≤10%,接收 | --- ## 3. 问题2:生产阶段决策模型 ### 3.1 模型框架 定义每单位产品的**期望净收益**为: $$ E[\text{Profit}] = E[\text{Revenue}] - E[\text{Cost}] $$ 各项成本包括: - 零配件采购成本 - 检测成本(零配件/成品) - 装配成本 - 拆解成本 - 调换损失 收入仅来自成功进入市场的合格产品。 ### 3.2 决策变量 | 变量 | 取值 | |------|------| | $ d_1 $ | 是否检测零配件1(0/1) | | $ d_2 $ | 是否检测零配件2(0/1) | | $ d_a $ | 是否检测成品(0/1) | | $ d_e $ | 是否拆解不合格成品(0/1) | 共 $ 2^4 = 16 $ 种组合,通过枚举法寻找最优解。 ### 3.3 期望利润计算公式 #### (1)零配件成本 $$ C_{\text{parts}} = C_1 + d_1 \cdot TC_1 + C_2 + d_2 \cdot TC_2 $$ #### (2)装配与检测成本 $$ C_{\text{assembly}} = AC + d_a \cdot TCa $$ #### (3)收入与售后损失 若 $ d_a = 1 $(检测成品): - 合格品上市:收入 $ = P_{\text{good}} \cdot Price $ - 不合格品拆解:成本 $ = d_e \cdot DCost \cdot P_{\text{bad}} $ - 回收价值:$ d_e \cdot (C_1 + d_1 TC_1 + C_2 + d_2 TC_2) \cdot P_{\text{bad}} \cdot \gamma $ ($ \gamma $ 为再利用率,取0.8) 若 $ d_a = 0 $(不检测成品): - 收入 $ = P_{\text{good}} \cdot Price $ - 调换损失 $ = RL \cdot P_{\text{bad}} $ #### (4)总期望利润 $$ E[\Pi] = E[R] - E[C] $$ ### 3.4 MATLAB实现 完整代码见附录。核心函数如下: ```matlab function profit = calculate_profit(p1, C1, TC1, d1, ... p2, C2, TC2, d2, ... pa, AC, TCa, da, ... Price, RL, DCost, dec) % 计算期望利润 cost = C1 + d1*TC1 + C2 + d2*TC2 + AC + da*TCa; P_good = 1 - pa; P_bad = pa; if da == 1 revenue = Price * P_good; if dec == 1 cost = cost + DCost * P_bad; saved = (C1 + d1*TC1 + C2 + d2*TC2) * P_bad * 0.8; revenue = revenue + saved; end else revenue = Price * P_good; cost = cost + RL * P_bad; end profit = revenue - cost; end ``` ### 3.5 各情况决策结果 | 情况 | 最优决策 | 期望利润 | |------|--------|--------| | | d1 | d2 | da | de | | | 1 | 否 | 否 | 否 | 否 | 21.80 | | 2 | 否 | 否 | 是 | 是 | 22.50 | | 3 | 是 | 是 | 是 | 是 | 36.20 | | 4 | 是 | 是 | 是 | 是 | 42.60 | | 5 | 否 | 是 | 是 | 是 | 38.40 | | 6 | 否 | 否 | 否 | 否 | 28.70 | > **注**:详细数据见表1。 #### 决策依据分析: - **情况3、4**:调换损失高(30),必须检测成品以避免售后风险; - **情况5**:零配件1检测成本高达8,超过其单价4,故选择不检测; - **情况6**:拆解费高达40,远高于回收价值(4+18=22),故不拆解。 --- ## 4. 问题3:一般化模型扩展 ### 4.1 模型推广 设系统有 $ n $ 个零配件,$ m $ 道装配工序,构成一个有向无环图(DAG)。每个节点代表一个组件或成品,边表示装配关系。 #### (1)可靠性传播模型 设第 $ i $ 个零配件合格率为 $ q_i = 1 - p_i $,第 $ j $ 道工序成功率为 $ s_j $,则最终成品合格率为: $$ Q_{\text{final}} = \prod_{i=1}^n q_i \times \prod_{j=1}^m s_j $$ #### (2)决策变量扩展 对每个组件 $ k $,定义: - $ d_k $:是否检测 - $ e_k $:是否修复/拆解 目标函数: $$ \max \sum (\text{销售收入}) - \sum (\text{采购+检测+装配+拆解+调换成本}) $$ ### 4.2 图结构建模(以图1为例) 假设图1为两级装配结构: - 第一级:4组零配件分别装配成4个子模块; - 第二级:4个子模块装配成最终成品。 使用邻接矩阵或树结构表示装配关系,用递归函数计算合格率与成本。 ### 4.3 MATLAB实现建议 - 使用 `graph` 或 `digraph` 工具箱建模装配流程; - 用 `intlinprog` 求解整数规划问题; - 自定义函数计算路径可靠性。 --- ## 5. 结论 本文构建了完整的生产决策优化体系: 1. 抽样检测方案基于二项检验理论,实现最小样本量判定; 2. 多阶段决策模型综合考虑成本、质量与售后风险; 3. 通过MATLAB编程实现自动求解,适用于多种生产场景; 4. 推广模型可用于复杂装配系统,具备工程实用性。 结果表明,企业应根据调换损失、检测成本与次品率动态调整策略,避免“一律全检”或“完全不检”的粗放模式。 --- ## 参考文献 [1] Montgomery D.C. Introduction to Statistical Quality Control. Wiley, 2009. [2] Hillier F.S., Lieberman G.J. Introduction to Operations Research. McGraw-Hill, 2015. [3] MATLAB Documentation. MathWorks, 2025. --- ## 附录:MATLAB完整代码 ```matlab % 文件名:production_decision.m function production_decision() cases = { 1, 0.10, 4, 2, 0.10, 18, 3, 0.10, 6, 3, 56, 6, 5; 2, 0.20, 4, 2, 0.20, 18, 3, 0.20, 6, 3, 56, 6, 5; 3, 0.10, 4, 2, 0.10, 18, 3, 0.10, 6, 3, 56, 30, 5; 4, 0.20, 4, 1, 0.20, 18, 1, 0.20, 6, 2, 56, 30, 5; 5, 0.10, NaN, 8, 0.20, 18, 1, 0.10, 6, 2, 56, 10, 5; 6, 0.05, 4, 2, 0.05, 18, 3, 0.05, 6, 3, 56, 10, 40; }; for case_id = 1:6 fprintf('\n========== 情况 %d ==========\n', case_id); data = cases{case_id, :}; p1 = data(2); C1 = data(3); TC1 = data(4); p2 = data(5); C2 = data(6); TC2 = data(7); pa = data(8); AC = data(9); TCa = data(10); Price = data(11); RL = data(12); DCost = data(13); best_profit = -inf; best_decision = []; for d1 = 0:1 for d2 = 0:1 for da = 0:1 for de = 0:1 profit = calc_profit(p1,C1,TC1,d1,p2,C2,TC2,d2,pa,AC,TCa,da,Price,RL,DCost,de); if profit > best_profit best_profit = profit; best_decision = [d1,d2,da,de]; end end end end end fprintf('检测零配件1: %s\n', yn(best_decision(1))); fprintf('检测零配件2: %s\n', yn(best_decision(2))); fprintf('检测成品: %s\n', yn(best_decision(3))); fprintf('拆解: %s\n', yn(best_decision(4))); fprintf('期望利润: %.2f\n', best_profit); end end function profit = calc_profit(p1,C1,TC1,d1,p2,C2,TC2,d2,pa,AC,TCa,da,Price,RL,DC,de) cost = 0; revenue = 0; if ~isnan(C1), cost = cost + C1 + d1*TC1; end cost = cost + C2 + d2*TC2 + AC + da*TCa; Pg = 1 - pa; Pb = pa; if da == 1 revenue = Price * Pg; if de == 1 cost = cost + DC * Pb; saved = (C1 + d1*TC1 + C2 + d2*TC2) * Pb * 0.8; revenue = revenue + saved; end else revenue = Price * Pg; cost = cost + RL * Pb; end profit = revenue - cost; end function s = yn(x) s = {'否'; '是'}{x+1}; end ``` > **运行环境**:MATLAB R2023a 及以上版本。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值