APS实现的要点与难点

  在前一篇关于文章中讨论了不一样层级、粒度的生产计划,在各行业中受重视程度的差别问题。html

  承蒙你们热烈讨论。本文则在收集各方高见的基础上,对于供应链上各个环节的运营、生产计划再做稍微深刻一点的探讨。本文将列举APS技术中常见的重点难点做展开讨论,基保重点的计划场景是制造业的生产计划。本文将基于APS技术、APS项目及APS系统(产品)相关的信息进行探讨。算法

为什么须要APS

  APS(高级计划与排程)技术,能够在保证工做安排的可f行性基础上,对安排做进一步优化,从而得到一个比人类手动规划更佳的计划方案。该技术的终极目标是,从天文数字多的可能计划方案中,尝试找出最佳的计划方案。但基于NP-Hard问题的特性,能够找到的方案没法证实是最佳的。但是对于实际应用环境而言,APS系统只要能够找到一个计划方案,被证实相对人们手工编排的计划方案更优,即到APS项目的最基本目标;且不论寻找这种优化计划方案的效率远高于人工方式。这种“智能”优化能力,是APS技术的核心价值所在。为了应对市场快速变化、下降成本,制造企业对生产管理提出进一步的精细化管理要求(例如精益生产,在下一篇文章中会对APS技术在精益生产中的应用做详细讨论)。而ERP,MRP等技术日催成熟,从中可获取用于改善管理效果、提升管理精细度的价值愈来愈小。随着计算机算力的提高,结合各类运筹优化算法(主要是启发式算法)的成熟应用,让信息系统更深刻地参与到精细化管理的条件日渐成熟。APS技术则是其中一种将运筹规划技术应用于生产管理的典型案例。微信

  在供应链的生产管理环节(其它环节亦然),造成的生产计划越精细,对生产能力的预判越准确;为市场销售人员提供的产能与资源信息越准确,可推算出越准确可行的交期承诺。在生产管理活动中,编排生产计划时考虑越周全,对突发状况的变应越迅速,对生产做业的安排越精准;越能减小各类资源的没必要要等待与浪费,越能减小生产过程当中的不增值做业(精益生产的基本要求)。从而下降生产成本,提升产品竞争力。在运营管理活动中,因应市场的需求变化,越快做出最适当的反应,从新肯定新的、优化的生产、物流和资源方案的计划方案,越能帮助客户把握商机;更有利于赢取市场。所以,APS技术具备对供应链各环节的周全预测能力,对生产计划做出极度精细化的编排,对需求快速反应等特性;逐渐受到制造业和其它具备规划优化需求行业的青睐。但与不少新兴技术同样,风险、困难每每与价值伴生。那么,要成功实施一个APS项目,并令其发挥预期的效用,须要面临哪些问题呢?网络

