APS
如何适合中国制造?
王岩峰博士
刃之砺信息科技(上海)有限公司
总经理
(yanfeng.wang@edgestone-it.com)
版权所有,引述请注明出处
当孔雀展开美丽羽毛的时候,羽毛的后面并不一样美丽。当生产排产软件开始推销强大效益的时候,我们更需要冷静地评估这种效益是否会在我们身上兑现。道理很简单,全球每年和生产计划排产相关的理论研究让超过上千所大学研究机构、上万名教授和
数万名研究生在耗费着数以亿计美金的科研经费。如果一个软件可以解决问题,那这些教授、研究生、研究经费早已经失去了存在的意义,但现实是这些研究还在红火的进行,钱仍然不够用。
近年来,包括i2,Adexa,Asprova,
Preactor
和FlexSche等欧美日本生产排产软件公司登陆中国,无不看重中国制造企业庞大的数量和提升管理水平的迫切心情。这些软件都有着非常优秀的操作界面和排产算法,也有着引以为傲的客户名单。但问题是,它们适合我们吗?在我们的需求中,哪些方面它们可以完美的满足?如果我们使用,可能会带来的具体效益和潜在障碍会是什么呢?这篇文章希望针对这些问题、纯粹从技术和管理层面进行讨论。本着有理有据的原则,
我们欢迎在这个领域有见地的同仁一起进行有益地探讨。需要声明的是,这篇文章无意对任何软件公司有偏见。
(一)
在乱象中理清概念
在术语、缩写满天飞的时代,APS也面临同样的问题。关于APS具体是哪些单词的缩写,有据可查的就有很多种,这就造成了都在讨论APS的人忽然发现对方讲的和自己不完全是一回事的尴尬局面。A
是Advanced
(先进)的缩写,没有分歧。P
可查的说法包括Planning,
和Production;
S 包括Scheduling
和System。经过排列组合,就会发现APS
有的代表Advanced
Planning and Scheduling,
有的代表Advanced
Production Scheduling,有的代表Advanced
Planning System,
等等。
无论用什么词汇,可以看出在帮助企业进行资源规划和优化的系统中,我们关注点在Planning
和
Scheduling这两个方面。
Planning
代表了“计划”;而Scheduling
代表了
“调度”,或者在很多人理解中,代表了“排产”。
为什么要把这两个词分开表述,因为它们代表了不同的优化精度和优化算法,对数据有着不同的要求,也就造成了对企业有着不同的适用程度。这两个概念之间的关系如果不搞清楚,我们就没有办法准确地评价一个系统是否适合自己的需要。
理想中,我们希望有一个系统可以像一个智者一样,时时刻刻告诉我们该生产什么产品,该在哪台设备上生产,该生产多少,在生产现场发生变化的时候,该如何调整等等。遗憾的是,这个智者并不存在。在满足客户需求情况下最有效率安排企业资源是一个理论上也非常具有挑战性的问题。这个问题正因为过于复杂,大部分问题即使用超高速的计算机也无法在可以忍耐的时间范围内得到最优的结果。这个现象随着计算机硬件速度的提升得到了缓解,但仍然没有根本得到解决,这正是理论研究没有止境、软件开发没有止境的原因。
因此,解决问题的思路只能是缩小问题的范畴,主要通过两个方面:
(1)
把问题分割成子问题,分别解决;
(2)
把时间分割成不同精度,分别解决;
采用(1)方法最典型的例子就是ERP中将生产主计划(MPS)、能力计划(CRP)和物料需求计划(MRP)作为三个或者几个分开模块、分别运算的情况。这种分割除了满足计算速度的要求外,在产能和物料规划的准确度上越来越显示突出的缺陷。如果理解这种分割发生在六十年代计算机运算速度更加落后的背景下,那么这种当初合理的分割现在已经不合适宜,因为无论从计算机速度、优化算法的质量都比六十年代提升了几个数量级。
为什么这种分割计算是不够准确?道理非常简单,产能的安排和物料的调配互相制约、互为条件,本质上并不存在哪一个可以先于另一个完成。一般来说,资源安排起步于对产能的规划,合理安排最终产品和半成品对企业有限资源的占用;然后根据生产计划产生物料需求计划。但物料供给的波动会造成生产计划的调整,成为一个不但是有限产能,而且是有限物料的优化问题。
采用(2)方法最典型的方法就是提供不同管理层面的计划问题,包括战略层面(长期),管理层面(中长期)和执行层面(短期)
无论何种层面,为了降低优化计算的复杂程度(例如决策变量的数量),都需要做一定程度的取舍。如果做长期计划,当时间跨度增加、视野更加开阔的时候,优化精度就会降低,比如说采用以周、月为单位的时间刻度。如果做短期计划,例如生产调度,当需要具体安排某个工序在具体时刻发生的时候,这时候时间刻度缩小到分钟级别,那么整个计划的跨度就会缩短。
一般来说,时间刻度(或者说时间精度)是划分“计划”和“调度”的最重要依据之一。如果时间刻度是以月、周、天为主,那么这样的资源安排一般称为“计划”或者“规划”(Planning);如果时间刻度已经深入到小时和分钟(甚至秒)的级别,并且资源安排具备明显的次序要求,那么这样的资源安排一般称为“调度”或者“排产”(Scheduling)。此外,这种划分的另一个重要依据是这两类问题的处理算法一般也大不相同(详细说明见下)。
按照现在算法和计算机处理能力的发展,在(1)方面可以取得比(2)更大的突破,现在资源优化的方向已经逐渐摒弃(1)当中产能和物料割裂计算的方式,而是在更系统的“有限产能计划的”框架内一并解决产能和物料的问题。我们所看到的新近涌现出来的很多APS系统或者老牌ERP系统中的生产计划部分都在向这个方向努力。
但碍于算法的复杂程度,在相当长的时间内,(2)当中采用不同时间精度的方式仍然会很流行,但所幸的是,不同企业或者企业中的不同职能部门对于时间精度的要求是不一样的。
在这篇文章中,我们是站在统一的“有限产能、有限物料”的优化框架下来讨论“计划”和“调度”在中国企业中的适用度,而不再将产能和物料分割开计算,因为这种方法会慢慢被淘汰掉。
(二)优化面临的主要问题、目标、方法和算法
(1)三大难题
在资源优化问题中,我们面临的三大难题是:Lot
Sizing(产量),Resource
Assignment (资源调配)
和
Sequencing (顺序)。简单来说,就是决定企业每天生产什么产品、生产多少、由谁来完成以及以什么样的次序来完成。
Lot Sizing
试图确定在一定单位时间内(例如班次、天、月、周等)生产制造的种类和数量。Resource
Assignment 试图确定各种加工产品如何分配到多个资源上。Sequencing
试图确定加工的次序和生产准备的方式。
(2)多个目标
在资源优化问题中,我们也面临着企业优化的目标。很遗憾的是,企业目标的选取没有降低,反而增大了上述三个问题解决的难度。因为企业对于资源利用的目标不但是多维的,也是不断变化的。企业资源的目标可以包括
a)
库存
b)
资源利用
c)
客户订单满足率(客户缺货率)
d)
生产转换
e)
生产连续性
f)
生产加班
等等。这些目标随着经营环境的变化,优先级有可能发生变化。
(3)
二种方法
在(一)已经提到“计划”和“调度”的区分。一般而言,“计划”所主要针对的问题就是Lot
Sizing (产量)
和
Resource Assignment (资源调配)的问题;而“调度”所主要针对的问题是Sequencing(顺序)问题。这种对应关系是和问题中所隐含的对时间刻度的要求是紧密相关的。
一个工厂如果获得当天的生产计划,也就是获得了当天需要加工的产品、数量和设备的大致安排,也就具备了基本的生产启动指令。车间调度人员具有灵活安排生产加工次序和组织生产的灵活性。“计划”的优点在于在统筹的资源调配情况下,赋予车间现场人员比较宽松的灵活度来应付各种可能的突发事件,缺点在于并没有告诉操作人员如何安排更细致的工作。
反之,“调度”则详细而具体的安排了设备在更精细时间刻度上(小时、分钟)的工作量,以及工序之间应该如何衔接和先后次序。“调度”的优点在于明确操作次序,减少现场人员的随意性;但缺点也是显而易见的,就是对于生产现场的变化处理并不具备宽容度,往往对于全自动化非人工活动具备较好的应用性(例如汽车厂的喷漆车间)。
(4)
多种算法
“计划”和“调度”所采用的算法往往大不相同,对企业优化目标所造成的影响也大不相同。
在“计划”当中,当时间刻度是以班次、天、周、月等划分的时候,为了实现“有限产能、有限物料”的统一优化,往往采用是以线性规划或者混合整数规划为主的优化方法。
在“调度”当中,当时间刻度非常小,或者允许是连续时间的时候,为了实现次序的优化,往往采用以约束规划、经验规则或者启发式算法为主的优化方法。
这些算法的优缺点可以见以下表格。
需要说明的是
(1)各种算法并不专属于某种类别,在“计划”制定中也可以采用经验规则等方法。这里面只是罗列了被证明比较好的方法。
(2)算法的优劣不是站在算法本身考虑的,而是从对问题解决的相关度上来看。
|
|
时间刻度 |
主要针对问题 |
主要算法 |
优点 |
缺点 |
|
计划 |
天、周、月等 |
Lot Sizing
(产量)
Resource
Assignment (资源调配) |
线性规划 |
a) 可以适应企业多目标优化
b) 目标可以有优先级
c) 成熟技术
d) 适合大规模问题
e)
可以找到最优值或者较好的次优值 |
a) 对于次序问题比较困难
b)
大规模商用成熟优化器一般比较昂贵
|
|
调度
|
连续时间,或者分、小时等
|
Sequencing
(顺序)
|
约束规划 |
a) 可以处理次序问题
b) 可以处理复杂工序问题 |
a)
算法以找到可行解为主要目标,无法实现多目标同时优化
b)算法个性化程度较高,开发难度大
c) 可处理的变量数量和复杂程度限制较高 |
|
经验规则 |
a) 运算速度快
b) 开发简单
c) 容易理解 |
a)
往往不能找到最优解,而是一个可行解;
b) 对规则的质量要求很高;
c) 无法实现多目标同时优化 |
|
启发式算法 |
可以找到较好的解决方案
|
a) 算法个性化程度较高,开发难度大
b) 可处理的变量数量和复杂程度限制较高
c) 方案的稳定性随着问题的不同而有较大差异 |
从这个表格我们需要看到:
(1)“计划”可以对企业多目标进行优化,但在时间刻度上做了简化,是一个以企业多目标为导向的优化工具;而“调度”的优势在于执行层面,但因为算法本身的制约,无法看得更宏观、更系统
(2)时间刻度越小,为了能够在可以容忍的时间内产生一个较好的方案,问题的范围就越要缩小,“调度”算法在增加细节操作的可控性的同时,失去了时间跨度的优势,也就失去了对企业在较长时间范围内目标的可控性。
很多软件可以宣称既能够满足“计划”的要求,也能够产生“调度”的细节,那么只有以下几种可能性
(1)
这个软件包含了两种(或者多种)不同的算法,可以按照一定逻辑先后运行,例如iLog开发的PowerOp系统。
(2)
这个软件采用了某种算法,例如经验规则、启发算法或者约束规划,那么优化结果的缺陷将会是要么优化速度在问题复杂的时候需要很长时间,要么无法实现企业多个目标的同时优化(
或者只是找到一个可行解),要么以上两个都具备
(3)
企业问题本身已经具备某种特征,比如说按照客户订单生产中,加工批量就是客户订单数量等,这样在某种程度上规避了资源优化问题中的某一个(例如Lot
Sizing)
问题,算法的难度可以大大降低。
(4)
名不符实
(三)“计划”和“调度”,哪个适合我们?
企业管理本身目标的多样性和易变性,以及企业从战略到管理层面都需要进行业务规划的特点,直接决定了“计划”的必要性和可行性。这也正是很多ERP系统在销售时所宣传的,虽然没有太多企业成功的实施了ERP当中的生产计划功能。没有成功实施的原因很多,但其中很重要的一条,就是和传统ERP当中有限产能和有限物料没有在统一的框架内计算而造成的结果偏差有关。
好的“计划”可以在系统、宏观的层面决定了企业的KPI绩效水平,为执行层面上的“调度”打下好的基础。
正是基于这个考虑,笔者一直认为,制造企业首先考虑的是为ERP的短板——生产计划功能找到好的解决方案,或者说为ERP找到好的引擎。
那么“调度”系统是否也是我们所需要的。回答是肯定的,但需要附带很多说明。
首先,我们讨论一下“调度”系统的缺陷。
(1)“调度”系统视野的局限性和对全局多目标的可控性
在(二)中的表格中,我们已经罗列了“调度”系统的优势和劣势。“调度”系统中算法本身的局限性决定了“调度”系统在整个企业资源优化过程中,处在局部执行层面的地位上。
我们在考虑“调度”系统时,需要清楚地知道,企业大部分系统级别的绩效指标在“计划”的时候,就已经确定了,而“调度”只是将这个方案更细化。例如,对于资源的平衡利用目标,当我们通过计划系统确定每个设备在一周内的生产数量的时候,就已经确定了每个设备在这一周内的耗费工时,也就确定了生产系统在这一周内是否均衡地利用产能。至于让某个设备先加工产品A还是产品B,这种排序调度不会改变资源在这周内的平衡率。类似的指标还包括库存水平、设备利用率等。
一定会有人说,“调度”系统可以检验“计划”结果的可行性,保证生产能够准确运转。这个往往是“调度”系统宣传时最常用的理由,这个理由听起来很充分,但漏洞很多,这主要是由“调度”系统的以下缺陷造成的。
(2)“调度“系统对于生产的波动无法提供更智能化的包容度。
毫无疑问,制造企业生产的波动性是管理的魔鬼。无论标准工时,材料供给、设备人员状态等等,无时无刻不在发生着变化。这种变化太普遍、太不可预见、太难以跟踪。如果没有一个系统提供准确及时地数据,“调度”系统如何能够控制到分钟、小时这样的时间精度上?如果一个环节发生了超出计划的延迟,“调度”系统要以怎么样的方式来调整后续的操作?时效性如何?影响面有多大?”调度”系统能否跟得上这样频繁的变化?
“调度“系统是一个始终保持理性头脑的家伙,但我们总怀疑这样的理性如何面对生产现场的不理性?
(3)“调度”系统算法本身和现实操作存在矛盾
对于“调度”算法本身和现实操作的矛盾,我们可以举二个例子。
第一个例子是关于对于宽放系数(以及稼动率)的处理
正是由于生产的波动性,生产过程中不可避免的出现人员休息、设备中断、运输等待等临时突发事件所带来的生产效率损耗。在“调度”系统中,这部分损耗就要折算到工单处理时间中,将原本正常的处理时间增长一个比例。
但问题是,如果按照这样的处理时间来进行调度,如果一切正常,没有发生任何波动性,那么多余出来的时间怎么办?
我们都知道这部分时间属于“不增值”的无效时间(原本留给意外发生的时间)。也就是说,“调度”系统不但试图调度有效的处理时间,也在调度不可预见的无效时间。这听起来是不是有点矛盾,不可预见的事件时间怎么能调度呢?这就是“调度”系统的一个无法克服的缺陷。
第二个例子是关于并发活动的处理
甘特图是“调度”系统最显著的表现形式,但这个图(或者说内部算法)在处理并发活动关系上却很难完全准确地描述。比如说加工一定数量的产品,需要经过两道工序A和B,这两道工序的关系可以有多种可能性,例如下图。

