1.概述1.1调度问题的提出敏捷制造作为21世纪企业的先进制造模式,综合了JIT、并行工程、精良制造等多种先进制造模式的哲理,其目的是要以最低成本制造出顾客满意的产品,即是完全面向顾客的。在这种模式下如何进行组织管理,包括如何组织动态联盟、如何重构车间和单元、如何安排生产计划、如何进行调度都是我们面临的问题。其中车间作业调度与控制技术是实现生产高效率、高柔性和高可靠性的关键,有效实用的调度方法和优化技术的研究与应用已成为先进制造技术实践的基础。调度问题主要集中在车间的计划与调度方面,许多学者作了大量研究,出了不少的研究成果。制造系统的生产调度是针对一项可分解的工作(如产品制造),探讨在在尽可能满足约束条件(如交货期、工艺路线、资源情况)的前提下,通过下达生产指令,安排其组成部分(操作)使用哪些资源、其加工时间及加工的先后顺序,以获得产品制造时间或成本的最优化。在理论研究中,生产调度问题常被称为排序问题或资源分配问题。1.2调度问题的分类生产调度系统的分类方法很多,主要有以下几种:(1)根据加工系统的复杂度,可分为单机、多台并行机、flowshop和jobshop。单机调度问题是所有的操作任务都在单台机器上完成,为此存在任务的优化排队问题,对于单机调度比较有代表性的请见文[9][10][l1];多台并行机的调度问题更复杂,因而优化问题更突出,文[8][11]][13]研究了多台并行机的调度;flowshop型问题假设所有作业都在同样的设备上加工,并有一致的加工操作和加工顺序,文[12][13][14]研究了flowshop问题;jobshop是最一般的调度类型、并不限制作业的操作的加工设备,并允许一个作业加工具有不同的加工路径。对于jobshop型问题的研究,文献很多,综述文章可参见Lawler等[15]。(2)根据性能指标,分为基于调度费用和调度性能的指标两大类。(3)根据生产环境的特点,可将调度问题分为确定性调度和随机性调度问题。(4)根据作业的加工特点,可将调度问题分为静态调度和动态调度。静态调度是指所有待安排加工的工作均处于待加工状态,因而进行—次调度后、各作业的加工被确定、在以后的加工过程中就不再改变;动态调度是指作业依次进入待加工状态、各种作业不断进入系统接受加工、同时完成加工的作业又不断离开,还要考虑作业环境中不断出现的动态扰动、如作业的加工超时、设备的损坏等。因此动态调度要根据系统中作业、设备等的状况,不断地进行调度。实际调度的类型往往是jobshop型,且是动态的。1.3生产调度的环境特征一般的调度问题都是对于具体生产环境中复杂的、动态的、多目标的调度问题的一种抽象和简化,因而,一个调度算法可以通过其如何表述这些复杂性来进行分类。由于实际生产环境是千差万别的,那末,一个调度算法就应该根据其是否能适合对应的生产环境的重要特征来进行评估。Frederick等人为了帮助区别不同的生产调度策略,给出了典型生产调度环境的五个特征,这将有助于我们了解各种不同的调度算法的应用环境。边界条件:生产调度常常是一个重调度问题,即修改已有的生产调度去适应新的作业。为提供重调度,调度算法应能处理生产系统中有关的初始状态。类似的生产调度通常是在一个有限的时间区域里进行的,系统的最优解(或次优解)亦是在限定的边界范围内来获取。分批大小和调整费用:为有效地解决实际生产中的调度问题,往往将任务分成多批进行,并考虑改变已有调度结果所付出的代价(调整费用)。加工路径:在实际生产中,作业的加工路径可能需要动态改变,工艺顺序可能是半有序的(semiorder)。随机事件和扰动:比如,出现关键作业、设备损坏、加工操作失败、原料短缺、加工时间/到达时间/交货期的改变等。性能指标和多目标:追求不同的性能指标往往会得到不同的优化解,同时,系统目标也以多目标为主。1.4调度问题的特点实际的调度问题有以下特点:(1)复杂性由于装卸作业、装卸设备、库场、搬运系统之间相互影响、相互作用、每个作业又要考虑它的到达时间、装卸时间、准备时间、操作顺序、交货期等,因而相当复杂。由于调度问题是在等式或不等式约束下求性能指标的优化,在计算量上往往是NP完全问题,即随着问题规模的增大,对于求解最优化的计算量呈指数增长,使得一些常规的最优化方法往往无能为力,对于这一点Garey等[16]给出了明确的证明。即便对单机调度问题,如果考虑n个作业而每个作业只考虑加工时间及与序列有关的准备时间时,就等价于n个城市的TSP问题。对于一般的装卸系统,问题就变得更为复杂。(2)动态随机性在实际的生产调度系统中存在很多随机的和不确定的因素,比如作业到达时间的不确定性、作业的加工时间也有一定的随机性,而且生产系统中常出现一些实发偶然事件,如设备的损坏/修复、作业交货期的改变等。(3)多目标。实际的计划调度往往是多目标的,并且这些目标间可能发生冲突。Oraves曾将调度目标分为基于调度费用和调度性能的指标两大类:Alia.S等人将调度目标分三类:基于作业交货期的目标、基于作业完成时间的目标、基于生产成本的目标。这种多目标性导致调度的复杂性和计算量急剧增加。1.5调度问题的研究方法—般的调度问题都是对于具体生产环境中复杂的、动态的、多目标的调度问题的一种抽象和简化,因而一个调度算法可以通过其如何表述这些复杂性进行分类。由于实际中生产环境是千差万别的,那么一个调度算法就应该根据其是否能适合对应的生产环境的重要特征进行评估。在对调度问题进行研究的方法上,最初是集中在整数规划、仿真和简单的规则上,这些方法不是调度结果不理想就是难以解决复杂的问题。随着各种新的相关学科与优化技术的建立与发展,在调度领域也出现了许多新的优化方法,比如神经网络、模拟退火法、遗传算法、禁忌搜索法等,使得调度问题的研究方法向多元化方向发展。下面我们分别对这些方法进行总结:(1)运筹学方法运筹学方法是将生产调度问题简化为数学规划模型,采用基于枚举思想的分枝定界法或动态规划算法进行解决调度最优化或近优化问题,属于精确方法。文[24][25][26][27][28]等提出了不同的分枝定界法,其不同点主要在于分析规则、定界机制和上界的产生这三方面存在差异。这类方法虽然从理论上能求得最优解,但由于其计算复杂性的原因、因而不能获得真正的实用。目前,Lenstra在文[15]中声明,对一个标准的10作业——10设备问题进行求最优解,需要在Prime2655计算机上运行1小时,并产生22000个结点。对于复杂的问题,这种纯数学方法有模型抽取困难、运算量大、算法难以实现的弱点,对于生产环境中的动态调度实现复杂,解决不了动态及快速响应市场的问题。(2)基于规则的方法对生产加工任务进行调度的最传统的方法是使用调度规则(Dispatchingrules),已经有许多调度规则被应用,因其调度规则简单、易于实现、计算复杂度低等原因,能够用于动态实时调度系统中,许多年来一直受到学者们的广泛研究,并不断涌现出新的调度规则。许多学者在这方面已进行了探索及大量工作,如研究与制定较优的单元零件加工调度算法,在减少等待时间、提高生产率等诸多约束条件下达到了一种较为科学有效的调度效果。PanwaIkar和IskaDder在文[30]中总结了l13条规则,并将它们按形式分为了三类:简单规则、复合规则、启发式规则;M.MontazeIi等例举了常见的20条规则,并针对一个实际的FMS,分析了这些规则对系统性能(如作业的平均等待时间、设备的平均利用率、作业总加工时间等)的影响;文[47]将多种规则组合起来实现调度;文[48]讨论了决策规则解决FMS车间调度问题的方法与规则库的具体实现,分析了各种规则与性能指标的关系,对如何合理地选用规则提出了建议;为了提高规则调度的质量,文[50]通过分析拖期时间与两个作业调度决策间的关系,提出了一种比较复杂的规则,并在以拖期时间最小的目标下,与LST、LPT、LDD、LWR、LSWR、LSOR等规则作了实验比较。随着计算机运算速度的飞速提高,人们希望寻找新的近似调度方法,它以合理的额外计算时间为代价,换得比单纯启发式规则所得到的调度更好的调度。在这方面比较有代表性的有移动瓶颈方法(BottleneckProcedure),用来解决以最小化Makespan为目标的JobShop调度问题,它通过不断地对移动的瓶颈设备进行单机调度,来获取更好的次优解。总的说来,启发式规则直观、简单、易于实现。但是近十年的研究表明并不存在一个全局最优的调度规则,它们的有效性依赖于对特殊性能需求的标准及生产条件。它是局部优化方法,难以得到全局优化结果,并且不能对得到的结果进行次优性的定量评估。顾客需求的个性化及要求企业响应市场的敏捷性,往往在生产加工过程中加入了更多的不确定性及复杂性约束,寻找调度最优算法本身是一个NP完全问题,这些使得基于规则的调度思想已不能适合敏捷化制造的要求。(3)系统仿真的方法基于仿真的方法不单纯追求系统的数学模型,侧重对系统中运行的逻辑关系的描述,能够对生产调度方案进行比较评价,分析系统的动态性能,并选择系统的动态结构参数。由于制造系统的复杂性,很难用一个精确的解析模型来进行描述和分析。而通过运行仿真模型来收集数据,则能对实际系统进行性能、状态等方面的分析,从而,能对系统采用合适的控制调度方法。仿真方法最早被用来作为测试调度启发式规则及分派规则的工具。后来,人们发现,通过将简单的优先权规则进行组合,或用一个简单的优先权规则将一些启发式规则进行组合,这样的调度优于单独的优先权规则。于是,仿真方法逐渐发展为一种人机交互的柔性仿真工具,并用来进行车间调度。这样,就能通过仿真而动态地展现JobShop车间的状态,分析在不同的调度方法下的系统性能,并运用知识和经验去选择合适的调度方法(规则),从而改善调度性能。Kiran等回顾和总结了在动态环境下基于纯仿真模型的JobShop调度问题的研究状况;Baker等人研究表明:机器数目对生产的相对效率影响不大;Nanot说明了优先规则的相对效率并不因机器的构成而改变;文[19]中提出了基于纯仿真模型的调度方法,即在一个较短的时间段内用仿真来评价一个分派规则集,选取最小代价的规则进行调度,以适应系统状态的变化;文[49]运用纯仿真模型,同时解决FMS中作业调度和搬运小车及刀具的资源分配问题;文[51]中提出了一种混合的仿真/解析模型,用于分析和设计具有缓存的不可靠生产线问题。基于纯仿真法虽然可以包含解析模型无法描述的因素,并且可以提供给使用者一个调度性能测试的机会,但其不可避免地存在以下问题:1)鉴于其实验性,因此,很难对生产调度的理论作出贡献。2)应用仿真进行生产调度的费用很高,不仅在于产生调度的计算时间上,而且在于设计、建立、运行仿真模型上的高费用。3)仿真的准确性受编程人员的判断和技巧的限制,甚至很高精度的仿真模型也无法保证通过实验总能找到最优或次优的调度。(4)基于DEDS的解析模型方法由于制造系统是一类典型的离散事件系统,因此,可以用研究离散事件系统的解析模型和方法去探讨车间调度问题,诸如排队论、极大/极小代数模型、Petri网等。调度中的排队论方法是一种随机优化方法,它将每个设备看成一个服务台,将每个作业作为一个客户。作业的各种复杂的可变特性及复杂的路径,可通过将其加工时间及到达时间假设为一个随机分布来进行描述。文[33]针对FMS中一类特殊的DEDS,利用了极大代数方法对其进行建模,并进行了系统的稳定性分析。总的说来,排队网络模型由于从随机统计的角度来描述FMS,难以表述系统中存在的某些特性(如有限的缓存空间等),同时,产生的输出是基于系统稳态操作的平均量,因此,很难得到比较具体的细节。Petri网作为一种图形建模工具可以形象地表示和分析FMS中加工过程的并发和分布特征以及多项作业共享资源时的冲突现象,具有很强的建模能力,对于描述系统的不确定性和随机性也具有一定的优越性。在制造自动化领域,利用Petri网及其扩展形式的模型进行死锁分析、调度决策和性能评价等已有大量理论研究文献。赋时Pet