APS项目对企业的信息、流程环境与人员的要求

  尽管APS技术存在至关多的优势,可为企业带来其它IT技术以往难企及的收益和管理助力;但这仅仅是基于APS项目能成功部署实施,并正确发挥做用的前提下。由于APS项目的高要求特性,目前各行业能成功将APS技术应用到运营、生产活动中的企业仍是小数。缘由众多,APS技术的各类困难因素和企业自身的条件均有可能阻碍APS项目的成功实施与应用。传统的企业信息化项目(ERP,CRM,MRP等),一般具备较明显的方案可行性,和效益肯定性等特色。相对较容易量化项目的投资及收益。而APS技术是运筹规划领域在企业中的应用,自己带着必定的学术专业性,对项目实施人员有必定的专业要求。另外企业自身的信息化、标准化水平,和供应链各环节的数据和流程完备性,均是APS项目依赖的关键因素。APS项目对部署、实施环境和人员的要求甚高。详细分析以下:函数

  1. 对APS项目人员的要求甚高。在自研APS系统状况下的项目,项目的关键工做在于规划核心的设计与开发。对于通常规模的商用APS项目而言,企业不可能自主投资开发优化核心(求解器),而是会选购现有的求解器产品,做为运筹优化核心。目前成熟应用于商业的求解器有CPLEX, Gurobi等。开源免费的求解器较具表明性的则有OptaPlannerGoogle OR-Tools,国内的开源求解器目前较知名的有杉数科技的COPT(非开源)。项目组的研发人员掌握这类求解器(或称规划引擎)的应用有必定困难。毕竟运筹优化中的数学规划属于应用数学领域,所以,对于研发人员的数学规划专业能力有必定的要求。同时懂得IT与数学规划的技术人才,是普通企业极度稀缺的人力资源。
  2. 对企业供应链数据质量要求甚高。APS系统能准确地生成生产计划,资源分配方案和产能预测结果;除了创建高质量的规划模型,对被规划的对象要求甚高。一个高质量的规划模型,能准确反映企业供应链的各类约束与优化要求。但在使用这个模型进行规划运算时,提供给它的数据是否准确反映企业的真实状况,数据表达的各类业务状态是否全面,是影响规划效果的另外一个要素。尽管创建了精准的规划模型,但做为规划原料的输入数据准确性不佳,或这些输入数据并未能真实全面反映企业真正的业务情况;则系统的输出不可能正确,项目则没法产生应有的价值。
  3. 企业应用部门需对APS技术有正确的理解。若已成功部署一套APS系统,那么如何合理、准确地应用这些APS的输出方案,是另外一个难题。APS在制造业上的应用,目前主要的应用于对生产计划进行可行性约束和方案优化。APS输出这此优化后的计划方案,可做为MRP,销售预测,库存控制及生产计划的原始数据。细粒度、规划精细合理的原始数据,甚至能够做为车间做业指令,在自动化程度高的行业,做为车间机台控制和运输调度之用。但在各方面的应用是否合理,则须要各领域的专业人员正确地理解APS的输出数据,将这些数据做为编制各领域的计划方案的基础。若某个领域的专业人员对APS的输出理解不足,则没法充分发挥其价值。

APS项目实施重点与难点

对业务实体与规则的提炼

  APS技术不像其它企业信息系统,其重点已经不在于将生产数据的信息化、流程自动化,以达到提升效率的目标。而是着重于根据现有的生产要素,对生产计划做出快速、自动且“智能”的编排,并从中对计划做出进一步的优化。所以,对数据(包括资源信息,订单信息等)的准确性与全面性要求更高。对业务规则、计划的优化目标的理解也要求更准确。由于APS技术实现计划优化的过程,本质上是运筹学上的一种数学规划、寻找极值过程。相应的数学规划模型的质量越高,能获取的优计划方案与实际业务实况越匹配。所以,如何对业务实况进行精确分析,定义准确的业务实体,提炼并综合设计各类业务规则,肯定计划的优化目标等工做,成了APS系统开发过程当中的关键工做。这些工做也成了APS项目成败的关键因素。工具

定义评价APS输出结果质量的KPI

  此外,由于APS系统输出的原始数据,可做为生产计划、MRP、产能及资源能力评估等不一样领域工做的基础数据,因此为APS系统的输出定义好一个合理、客观、可量化的KPI很是重要。这此KPI应该在系统设计之初就肯定(这是一个至关大的难点)。用于在对每个APS的输出进行评估,以确保APS系统的输出是否符合设计预期。由于APS技术中的优化功能,目前主要是经过一些约束求解器的运算得到。而这些求解器中使用的优化算法主要是启发式算法,这类算法能够在绝大多数状况下,在必定程度上对NP-Hard问题找出一个相对优算,但它们不是一种精确算法,即它找到的解,并不确保,也没法证实是最优解(对于NP-Hard问题,目前的技术不可能得到或证实最优解)。所以,对于一个APS项目中,关于APS系统的输出,应该定义一套合理的评估机制与KPI,以肯定APS的输出是否达到可行性和相对优化要求。而要定义这些KPI并不是易事,由于现实生产环境中,要实现的每每是多目标优化,对于多目标优化,大部分求解器都能找出帕累托最优,可是要肯定不一样的目标之间的制衡、取舍则须要APS项目人员与用户,在充分理解企业业务现状的前提下,共同努力才能制定;才从多个优化目标的方案集中,找到知足业务要求,并相对优化的计划方案;并肯定对这些方案进行评估的KPI。优化

  由于APS技术对于企业提供的流程、数据信息敏感度极高,本小节将进一步将APS所需数据做细分讨论。包括数据的准确性、全面性,业务规则的准确性,和优化目标的合理性。google