第一种情况更多地适用在单件流的生产方式下,而最后一种情况适用在批量化生产的方式下。而第二种情况就是介于两者之间的情况。在生产现场中,如果没有明确的处理方式的规定,这三种情况都有可能发生,而以第二种的中间状态居多。也就是说,如果企业生产现场人员可以有灵活性来决定工序间产品流转的批量的话,几乎没有一个“调度”系统可以应付这样灵活而无规则的处理方式。任何产生的调度计划都有可能受到责难。
正是因为以上讨论的“调度”系统的缺陷,在引入“调度”系统的时候,我们需要仔细地考察企业自身的生产状态,我们认为,只有在以下几种情况下,引入“调度”系统是一个比较合理的方案。
(1)企业的管理精度和软件系统的时间刻度匹配
我们有一个明确的观点,就是计划系统的优化精度应该和生产现场控制的精细程度相匹配。如果计划精度到小时甚至分钟,而现场状态数据(在制库存、设备和人员状态、材料供应状态等等)无法准确到小时或者分钟,现场指令无法应变到小时或者分钟,这是控制落后计划的情况,应用效果不会理想。
如果企业对生产现场的控制(包括指令的发出和反馈、数据的跟踪、作业标准化等等)达到比较高的程度,特别是全自动化设备运行生产线,那么基本具备了“调度”对数据的及时性和准确性的要求。
(2)产品的加工次序可以显著影响到企业的运营水平或者某个局部的运营水平
例如汽车厂的喷涂车间或者半导体产线上的某些需要较长生产准备的昂贵设备等,引入“调度”软件对于这些局部产线或者工序进行排序优化,是一个可以充分发挥“调度”软件优势,而又可以比较容易解决问题(问题范围缩小)。
(3)生产波动性较小
这一点非常容易理解,前面已经提到,一个频繁变化、疲于调整的“调度”系统是会很快被最终用户放弃的。
(四)当务之急
正是因为“计划”比“调度”对于企业绩效指标有着更系统和更长远的影响,并且“计划”系统比“调度”系统对于企业管理水平有更大的包容性,我们认为企业目前资源优化的重点,仍然应该放在建立一个统一集成的“有限产能、有限物料”的“计划”系统,打好未来企业更精细化运作的基础。
“计划”系统比“调度”系统更具备包容性主要体现在对时间刻度的控制既不是太粗放(控制到班次和天、周等),又不太精细(对现场具体操作留有灵活性)。同时,更重要的是这样的时间刻度可以有效地利用数学算法在企业多个绩效目标之间进行权衡。在很多时候,这些绩效目标之间存在着互相矛盾(例如库存水平和客户按时交货率),企业按照实际需要进行优先级的设定。
而在“计划”系统中,一个可行的、很多企业正在努力的方向就是建立涵盖企业多个绩效目标、集成的"有限产能、有限物料”系统,将产能和物料的规划在统一的框架内同时解决,我们也认为这个方向符合目前中国制造的信息化方向。
(五)总结
用“电脑”博弈“人脑”,只有在特定条件下才有成功的可能。在引入资源优化系统之前,我们需要清楚地了解各种系统的优点和缺点。没有完美、一劳永逸的生产计划和调度系统。中国制造企业现在需要的是有宽容度、可以针对企业多个目标同时优化的计划系统,可以宽容企业管理的波动性和不完美。在这种宽容中,系统可以为企业提供
具有指导意义的生产计划。
同作者的其它文章:
随笔:我们管理的盲区
随笔:形似和神似
仿真技术—提高中国制造企业效率的有效工具
随笔:系统仿真的本质思考
随笔:系统仿真应用中的几个疑问
随笔:关注仿真项目总成本,避免选型误区
作者介绍
王岩峰博士现任刃之砺信息科技(上海)有限公司创始人和总经理,兼中国国际经济咨询公司高级顾问,美国工业工程师协会高级会员,上海机械工程协会工业工程委员会委员,国家一级刊物《系统仿真学报》审稿人。王岩峰博士在美国和中国有多年工作经验,曾为多个世界500强企业提供生产运作管理的服务,这些企业中包括英特尔(Intel)、阿海珐(Areva)、诺基亚(Nokia)、福特(Ford),卡特彼勒(Caterpillar)、宝钢等。这些实施方案通过提高运作效率帮助客户实现年均超过数千万美元的收益。王岩峰博士在供应链管理,生产运营管理,流程改善、计算机仿真和企业信息化领域有较深研究。
王岩峰博士在美国波士顿大学获得制造工程博士,在新加坡南洋理工大学获得硕士学位,在上海交通大学获得学士学位。
欢迎批评指正