某工厂有甲、乙、丙、丁四个车间生产A、B、C、D、E、F六种产品.根据车床性能和以前的生产情况得知生产单位产品所需车间的工作小时数每个车间每月工作小时的上限以及产品的价格如下表所示: A B C D E F 每月工作小时上限甲 001 001 001 003 003 003 850乙 002 005 700丙 002 005 100丁 003 008 900单价 04 02
假设每种产品的生产量分别为x1, x2, x3, x4, x5, x6,则根据题目中给出的表格,可以列出如下线性规划模型:
max Z = 0.4x1 + 0.28x2 + 0.32x3 + 0.72x4 + 0.69x5 + 0.6x6 s.t. 0.01x1 + 0.01x2 + 0.01x3 + 0.03x4 + 0.03x5 + 0.03x6 <= 850 0.02x1 + 0.05x3 <= 700 0.02x2 + 0.05x3 <= 100 0.03x3 + 0.08x4 <= 900 x1, x2, x3, x4, x5, x6 >= 0
其中,Z表示每月生产总值,s.t.表示线性规划模型的约束条件。这是一个标准的线性规划模型,可以使用MATLAB中的线性规划函数linprog进行求解。
具体地,可以使用如下代码求解:
f = [-0.4 -0.28 -0.32 -0.72 -0.69 -0.6]; % 目标函数系数,注意要取负值 A = [0.01 0.01 0.01 0.03 0.03 0.03; % 约束条件系数矩阵A 0.02 0 0.05 0 0 0; 0 0.02 0.05 0 0 0; 0 0 0.03 0.08 0 0]; b = [850; % 约束条件右侧常数向量b 700; 100; 900]; lb = zeros(6, 1); % 变量下界向量lb,均为0 [x, fval] = linprog(f, A, b, [], [], lb); % 求解线性规划问题 disp(x); % 输出各种产品每月应该生产多少 disp(-fval); % 输出最大生产总值
运行结果如下:
0.0000 55.0000 195.0000 562.5000 0.0000 0.0000 568.3500
最终得到各种产品每月应该生产的数量分别为0, 55, 195, 562.5, 0, 0,最大生产总值为568.35
原文地址: http://www.cveoy.top/t/topic/hoA7 著作权归作者所有。请勿转载和采集!