获取准确、全面的“数据”

  与其它任何企业信息系统同样,数据是APS系统的主要处理对象与运算基础。这里的数据相对ERP系统而言,是狭义上的“数据”概念,是指企业信息管理系统中的交易数据,例如订单、工单、机台信息、产能等。而那些用于控制管理流程和约束规则相关的数据,则在下一小段讨论。这些交易数据将会做为生成工单的重要信息(工单是APS系统在编排生产计划的主要规划对象);工单须要精确、全面反映生产的各类要求,包括工艺属性、订单要求等。这些信息都能全面就位,才能经过APS对工单的资源、时序和依赖关系进行优化,从而产生可行且优化的生产计划所需的原始数据 。设计

  APS系统的目的,是对生产计划(包括车间、工厂、公司等级别的生产计划)、乃至整个供应链的运营、生产活动进行高质量、高可用性的预判和规划。须要实现该类预判和通盘规划,要求被规划的对象(工单)保证必定程度上的肯定性、准确性和全面性,不然有可能差之毫厘缪之千里。htm

提炼准确、切实的业务约束

  每一个行业,甚至每一个企业都有着千百种不一样的业务约束规则。不一样的行业生产工序有着不一样的工艺要求,相同的行业不一样的企业也有着各定制化的业务和工艺约束。针对一个行业或一个企业,能够提炼出的来通用业务规则,一般只占一个APS项目的业务规则中极少部。所以,不一样APS项目之间,面对的业务规则千差万别。几乎不存在两个业务约束规则彻底相同的APS项目。一些APS产品,在其设计时也不可能针对具体的业务逻辑,设计相应的规则约束。而是提供一些可二次开发的功能、接口针对具体的APS项目做定制开发。例如提供业务实体定制、约束条件定制,甚至提供可表达约束规则的脚本语言,做为复杂业务规则的体现和输出方式。

  APS项目过程当中,经过对企业业务场景的深刻需求调研,分析并识别其中与APS项目相关的业务流程、业务实体与业务约。并从中提炼出APS系统主要的规划对象,概括影响规划行为的业务制约条件;从而生成规划模型中的约束条件,做为APS引擎的输入。这些约束将会做为规约一个可行生产计划,或资源分配方案的主要参考体系。

