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郵件列表,國內網絡可能較難訪問,需自行解決)

相關文章
相關標籤/搜索