于 奇, 曲 立
(北京信息科技大学, 北京 100101)
随着世界经济与新兴技术的飞速发展,传统的生产运营模式已经不能适应消费者多样化的消费需求,且产品更新的速度也不允许大量库存的积压。戴尔(Dell)在PC业率先实施按订单生产模式[1],使得工厂库存期最多为3天,并在订单发出后的5~7天客户收货,凭借着这种运营模式,戴尔首次以160%的投资回报率与高达 26.9%的市场占有率赢得了竞争优势。随着Dell的成功,按订单生产(MTO)模式凭借其出色性能表现迅速在全球推广开来。截至目前,PC行业与汽车制造业已经基本普及这种商业运营模式。
生产计划与调度问题是制造业对产品生产进行统筹安排过程中的核心问题,对企业合理配置资源并提高生产效率具有重要意义。面向订单生产型企业已成为现阶段生产制造企业中不可忽视的中坚群体,关于其生产计划与调度问题的研究与发展一直受到国内外学者的重视。
与其他类型生产企业相比,面向订单型生产企业特点有[2-3]:
(1)以客户需求为导向生产。
(2)产品模块化、零部件标准化。
(3)生产计划、组织管理复杂。
(4)生产准备工作量大。
(5)生产的一次性。
(6)对市场快速反应的能力要求高。
(7)外协外购量大。
(8)生产负荷的动态性。
订单型企业的生产特点决定了其生产计划与调度区别于其他生产企业,主要体现在[4]:
(1)订单的交货期是订单型企业在制定生产计划与进行现场调度时考虑的重要因素。
(2)大幅降低的库存成本是订单型企业的优势,在生产计划的制定过程中往往不作为重要的考量因素。
(3)订单型企业调度过程中要考虑采购零部件间的父子级加工关系,即需遵循一定的生产顺序。
(4)订单型企业在订单处理进度的各个阶段均存在生产计划与调度的典型问题。
目前还没有被学术界认可的订单生产计划与调度问题的分类,由于订单型企业的生产计划与调度问题在订单处理进度的不同阶段比较典型,故尝试将订单型企业计划与调度问题按照订单处理进度分为3个阶段:
第一阶段:订单进入[5]阶段。该阶段企业生产方就客户订单的交货期、价格等订单细节与客户进行谈判协商,企业做出是否接受该订单的决策。
第二阶段:订单生产筹划阶段。订单接受后需要对已接受的订单进行生产优先级排序,根据订单要求确定合适的投产量,在这一阶段往往需要制定详细的生产计划。
第三阶段:订单生产实施阶段。该阶段主要包括订单在生产车间正常生产情形下的调度问题以及非正常生产情形下由于生产过程中的不确定因素,如订单变更、紧急订单的调度问题,针对不同问题采取相应的调度策略。
该阶段主要存在订单接受与调度问题。订单接受与调度(Order acceptance and scheduling,OAS)问题一直是国外学者研究的热点问题。接受客户订单是在未来某个时刻交付客户订单的决策。故接受某个订单需要考虑车间的容量情况、机器的负载、交货期能否满足等因素,故且不仅要对该订单的生产计划进行估计,还要考虑对其他已接受订单的生产计划与调度的影响。
文献[6]对订单接受与调度问题做出了详尽的综述。从该领域主题的多样性来看订单接受需要遵循的主要依据有:机器工作负载、车间容量规划、订单交货期设置、订单价格与交货期谈判等。从模型构造的最终目标来看有利润最大化、成本最小化、总生产时间最小化、交货期总延迟时间最小化、订单接受数最大化等等。从解决模型与算法上来看有:启发式算法、神经网络算法、动态规划、排队理论、仿真算法、等等。还可以从领域主题的差异性来对订单接受问题进行综述分析。文献[7]假设让接受的订单全部满足交货期,通过加班与外包的手段对当前订单进行组合优化以获得最大利润,故加班与外包成本是建模考虑的重要因素。文献[8]假设可以允许订单的一定交货期延迟,但是要考虑订单的延迟惩罚成本。文献[9]设置不能满足交货期的订单直接拒绝,不考虑采取手段来使所有订单满足交货期,也不考虑延迟惩罚。上面这些文献都是基于订单交货期的不同妥协程度而采取的订单接受策略,其实在现实情况还要考虑客户的态度、客户是否接受订单延迟、能够接受的延迟日期是多少。
上面提到的文献多是从订单接受的角度来考虑问题,订单的选择性接受意味着其他订单的拒绝,订单拒绝会产生一定的罚金,故有文献从订单拒绝的角度以最小总拒绝惩罚为目标来进行研究[10-12]。结合大多数以利润最大化方案去接受订单的策略[13-15],这些文献可能只是考虑了当前的利益,而没有考虑被拒绝订单的客户的潜在价值,订单拒绝带来的惩罚也不止支付罚金如此简单,频繁地拒绝同一客户订单多次可能意味着客户的流失,做出拒绝订单的行为时也应考虑该客户的潜在合作价值,下一步可以研究订单拒绝的频率、客户的重要程度、客户的商业价值、客户的信誉评估等方面的关系,来获取长期的“利润最大化”。
订单进入后需要结合车间情况、订单交货期等方面制定详尽的生产计划。这一阶段主要需要对订单池中未生产的订单进行排序,以及各个订单的投产量进行决策。对此可做研究阐述如下。
(1)订单优先级排序问题。订单优先级排序是在企业接受来自各个客户的不同订单后,根据这些订单的紧急程度、重要性来确定一个大致的生产顺序。订单的生产顺序决定了订单的生产交货期限,而生产交货期限是产品生产计划制定过程中的重要组成部分。国外关于这方面的研究是在车间调度层面的,且不作为主要研究主题而包含在调度规则中,如SPT规则、EDD规则、FCFS规则等,这些都是遵循一种单一的规则,而国内的文献是用一种综合的视角来研究订单生产优先级的问题,对该问题的考虑较为全面。国内文献研究该问题方法的多样性主要体现在2方面,分别是:评价指标的分类方法,评价指标的衡量方法。文献[16]参考别人的指标体系建设将订单分为6个评价指标,运用TOPSIS理想解法来衡量评价指标权重与订单的综合重要性;文献[17]将评价指标类型分为效益型、成本型和标准型,共对应8个评价指标,运用熵方法来衡量评价指标权重与订单的综合重要性;文献[18]通过层次分析法将评价指标分为3个准则层:订单层面、供应链层面与企业层面,共对应12个评价指标,运用RBF神经网络模型来衡量评价指标权重与订单的综合重要性。
上述文献仅局限于对一种评价指标衡量方法的研究,下一步的科研方向是研究在不同指标数量与指标类型下订单排序方法的性能、优越性以及合理性的比较。
(2)订单投产量问题。传统的生产计划不考虑计划投产量与实际产出量的偏差,而在实际情况中,由于生产过程中不确定因素导致不合格品的存在,需要采取返工与再投产措施来满足客户的要求。投产量问题主要通过建立数学模型来确定合适的投产量以使成本与损失最小化。
文献[19]假设产品合格率符合正态分布,在合格品率影响下主要考虑过量产出产品处理成本、欠产再投产产品成本、不合格产品报废成本、投产一次准备成本而建立对应的数学模型并进行求解。文献[20]在文献[19]的基础上研究假设产品合格率符合均匀分布情况下的最优投产量问题。文献[21]在文献[19]的基础上考虑了再投产的产品也有不合格品与过量产出产品的存在问题。文献[22]在文献[19]的基础上,将不合格品的处理方式更加细化,分为部分不合格品返工与部分直接报废。文献[23]在文献[19]的基础上假设产品生产的不合格品率会随着工人生产经验的增加而降低,构建“学习曲线”来描述不合格品率随着投产量增加而降低的特征关系。这些文献都是考虑在不同生产情形或假设条件下的订单投产量问题,其所对应的解决方法也有所变化与调整。
在文献[19]的基础上,还可以研究欠产再投产与返工生产过程中产生的时间成本问题,过量产出产品的处理不会影响订单的交货期而导致拖期问题,而欠产再投产与返工生产造成生产准备时间与生产加工时间的增加可能会导致订单延期而产生拖期惩罚。
当订单到达车间并被编入车间时间表时就是对现场生产进行指挥调度的阶段。由于在实际生产情形下,并非所有订单能够按照计划平稳地生产,一些不确定的因素可能会干扰生产过程,故将订单的调度问题分为正常生产情形与非正常生产情形下的调度问题。研究可得剖析分述如下。
(1)正常生产情形下的调度问题。大部分的订单在进入车间后总能按照生产计划顺利进行生产,此时的车间调度策略往往是固定的。文献[24]综述了订单的调度问题,将订单调度问题概括为:共同交货期调度问题、普通订单调度问题以及成套订单调度问题。其中,普通订单调度问题又分为单机带调整时间调度问题、并行机带调整时间调度问题以及复杂机器环境的调度问题。
文献[24]论述的订单调度问题都是基于正常生产情况下的,且作为单独的调度问题来研究。而这种类型的问题,有些学者往往是与订单接受问题联合起来研究,即前文的OAS问题,而OAS问题除了考虑订单的调度以外,还需考虑如订单价格、订单的预期利润等其他因素。
(2)非正常生产情形下的调度问题。正常生产情形往往是理想化的,对于车间生产过程中的不确定情况,如机器故障,采取的动态调度算法并不是特别针对订单型企业,尚未见专门单独研究订单型生产企业机器故障调度问题的文献,文献[25-27]单独研究机器故障调度问题的车间背景均没有指明产品的交货截止日期。而紧急订单与订单变更却是订单型企业独有的不可控因素,订单型企业在考虑不确定因素时也会考虑机器故障,但往往是与紧急订单、订单变更等情况一起出现在讨论范围内。
文献[28-29]使用遗传算法解决机器故障、订单到期日变更、紧急订单、订单优先级变化、订单取消的调度问题。文献[30-31]开发仿真系统来解决机器故障、紧急订单、订单取消、订单返工的调度问题。这些文献均采用一种方案解决多种不确定因素相关的问题。文献[32]以最小化加权完成时间或最大生产时间为目标,运用cmeeu与list 两种启发式算法来解决单机情况下紧急订单的插入时间表的调度问题,比较了2种启发式算法的计算误差与适应的问题大小。文献[33]旨在解决并行机器的紧急订单调度问题,比较了预测—反应式调度算法即匹配算法与总重新安排、右移、末尾插入等重新安排策略的性能与稳定性。该文中算法性能包括:订单的平均延迟时间、延迟订单数、机器总闲置时间、总准备时间、总流程时间的综合指标。稳定性是与机器工作负载情况相关的指标。这些文献比较不同算法在解决紧急订单调度问题(不确定因素中的一种)上的性能差异。还有文献比较不同规则算法在解决多种不确定因素下的性能差异,如文献[34]在正常生产情况下采用分支定界法解决车间生产调度问题,而在机器故障、订单变更、紧急订单三种不确定情况下切换算法并比较FCFS规则算法与SPT规则算法的性能差异。这里的性能主要指最短总完工时间。
根据单机调度(OAS)问题,订单接受与调度问题的动态性主要体现在订单到达的随机性方面,其实订单接受还要考虑非正常生产情形下的订单交货期变更、机器故障造成机器工作负载变化、紧急订单造成车间资源容量的变化的“动态性”,都会对新订单的接受造成影响。目前关于这方面的文献很少,可以朝着这个方向研究。
在上述文献的研究基础上,下一步要研究的问题可以从横向拓展与纵向拓展两方面去表述。这里拟给出研究详述如下。
(1)横向拓展。在订单生产计划与调度问题中是在各种不同的实际研究背景下新的研究主题的探索与挖掘,包括不同的生产环境、调度目标、生产条件的组合。结合全篇综述,具体方向可包括:考虑订单拒绝引起客户流失等长期影响的订单接受与调度问题、产品合格率正态分布情形下欠产再投产与返工生产对订单交货期有影响的投产量问题、产品合格率均匀分布情形下欠产再投产与返工生产对订单交货期有影响的投产量问题、单机环境下考虑不确定因素的OAS问题、并行机环境下考虑不确定因素的OAS问题等等。
(2)纵向拓展。在订单生产计划与调度问题中是对同一个问题的不同研究算法的结合、创新与比较。如文献[35]证明在解决100订单数以下的单机OAS问题时,禁忌搜索算法(TL)比ISFAN算法和m-ATCS两种启发式算法拥有更好的性能与更短的运行时间。文献[36]证明在解决100订单数以下的单机OAS问题时,人工蜂群算法(ABC)比禁忌搜索算法(TL)拥有更好的性能与更短的运行时间。文献[37]证明在解决100订单数以下的单机OAS问题时,证明混合稳态遗传算法(HSSGA)与带引导变异的混合进化算法(EA/G-LS)的运算速度比人工蜂群算法(ABC)与禁忌搜索算法(TL)要慢,但性能要优于人工蜂群算法(ABC)与禁忌搜索算法(TL)。特别地,HSSGA与EA/G-LS是一种组合算法,综述[38-39]提到要将不同优化方法以及算法应组合应用,充分发挥不同优化方法与算法的优势。结合全篇综述,具体方向体现在:比较TOPSIS理想解法、熵方法、神经网络算法等不同方法解决不同指标数量、规模与类型的订单排序问题的运算速度性能比较。