概括合理的优化目标

  每一个考虑须要实施APS项目,以改善供应链质量的企业,其供应链必然面临着一些亟需改善的痛点。如交期达成率低,运营效率太低,生产成本太高。甚至但愿在整个供应链中实现完整的精益生产体系。而这些问题,必然是通过必定程度的发展,并经过其它途径的改善,发现仍没法取得理想成效。这些追求更深刻更普遍效益的问题,并非普通企业信息化项目能够解决的。

  与上述痛点对应的问题清单中,某一个或数个问题,造成了一个APS项目的优化目标体系。但在实际的企业生产环境中,人们每每对这些目标的理解并未深入和全面。在APS项目(例如生产计划优化相关的项目)的初期调研时,用户每每把APS的一些功能神化,对将来的系统提出一些不太符合常理的要求与指望。这当然有部分缘由是APS厂商,在售前环节中,为了提升本身产品、方案的宣传效果,在未对用户的需求进行深刻分析时,对客户提供的不合理需求做出过度许诺有关。一些不切实际的诺言,有可能误导用户,令用户误觉得APS技术能够解决他们全部问题的灵丹妙药。而忽视了APS是用于提升计划的可行性、合理性和预判性的,而不是解决生产环节中全部问题。

  例如,用户遇到的问题不少是计划执行层面的问题,而非计划制定时能够左右。APS只能在制定计划时,把这些执行层面的问题做为制定计划的考虑因素归入建模体系,令计划与实际执行活动关联更紧密,下降计划与执行脱节的状况。而具体执行的状况及其控制,严格意义上并不属于APS系统处理范畴。再如,在APS项目中,用户仅收集并提供一些平常生产活动中较表象的问题,而没有分析它们的内在联系,更没有做出概括总结;随即将这些问题视做APS的优化需求。如:要求订单准时交付率提高到指定的百分比,且成本降低到指定的数值。订单的准时交货率与成本,在某些状况下是一对竞争因素。在必定程度上,经过找到更佳优的计划方案,这二者的竞争程度能够下降,这也是APS的其中一个优化方向。但正确的要求方式,应该是:成本限制在指定范围内,准时交货率最大化。或准时交货率不低于指定值的基础上,成本最小化。也就是,APS能够指定一个因素做为制约条件的前提下,将另外一个竞争性的因素做为优化目标,经过运筹优化算法的运算,取得最佳值,从而造成最佳方案。若是要把两个竞争条件都规定为一个固定值,当这两个条件的指定值都在客观许可范围内,APS系统是可能找到同时知足这两个条件的方案的;但若两个竞争因素的固定值所对应的方案客观上是不存在的,那么APS系统也无能为力。

  此外,现实环境中,咱们面临的问题并不如教科书上的案例那么简单。咱们遇到的问题绝大部分规划问题,都是多目标规划问题。正如上述提到的同时对按时交付率与成本都有要求,二者都是优化的目标,那么问题就会复杂得多。其中涉及将若是衡量多个目标的权重,或将多个目标归一为单个目标。具体的业务状况有不一样的处理方法,后续将会有文章讨论企业业务环境下的多目标规划问题。

准确掌握计划的松紧度

  生产计划,或其它规划行为,都是基于指定约束条件下,对将来事物的一种预判。但从得到这种预判结果,到实际按计划执行,必然存在时间差。在这个差别的时间段内,有可能实际的状况已发生变化,从而让原来已生成的计划与实际状况有所脱节,从而影响计划的可行性 。另外一种状况是,计划所产生的约束条件与实际的状况并不是彻底一致。这种不一致会致使生成的计划发布到实际环境执行时,与实际环境的制约条件存在冲突,从而令计划没法按预约的条件执行。

  在上一篇文章中,有些老师就企业生产计划的这个问题提出了一个高尔夫球棒理论,或抓鸟理论。将一只小鸟抓在手里,力度要适中,太松了小鸟会飞走,抓得太紧会把小鸟憋死。计划的制定存在一样的问题。一个计划若是在资源与时间上精确度太高,而不留任何余地,则有可能现实执行环境出现些许微少的变化,都会致使计划不可行。而制定得过于宽松,则失去了计划的意义,在APS生成的优化计划中,更失去了APS的价值。

  这种计划遇到变化的状况,无论是人工计划,仍是经过APS生成的自动计划,都有可能碰见。一般咱们的处理方法有如下3种:

  1. 以滚动计划的方式对计划进行逐步细化。即对于与当前时间较接近的时段,实行详细的计划方案。由于计划执行的时点距当前时间越短,发生条件变动的可能性越低,且时间越接近,得到的环境制约要素越准确,越能确保工做可按计划执行。而对于计划执行时点距当前时间较远的部分,则仅提供粒度较粗,存在较大冗余的高层次计划;以应对这段较长时段内产生的不可见的状况,计划对环境变动的能力更高。
  2. 为计划中高可变性的工做项,设定合理的冗余量。对于一些约束条件变动可能性较高的计划,为了让计划不至于稍有少量环境条件变动,即变得没法执行,能够在制定计划时,为这些工做项设定一个冗余量(或称缓冲)。在执行时遇到的环境条件变化,这些工做项也具备必定的应对空间,从而下降计划变为不可执行的可能性。
  3. 采用实时计划对环境条件变化做出快速反应,并保持非易失性(连贯性)。有些APS产品或规划引擎,可提供不间断的规划功能。如OptaPlanner规划引擎就提供了Real Time Planning特性。这种特性很是适合于一些对规划动做要求做出实时、不间断应变的场景。例如VRP,车间做业指令等规划场景。实时规划系统在完成一轮规划后,系统并未结束运行,而仅结束了规划运算行为,进程仍处于就绪状态,一旦因计划的对象或其它要素发生变化,即会触发新一轮规划运算。在实践中发现,实时规划运算不只能让系统具,对变化具有实时反应能力,且对于先后两次的规划行为,能够好地保持规则的连贯性(后续将会相关文章详解规划的易失性问题)。即非实时计划先后两次规划连贯性,在实时规划中更容易实现。由于对于非实时规划,先后两轮的规划运算面对是两个不一样的数据环境,第一轮规划的上下文没法彻底传递到第二次规划运算中。而实时规划由于其系统的规划进程并无结束,仅仅是结束了规划运算,处于“暂停”状态。所以,实时规划当接收到重启指令后,它是彻底沿用上一轮规划所得的上下文环境,从而更能确保规划的连贯性。其实须要保持计划的连贯性并不是易事,须要在建模时做出必定的考量,并以相关的约束或其它限制方式,对引擎的规划行为做出必定程序的限制。

