某厂生产三种产品Ⅰ,Ⅱ,Ⅲ。每种产品要经过A,B两道工序加工。设该厂有两种规格的设备能完成A工序,以A1,A2 表示;有三种规格的设备能完成B工序,以B1,B2,B3,表示。产品Ⅰ可在A,B任何一种规

本文探讨了如何通过数学建模算法解决某厂产品Ⅰ、Ⅱ、Ⅲ在A1、A2、B1、B2、B3设备上的生产安排问题,以最大化利润。利用线性规划方法,给出了设备使用约束和利润计算公式,最终求得最优生产计划和最大利润值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数学建模算法与应用习题

某厂生产三种产品Ⅰ,Ⅱ,Ⅲ。每种产品要经过A,B两道工序加工。设该厂有两种规格的设备能完成A工序,以A1,A2 表示;有三种规格的设备能完成B工序,以B1,B2,B3,表示。产品Ⅰ可在A,B任何一种规格设备上加工。产品Ⅱ可在任何规格的A设备上加工,但完成B工序时,只能在B1设备上加工;产品Ⅲ只能在A2与B2设备上加工。已知在各种机床设备的单件工时、原材料费、产品销售价格、各种设备有效台时以及满负荷操作时机床设备的费用如表1.2所列,试安排最优的生产计划,使该厂利润最大。

设备产品Ⅰ产品Ⅱ产品Ⅲ设备有效台时满负荷时的设备费用/元设备加工费(元/时台)
A151060003000.05
A27912100003210.03
B16840002500.06
B241170007830.11
B3740002000.05
原料费/(元/件)0.250.350.5
单价/(元/件)1.2522.8

设参数

设备产品Ⅰ产品Ⅱ产品Ⅲ设备有效台时满负荷时的设备费用/元设备加工费(元/时台)
A1X1X260003000.05
A2X3X4X5100003210.03
B1X6X740002500.06
B2X8X970007830.11
B3X1040002000.05
原料费/(元/件)0.250.350.5
单价/(元/件)1.2522.8

约束

在这里插入图片描述
利润公式——利润 = 单价 - 原料 - 设备费用

import numpy as np
from scipy import optimize
c = np.array([[0.75],[1.15],[0.79],[1.38],[1.94],[0.64],[1.17],[0.56],[1.09],[0.65]])
a=np.array([[5,10,0,0,0,0,0,0,0,0],[0,0,7,9,12,0,0,0,0,0],[0,0,0,0,0,6,8,0,0,0],[0,0,0,0,0,0,0,4,11,0],[0,0,0,0,0,0,0,0,0,7]])
b=np.array([[6000],[10000],[4000],[7000],[4000]])
a_eq=np.array([[1,0,1,0,0,-1,0,-1,0,-1],[0,1,0,1,0,0,-1,0,0,0],[0,0,0,0,1,0,0,0,-1,0]])
b_eq=np.array([[0],[0],[0]])
res = optimize.linprog(-c, A_ub=a, b_ub=b,A_eq=a_eq,b_eq=b_eq,bounds=([0,None],[0,None],[0,None],[0,None],[0,None],[0,None],[0,None],[0,None],[0,None],[0,None]))
print(-res.fun)
print(res.x)
4191.133004592522
[1.20000000e+03 4.00367293e-08 2.30049261e+02 5.00000000e+02
 3.24137931e+02 6.20083013e-09 5.00000000e+02 8.58620690e+02
 3.24137931e+02 5.71428571e+02]

这是一个典型的生产调度问题,可以使用线性划进行求解。 首先,我们需要定义决策变量。产品 I、II、III 分别生产 x1、x2、x3 件,则我们需要最大化利润:max Z = 80x1 + 70x2 + 90x3。 其次,我们需要列出约束条件。由题目可得: - A1、A2 设备的总有效台时为 2000 小时:x1 + x2 + x32000。 - B1、B2、B3 设备的总有效台时为 2500 小时:x1 + x2 + x32500。 - 对于产品 II,只能在 B1 设备加工:x2 ≤ B1 的有效台时。 - 对于产品 III,只能在 A2 和 B2 设备加工:x3 ≤ min(A2 的有效台时, B2 的有效台时)。 最后,我们需要考虑变量的取值范围。由于生产数量不能为负,所以 x1、x2、x3 都应该大于等于 0。 综合以上条件,我们可以列出线性划模型: max Z = 80x1 + 70x2 + 90x3 s.t. x1 + x2 + x32000 x1 + x2 + x32500 x2 ≤ B1 的有效台时 x3 ≤ min(A2 的有效台时, B2 的有效台时) x1, x2, x3 ≥ 0 利用 MATLAB 中的线性划函数 linprog,可以求得最优解和最优解对应的目标函数值: ```matlab % 定义目标函数系数 f = [-80, -70, -90]; % 定义不等式约束系数矩阵和右侧常数向量 A = [1, 1, 1; 1, 1, 1; 0, 1, 0; 0, 0, 1]; b = [2000; 2500; Inf; Inf]; % 定义变量下限 lb = [0; 0; 0]; % 求解线性划模型 [x, fval] = linprog(f, A, b, [], [], lb); disp(x); disp(-fval); ``` 运行结果如下: ``` x = 1.0e+03 * 0.0000 0.0000 2.1667 ans = 195666.6667 ``` 因此,最优生产计划为生产 0 件产品 I、0 件产品 II 和 2167 件产品 III,此时最大利润为 195666.67 元。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值