最近阅读了一些文献来了解动态调度的问题,有几篇文章觉得总结整理的很到位。
《炼钢-连铸生产调度模型及启发式算法》——刘光航
《钢铁生产动态调度理论研究与工程应用综述》——常春光
《炼钢-连铸混合优化调度方法及应用(博士学位论文)》——王秀英
首先整理一下看过的文献资料,关于动态调度研究方法应该可以分为四类:
(1)基于模型的方法
1.精确模型:运筹学方法,包括线性规划、动态规划、排队论、网络与图论等
2.近似模型:系统仿真模型
(2)基于智能的方法
1.人工智能:启发式搜索或逻辑推理,启发式方法以调度规则以及实践经验为基础
2.计算智能:
①进化算法:随机优化技术,包括遗传算法,进化规划,进化策略
②模拟进化算法:近似算法,包括模拟退火法,禁忌搜索法,蚁群算法以及局域搜索法
③神经网络:通过一个能量函数构造网络的极值
④Multi-agent:以分布式人工智能中的多代理机制作为新的生产组织与运行模式
(3)人机交互
(4)多种方法组合
1.不同类智能方法组合
2.模型与智能组合
3.人机交互与智能组合
4.模型与人机交互组合
那再来看看具体方案及算法的实现:
炼钢-连铸生产主要流程为铁水——转炉——精炼——连铸——板坯。主要调度炼钢到连铸的钢水(动态调度),可以归为三阶段并行多机的Hybrid Flow Shop问题。
问题描述:
目标是使由于断浇和炉次在工序间等待造成的损失最小。
也就是动态调度就是为了让钢水都能达到下一环节就开始运行,因为等待可能会使钢水温度下降,导致不能开浇,形成断流。并且要使一个浇次与下一个浇次之间没有断开能马上接上。
那为了这两个分目标,作者设置了两个惩罚参数,记为浇次n的单位断浇时间的惩罚费用,为炉次i的单位等待惩罚费用,为足够大的正整数。
符号说明:
其中,是已知的。
建立模型:
关于约束条件②,我有一个疑问还没理解,作者是为了表示同一设备前一炉次处理完,才能开始下一步。
那么破坏这个条件的情况就是,应该是排到后面的工作, 但是比先开始了,所以它们两个都被指派到k设备上了,那么都为1,为0,但是因为是足够大的正整数,所以约束条件②还是的。
是不是应该是?
正常情况就是都为1,。
求解模型:
先探讨炉次设备指派的策略,为炉次指派设备、生成粗调度后,再用一个线性规划模型来确定各炉次最终的开始处理时间,以解消可能存在的设备冲突。
这里的开浇时间指连铸时间:
炉次设备指派策略的核心是当一个设备上未指派的炉次q对应时段内有指派e时,如何为q选择设备。为了得到冲突最小的粗调度,需要计算可能的设备冲突,并把q安排到使冲突最小的设备上。