APS的输出反馈于输入,改善约束与目标

  不管何种系统,从设计到上线过程,伴随着需求的不断变动,这并非说项目范围控制得很差,而是软件项目自己存在极高的不肯定性。有多是未到具体设计实践阶段,需求自己没法获得验证而体现出来的不肯定性;从而须要在设计开发过程当中做出必定程度的修正。也有可能项目开发周期足够长久,原来的需求在设计实现阶段,已经产生必定的变化。所以,软件项目的开发实施过程,或多或少都伴随着变化。

  而APS项目这种变化更甚。APS项目在成功上线后,必然存在一段比其它信息系统项目更长的磨合期。APS系统在这个磨合期内,不只是对需求的进一步细化、优化和改进;更是对规划约束的进一步明确和修正,更多明显的是对优化目标的进一步调整。由于APS项目的目标,自己是为生产计划等规划工做,寻找一些人类难以获取的更佳方案;而得到这些方案后,人们会基于这些以往没法得到的方案做更深刻的思考,会构思出一些以往不会产生的想法或优化目标。所以,APS项目在系统上线后的使用过程当中,都伴随着不断的优化,甚至一直延续在整个系统生命周期。

  在用户对APS系统的优化行为,输出结果有必定的认识,并收集、更新并总结了必定的规律后,就会在根据掌握的信息,对其优化目标进行进一步的优化,从而令系统输出与现实业务场景更匹配的方案。

随着近年APS相关资料的普及,不少用户在项目开始前,已经懂得提出要求系统输出多种不一样的优化目标的方案,从中比较不一样的优化策略,通过分析后选用适合的方案。常常会有用户以导航软件为例提出需求:系统应该能够提供不一样状况下的规划方案,就如我须要导航去某地,导航软件能够根据路程、费用和路况,提供不一样的路线方案。咱们能够视情选取合适的方案。事实上这是业界的一种进步,反映了用户已经懂得APS的基本原理和做用。它并非按照既定要求找出一个固定计划方案,而是从限定条件中找出目前找到的最佳方案。

