第三类生产线平衡问题的数学模型
假设:
- 工作站数量(m)和生产线节拍(CT)是预设并固定的。
- 每个任务(或作业元素)只能分配到一个工作站中。
- 任务的执行顺序是预先确定的,且不可更改。
- 每个任务的作业时间是已知的,且不会因为分配到不同的工作站而改变。
- 不考虑工作站之间的物料搬运时间和等待时间。
变量说明:
n:工序的数量i:工序的索引,i = 1, 2, ..., n:任务 i 的作业时间
m:工作站的数量CT:生产线的节拍时间:二进制变量,如果任务 i 被分配到工作站 j,则
= 1;否则,= 0:工作站 j 的总作业时间
:二进制变量,如果工序i是工序j的紧前工序,则
=1 ;否则,
=0
目标函数:
平衡率(Balance Rate, BR)是评估生产线平衡效果的重要指标,其计算公式为:
其中,是工作站 j 的总作业时间,计算公式为:
约束条件:
(1)每个任务只能分配到一个工作站:
(2)工作站的总作业时间不能超过生产线的节拍时间:
(3)作业顺序约束(确保任务按照预定的顺序进行):
若=1, 则
这个约束确保了任务之间的先后顺序得到遵守。
遗传算法的流程已经有很多了, 我们不再赘述.
下面我们结合一个20个工序的小算例来用MATLAB实现遗传算法优化第三类生产线平衡问题:
紧前关系:

数据:
| 工序 | 紧前工序 | 工作时间(min) |
| 1 | 0 | 20 |
| 2 | 1 | 10 |
| 3 | 2 | 23 |
| 4 | 0 | 24 |
| 5 | 4 | 20 |
| 6 | 6 | 22 |
| 7 | 3、6 | 21 |
| 8 | 7 | 16 |
| 9 | 0 | 20 |
| 10 | 9 | 12 |
| 11 | 0 | 21 |
| 12 | 0 | 10 |
| 13 | 10、11、12 | 14 |
| 14 | 8 | 10 |
| 15 | 13 | 11 |
| 16 | 14、15 | 23 |
| 17 | 16 | 21 |
| 18 | 0 | 15 |
| 19 | 17 | 25 |
| 20 | 19 | 10 |
工作站设定为4, 节拍为95, 求最大化平衡率, 部分MATLAB主程序如下:

程序结果如下:


算法运行时间
runtime1 =
23.9561303
遗传算法优化得到的最优目标函数值
bestValue_ga =
1.01149425287356
遗传算法优化得到的最优染色体
bestChrom_ga =
3 5 6 18 7 16 1 2 9 10 11 12 17 4 14 13 15 8 19 20 95
工作站数量
stationnumber =
4
节拍
CT =
88
平滑指数
SI =
1.22474487139159
平衡率
P =
0.988636363636364
>> 紧前关系矩阵 premat
premat =
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>>