分布式流水车间调度问题(Distribute flow shop scheduling problem)
例子:3个工作单元,10个工件,4道工序。随机生成数据:
工件在工作单元1、2、3机器上的加工时间
[
array([[30.52, 5.46, 5.74, 5.19],
[ 7.31, 29.18, 13.78, 16.88],
[30.74, 6.33, 14.47, 25.09],
[30.4 , 15.29, 13.66, 18.01],
[28.92, 21.26, 30.36, 10.07],
[20.95, 23.82, 11.09, 22.09],
[20.47, 9.48, 5.41, 17.83],
[ 8.2 , 7.09, 25.77, 16.23],
[25.09, 11.16, 16.51, 27.87],
[18.77, 25.37, 7.71, 28.95]]),
array([[30.81, 5.49, 5.79, 5.27],
[ 7.44, 29.58, 13.95, 16.94],
[31.23, 6.38, 14.74, 25.42],
[30.83, 15.52, 13.85, 18.03],
[29.07, 21.58, 30.71, 10.17],
[21.32, 23.94, 11.15, 22.25],
[20.55, 9.5 , 5.42, 17.91],
[ 8.35, 7.09, 25.8 , 16.52],
[25.13, 11.2 , 16.68, 28.19],
[19.15, 25.49, 7.74, 29.07]]),
array([[30.92, 5.61, 5.76, 5.21],
[ 7.37, 29.71, 14.19, 17.03],
[31.85, 6.48, 14.51, 25.27],
[30.46, 15.36, 13.92, 18.46],
[29.41, 21.95, 30.71, 10.27],
[21.63, 23.99, 11.36, 22.73],
[20.76, 9.56, 5.45, 18. ],
[ 8.41, 7.14, 26.65, 16.54],
[26.04, 11.31, 16.89, 28.1 ],
[19.36, 26.14, 7.89, 29.51]])]
编码、解码
工件编码:[ 1 7 5 6 9 3 2 8 10 4]
单元编码:[ 2 1 3 1 2 1 2 1 1 3]
解码结果
遗传算法
交叉
工件编码:PMX交叉
单元编码:随机交换
变异
工件编码:两点交换
单元编码:随机替换
选择
轮盘赌选
优化结果:
目标值追踪: