问题
加工时间如图。节拍为50秒。
求解
(一)设置工位数为3
工位数: 3
工位1: D、E
工位2: A、B、C
工位3: F、G、H、I、J、K
节拍: 65
工位时间:
[65, 65, 65]
平衡率LBR: 100.00%
平衡损失率d: 0.00%
平滑性指数SI: 0.00
平衡状态: 优
此时,生产平衡率为100%,但节拍为65秒,大于50秒。再添加一个工位试试。
(二)设置工位数为4
工位数: 4
工位1: A
工位2: D
工位3: B、E、H、I
工位4: C、F、G、J、K
节拍: 50
工位时间:
[45, 50, 50, 50]
平衡率LBR: 97.50%
平衡损失率d: 2.50%
平滑性指数SI: 2.50
平衡状态: 优
此时,生产平衡率较高,节拍也满足要求。再添加一个工位,检验此方案。
(三)设置工位数为5
工位数: 5
工位1: A
工位2: B、C、G
工位3: D
工位4: E、F、H
工位5: I、J、K
节拍: 50
工位时间:
[45, 32, 50, 39, 29]
平衡率LBR: 78.00%
平衡损失率d: 22.00%
平滑性指数SI: 13.50
平衡状态: 差
此时,生产节拍为50,但生产平平衡率仅为78%。与4个工位数相比,平衡率下降。
综上,设置4个工位时,既满足生产节拍,又有较高的平衡率,较为合理。工位划分如图。
代码
import matplotlib.pyplot as plt
from pymprog import *
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.style.use('ggplot')
# 数据
a = list("ABCDEFGHIJK")
n = len(a)
proc = [45, 11, 9, 50, 15, 12, 12, 12, 12, 8, 9]
tech = ['AB', 'BC', 'CF', 'CG', 'FJ', 'GJ', 'DE', 'EH', 'EI', 'HJ', 'IJ', 'JK']
m = len(tech)
b, c = {
<