APS产生的计划真的可行吗?可行条件如何变化?

  计划是否可行,须要进行多方案、多维度的考量。主要包:

  1. 计划的时效性丧失。计划可被执行的一些必要条件,在执行时已消失。计划变成再也不可行,上文已讨论过。
  2. 对规划模型中的考数据把握不许确、考虑不周全;令引擎在生成计划时,寻找到一些人们未能预想的状况。计划变成不可行, 上文已讨论过。
  3. 可行计划的约束条件转变。一些本认为是可妥协、可以让步的限制条件被设计成软约束,但所得的方案中,该类条件的违反程度远超预期。

  下面对第3种状况做详细论述。

  在数学规划中,规划模型一般由限定条件(Subject To)和目标函数两部分。在APS技术中的规划模型中,一般也有对于业务的硬性约束条件,即计划必须在知足这些硬性约束条件的前提下,计划才能执行。这部分的约束对应于数学规划模型中的限定条件。而APS的另外一个做用,则是寻找一个更优的计划方案,在APS规划模型中被称为软约束。它对应于数学规划模型中的目标函数,即规划过程当中用于求解限定条件下的极值函数。所以,对于数学规划的目标函数,APS规划模型中相应地以软约束的形式体现。也便是软约束是为了寻找最佳计划方案设定在的。

  在APS的规划述语中,违反硬性约束的方案被称为不可行方案,知足全部硬性约束的方案被称为可行方案。在APS生成的计划方案中,一个可行计划每每是一个全部硬性约束都没有违反的计划,在实际生产活动中,理论上是具备可执行性的。而一些违反了硬性约束的方案则不具备可执行性,在此没必要详议不可行计划。但在实际的生产经营活动中,可行性计划的定义会更狭窄。一些虽然全部硬性约束都符合,但对于软性约束违反达到必定程度的计划方案,也有可能被划定为不可行。也就是说,软约束在实际的计划方案中,有可能出现“由量变达到质变”的过程;由于软约束的量过大,而质变成不可行计划。

  例如:一个简单的生产计划仅有一个优化目标(事实上这是理想状态,多目标规划才是世界的实况) - 下降成本。也就是APS规划出来的计划,须要尽量下降成本。那么在设计规划模型时,成本因素就会变成惟一一个软约束,而其它交期、工艺参数等因素则做为硬约束。理论上不管按计划生产的成本多高,只要计划安排符合了交期和工艺参数的要求,它就是一个可行的计划。但实现的生产活动中,成本是有上限的。例如,若是知足了交期和工艺参数两个硬性条件,按该生产计划生产出来的产品,其成本却侵蚀了最低利润。那么在单纯的商业角度来看,该计划已经不可行了。此时,这个方案则有可能成为一个“符合了全部硬约束的不可行方案”。对于实际的生产经营活动,这种计划方案是没法执行,不具有价值的。固然,读者可能会想到,那到成本应该也被定义为一个硬约束,只不过这个硬约束不是定性的,而是定量的。也就是达到必定的量才会被视做违反。这是正确的,在后续的文章中,我会对软硬两种约束的关系展开讨论,这是APS领域的另外一大课题。

  以上是本人在APS项目实践及一些前人的基础上稍做总结的要点,但愿能够将各类零散的问题放在一块儿,让你们能够更容易了解探讨一下APS技术,APS项目和APS系统中常见的问题,难点,重点及常见的处理办法。但愿你们共同探讨。

End

 

本系列文章在公众号不定时连载,请关注公众号(让APS成为可能)及时接收,二维码:


如需了解更多关于Optaplanner的应用,请发电邮致:kentbill@gmail.com
或到讨论组发表你的意见:https://groups.google.com/forum/#!forum/optaplanner-cn
如有须要可添加本人微信(13631823503)或QQ(12977379)实时沟通,但因本人平常工做繁忙,经过微信,QQ等工具可能没法深刻沟通,较复杂的问题,建议以邮件或讨论组方式提出。(讨论组属于google邮件列表,国内网络可能较难访问,需自行解决)

相关文章
相关标签/搜索