天天看點

APS實作的要點與難點

在前一篇關于文章中讨論了不同層級、粒度的生産計劃,在各行業中受重視程度的差異問題。

《關于APS在企業生産計劃上的應用》

承蒙大家熱烈讨論。本文則在收集各方高見的基礎上,對于供應鍊上各個環節的營運、生産計劃再作稍微深入一點的探讨。本文将列舉APS技術中常見的重點難點作展開讨論,基保重點的計劃場景是制造業的生産計劃。本文将基于APS技術、APS項目及APS系統(産品)相關的資訊進行探讨。

為何需要APS

APS(進階計劃與排程)技術,可以在保證工作安排的可行性基礎上,對安排作進一步優化,進而獲得一個比人類手動規劃更佳的計劃方案。該技術的終極目标是,從天文數字多的可能計劃方案中,嘗試找出最佳的計劃方案。但基于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等。開源免費的求解器較具代表性的則有OptaPlanner和Google 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所需資料作細分讨論。包括資料的準确性、全面性,業務規則的準确性,和優化目标的合理性。

要求擷取準确、全面的“資料”

與其它任何企業資訊系統一樣,資料是APS系統的主要處理對象與運算基礎。這裡的資料相對ERP系統而言,是狹義上的“資料”概念,是指企業資訊管理系統中的交易資料,例如訂單、工單、機台資訊、産能等。而那些用于控制管理流程和限制規則相關的資料,則在下一小段讨論。這些交易資料将會作為生成工單的重要資訊(工單是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系統也無能為力。

此外,現實環境中,我們面臨的問題并不如教科書上的案例那麼簡單。我們遇到的問題絕大部分規劃問題,都是多目标規劃問題。正如上述提到的同時對按時傳遞率與成本都有要求,兩者都是優化的目标,那麼問題就會複雜得多。其中涉及将如果衡量多個目标的權重,或将多個目标歸一為單個目标。具體的業務情況有不同的處理方法,後續将會有文章讨論企業業務環境下的多目标規劃問題。

準确掌握計劃的松緊度

生産計劃,或其它規劃行為,都是基于指定限制條件下,對未來事物的一種預判。但從獲得這種預判結果,到實際按計劃執行,必然存在時間差。在這個差異的時間段内,有可能實際的情況已發生變化,進而讓原來已生成的計劃與實際情況有所脫節,進而影響計劃的可行性 。另一種情況是,計劃所産生的限制條件與實際的情況并非完全一緻。這種不一緻會導緻生成的計劃釋出到實際環境執行時,與實際環境的制約條件存在沖突,進而令計劃無法按預定的條件執行。

在上一篇文章中,有些老師就企業生産計劃的這個問題提出了一個高爾夫球棒理論,或抓鳥理論。将一隻小鳥抓在手裡,力度要适中,太松了小鳥會飛走,抓得太緊會把小鳥憋死。計劃的制定存在同樣的問題。一個計劃如果在資源與時間上精确度過高,而不留任何餘地,則有可能現實執行環境出現些許微少的變化,都會導緻計劃不可行。而制定得過于寬松,則失去了計劃的意義,在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

繼續閱讀