论文部分内容阅读
生产调度的目的是在有限时域内为生产任务分配有限的车间资源来优化一个或者多个性能指标。以往的关于调度的研究主要集中在理想的调度环境,一般都是以确定性的数学模型为基础,与实际的车间调度环境存在很大差别。在实际的制造车间中,往往存在着很多动态不确定因素,如加工时间变动、机器故障或者交货期变更等。如何在生成预调度时考虑到不确定因素的影响,已经成为解决实际问题的关键。不确定因素可以分为部分已知和完全未知两类,对于第一类情况,在建立预调度优化模型时,就应考虑这些因素的影响,可以有效提高调度的鲁棒性和稳定性;而对于第二类情况,采用反应式的重调度是适应环境变化的最好解决方式。在动态不确定环境下的调度问题,其计算复杂度远远超过了静态调度问题,使得以往的研究方法难以直接应用,对问题的求解提出了更高的要求。本文围绕着动态不确定环境下的调度问题展开研究,主要研究了三种典型的情况:加工时间不确定、机器随机故障和工件到达时间未知。本文的主要工作包括如下五个方面:1.首先研究了加工时间不确定的单机Just-In-time调度问题。因为在加工时间确定时,不存在一个多项式时间算法得到问题的最优调度,所以采用了绝对鲁棒指标以最小化所有可能加工时间下的最大代价,这是一个minimax优化问题。在给定调度顺序后,内层max优化问题的决策空间是加工时间构成的凸多面体,而优化目标是关于加工时间的凸函数,则可以在凸多面体的顶点取得max问题的极值,因此大大降低了问题的搜索空间。根据minimax问题特性设计了一种两层遗传算法,与以期望时间为基础的确定性调度算法相比,在多种加工时间情况下设计的算法得到了更加鲁棒的调度。2.将对不确定加工时间情况下的鲁棒调度问题的研究从单机扩展到Job Shop。相对于单机问题,Job Shop中的约束更加复杂,增加了同一工件所有工序的先后顺序约束,因此不具有类似于单机内层max问题的特性,其搜索空间为整个加工时间的可行域,大大增加了计算复杂度。相对于解决单机问题的两层算法,从兼顾算法性能和计算效率的角度出发,设计了一种双空间协同进化遗传算法,仿真测试表明了算法的有效性。3.研究了机器随机故障情况下兼顾稳定性的单机鲁棒调度问题,该问题是一个双目标优化问题。在调度执行之前,无法获得真实的性能指标,因此采用期望指标。通过将多次故障集结为一次故障,并采用右移重调度处理故障,简化了对调度的鲁棒性和稳定性指标的估算。采用权重和方法将双目标转化为单目标问题,设计了两阶段多种群遗传算法有效确定双目标优化问题的Pareto最优解。在仿真试验中,对四种不同方法进行了对比分析,同时比较了随机权重和固定权重情况下算法的性能,结果表明了随机权重比固定权重具有更好的搜索能力。4.将单机的研究成果扩展到机器随机故障情况下兼顾稳定性的Job Shop鲁棒调度问题。与单机问题求解算法的不同之处在于染色体的编码方式,不仅包含了表达工序优先关系的基因,还包含了计算插入空闲时间大小的基因。由于Job Shop自身约束的复杂性,对调度的鲁棒性和稳定性指标计算更加困难,因此采用了采样方法进行估算。在仿真试验中,对未考虑空闲时间影响和考虑空闲时间影响的两种算法进行了对比分析,结果表明了后者比前者较大程度改善了稳定性,对鲁棒性的影响程度很小。5.对工件到达时间未知的动态Job Shop滚动重调度问题进行了深入研究,提出了关键工序集的概念。在滚动时域分解方法框架下,以时间窗口作为滚动窗口,设计了基于关键工序集的滚动重调度算法。采用混和遗传算法有效地确定关键工序集及其最优调度顺序,对关键工序集之外的工序,采用了分派规则确定在机器上的加工顺序,最后以完全调度的目标值评价染色体的适应度。与基于完全工序集的算法相比,大大降低了搜索空间。仿真试验表明,基于关键工序集的算法极大提高了计算效率,对全局性能指标的影响程度很小,为实际生产中的大规模动态调度问题提供了一种新思路。