问题背景
如何利用Excel 做生产计划,利用线性规划模型来进行设计。约束条件为三条产线,产线一每天产量1500,需要工人2人。产线二每天产量1800,需要工人4。产线三每天产量2400。需要工人6人。现需要50000件产品。怎么计算最少人工?
在Excel中利用线性规划求解最少人工的步骤如下:
1. 打开Excel,在单元格中输入以下数据:
· A1、B1、C1分别输入“产线一”、“产线二”、“产线三”。
· A2、B2、C2作为可变单元格,用于存放各产线的生产天数(初始可设为0)。
· A3输入“日产量”,A4输入1500,B4输入1800,C4输入2400。
· A5输入“所需工人”,A6输入2,B6输入4,C6输入6。
· 在D2输入公式=SUMPRODUCT(A2:C2, A4:C4)计算总产量。
· 在D4输入目标产量50000。
· 在D6输入公式=SUMPRODUCT(A2:C2, A6:C6)计算总人工。
2. 调用规划求解工具:
· 点击“数据”选项卡,在“分析”组中找到“规划求解”(若未显示,需先加载项中启用)。
· 设置目标单元格为D6,选择“最小值”。
· 可变单元格为A2:C2。
· 添加约束:D2 = D4(总产量等于50000),以及A2:C2 ≥ 0。
· 选择求解方法为“单纯线性规划”,点击“求解”。
3. 结果分析:
· 求解后,A2:C2将显示最优天数:产线一为33.3333天,产线二和产线三为0。
· 最少人工(总人天)为66.6667,即D6的值。
此结果表示,仅使用效率最高的产线一(每人工日产量750件)即可满足需求,无需启用其他产线。若要求天数为整数,则需添加整数约束,此时最优解为产线一运行34天,人工68人天。
下面我用线性规划(Linear Programming)的方式,一步一步说明:
如何建模
如何手工计算最少人工
如何在 Excel(规划求解 / Solver) 中实现
一、问题抽象(建模)
1. 决策变量,设:
x1:产线一生产的天数
x2:产线二生产的天数
x3:产线三生产的天数
(天数可以是小数,符合线性规划假设)
2. 已知参数
产线
|
日产量
|
用工
|
|---|
产线一
|
1500
|
2
|
产线二
|
1800
|
4
|
产线三
|
2400
|
6 |
3. 目标函数(最少人工)
总人工 = 每日产线用工 × 生产天数
\min Z = 2x1 + 4x2 + 6x3
4. 约束条件(产量)
总产量 ≥ 50000:
1500x1 + 1800x2 + 2400x3 大于等于50000
非负约束:
x1, x2, x3 大于等于0
二、先做“单位效率”判断(核心思想)
这是线性规划中非常关键的一步。
1. 每 1 人·天能产多少?
产线
|
日产量
|
人数
|
单位人效(件/人·天)
|
|---|
产线一
|
1500
|
2
|
750
|
产线二
|
1800
|
4
|
450
|
产线三
|
2400
|
6
|
400
|
结论:
👉 产线一的人效最高,在“只追求最少人工”的目标下:
所有产量都应该优先放在产线一
三、最优解(手工计算)
只使用产线一:
x1 = 50000/1500= 33.33 天总人工:
Z = 2 × 33.33 = 66.67 人·天
四、最终答案(数学意义上的最优解)
最少人工 = 66.67 人·天
生产方案:全部使用产线一
五、Excel 中的实现方法(规划求解 Solver)
1. 表格结构示例
A列
|
B列
|
C列
|
D列
|
|---|
产线
|
日产量
|
用工
|
天数(变量)
|
1
|
1500
|
2
|
x1
|
2
|
1800
|
4
|
x2
|
3
|
2400
|
6
|
x3
|
2. 计算公式
=SUMPRODUCT(B2:B4, D2:D4)
=SUMPRODUCT(C2:C4, D2:D4)
3. Solver 设置
目标单元格:总人工 → 最小值
可变单元格:x1, x2, x3
约束条件:
总产量 ≥ 50000
x1, x2, x3 ≥ 0
求解方法:单纯形 LP
六、实际生产中常见补充
在真实生产中,通常还会加入
每条产线最多可运行天数
工人总数上限
产线必须整天运行(整数规划)
多产品组合需求
通过百度网盘分享的文件:linear p....xlsx
链接:https://pan.baidu.com/s/1hVWrubNpFilJEt6pBJ6gow
提取码:LAS4
复制这段内容打开「百度网盘APP 即可获取」