生產計劃排產APS中的四類算法

生產計劃排程 既有相對簡單的算法,例如,最短交貨期算法,最短工序算法等,也有複雜的算法,例如,神經網絡、模擬退火法、遺傳算法、禁忌搜索法等。

【1】四種簡單算法的比較

這些年的研究資料表明生產計劃排程並不存在一個全局最優的排程規則,也不是算法越複雜結果就越好,這一點通過下面一個例子對4種簡單算法進行計算就可以得到驗證,這4種簡單算法中計算複雜性稍有不同,並不是算法越複雜排程結果就越好。

要做比較計算的4種算法(計算的複雜性依次遞增)是:

(1)最短工期

(2)最早交貨期

(3)按照工期和交貨期之間的距離

(4)CR值

下面借用一個例子,見下表。比較這4種算法的排程結果,我們按照作業逾期天數為評價標準。


生產計劃排產APS中的四類算法


1.1 按照最短工期的排程


生產計劃排產APS中的四類算法


1.2 按照交貨期先後排程

生產計劃排產APS中的四類算法

1.3 按照工期和交貨期之間的距離排程


生產計劃排產APS中的四類算法


1.4 按照CR值排程

CR是英文critical ratio的縮寫,可以翻譯為重要比率。它的計算方法:交期減去目前日期之差額,再除以工期,數值越小表示緊急程度越高,排程優先級高。


生產計劃排產APS中的四類算法


上面4種算法中,最短工期法是最簡單的,它不考慮各個作業的交貨期先後,先排工期短的作業,再排工期長的作業,但對於我們隨便給定的例子,它的總逾期天數是最少的,當然不能說所有例子它的總逾期天數都是最少的,這裡面有偶然性。

這個例子也說明了,不意味者計算最簡單的算法結果是最差的。企業在生產計劃排程時,可以根據其計算能力選擇合適的算法。

【2】正排和倒排的選擇

生產計劃排程時選擇了排程的算法之後,是正排還是倒排也是一個重要問題。正排指的是按照預定的算法儘可能緊前安排,倒排指的是儘可能緊後安排。

用上一段的例子,如果是用最短工序算法排程的話。正排的結果如下圖:


生產計劃排產APS中的四類算法


如果是倒排,如果還沒有到最後期限,會是下面的排程結果:


生產計劃排產APS中的四類算法


正排的優點是設備和人會得到充分利用,設備閒置或人員休息,也要等生產任務都完成後,可能會因為提前完成生產任務,沒有到交貨期不能發貨而形成庫存。

倒排的優點和缺點正好相反,倒排是在最後期限前完成任務,庫存最小化,但前期人員和設備可能會有閒置。

一般說來,當企業需要考慮上APS系統解決企業生產計劃排程問題時,面臨的情況都是多品種,小批量,設備能力不足,需要更合理的調度安排。正排增加庫存,倒排浪費產能,如何取捨?

筆者認為:在增加庫存和浪費產能之間取捨,浪費產能造成的損失大大超過增加庫存,原因有二:

一,設備是有故障的,而故障又是偶發的,無從判斷何時設備會出現故障。如果生產安排是時,進行倒排,按照庫存最小化的時間點安排,如果在生產過程中出現設備故障,就沒有多餘的緩衝時間用於檢修設備,勢必造成延遲了交貨期。

二,設備產能浪費屬於徹底浪費,如果當月設備能力浪費了,以後也無法再追回;而增加庫存造成的浪費則屬於一種臨時的浪費,如果當月積壓了庫存,而下個月客戶訂單增加,正好將這些庫存利用,避免了加班。筆者觀點,對於一般性行業,正排是正確的選擇。

【3】總結

算法並不是複雜性越高,得到的計算結果越好。企業在生產計劃排程時,可以結合實際情況,選擇合適的排程算法。對於正排還是倒排的問題,對於一般性行業,正排是正確的選擇。

分析ERP、APS與MES系統


生產計劃排產APS中的四類算法


ERP是……,APS是……,MES是…….,這些概念早已為大家所熟知,誰也改變不了,所以不必多說。本文要做的是對它們所共有的‘生產計劃’部分的對比和分析。

首先,我們談論的是一個關於計算機的話題,那麼就有一個最基本的問題:計算機能幹什麼?對這個問題似乎答案太多了,計算機本身就是一個大千世界,隨便就能找出很多種答案。但是告訴你最基本的,計算機實際上只幹兩件事:讀和寫。它的所有花裡鬍梢的功能,最終不過是在用最笨的方式幹這兩件最簡單的事情,速度快而已。

不信嗎?仔細想一想,不必去深究它的基本原理,你可能會感覺到,無論上網、看電影聽音樂、玩遊戲、編寫文檔、操作數據庫,這些的確都不過是在快速地讀和寫一些數據。但是,計算機還有計算功能,這不象讀寫那麼簡單吧。比如你要算25×96,計算機馬上給出結果:2400。難道它能事先知道你要算這個數已經把結論保存在那兒了嗎?難道這也是讀和寫的結果嗎?沒錯!這個過程計算機的確只是進行了一些讀寫操作。不信,你找一支筆來,在紙上手算這個乘法題,然後逐步記錄你的整個計算過程。

那麼計算機呢,你可能會想,它應該有一些更高明的手段。告訴你,計算機也是這麼算的!它同樣沒有辦法直接計算出25×96,而是把它分解成多個個位數字相乘和相加的運算,原理與你在紙上計算過程是一樣的。你在計算的時候心裡早就背會了一個小九九,計算機也早就把這個九九乘法表存在那裡了,當要算5×6的時候,它就去把30調出來寫到一個位置,算2×6的時候把12調出來寫進去,然後呢,1+1=2,2+3=5這樣的個位加法的所有組合也都早就存好了,直接去取結果就可以。看,只要有一個乘法表加上一個加法表,計算機就可以通過簡單的讀寫操作計算出你的任何乘法計算。

這麼看來,計算機並不比我們更高明,它用一種與我們手算相同的計算方法。而且,計算機如果有知覺,他根本不知道自己在幹什麼,有什麼實際意義,它只知道按照一個固定的規則進行了一堆的讀寫操作,不會任何變通,只不過速度比我們快幾百萬倍,也正因為此,我們錯誤地感覺到它在計算,似乎比我們更聰明。

回到我們的話題,依此類推,ERP是什麼?MES是什麼?APS又是什麼?無論他們有什麼功能,對企業有什麼意義,不過都是計算機在讀寫一些數據而已。你用ERP把今天的訂單錄到計算機裡再查詢昨天的銷售數據統計出一個報表保存到服務器上,另一臺電腦讀了這個報表再讀BOM算出需要採購哪些物料和生產哪些物料,另一臺電腦打印和顯示出這些數據……。實際上這一切的本質不過是數據在硬盤和內存中快速的讀和寫,我們就不厭其煩地為類似這樣的計算機讀寫過程起了無數個名字,ERP、MRP、APS、SCM、CRM、PDM、PRM、MES等等,還產生了無數的管理理論,併為此爭論不已。

企業中那麼多複雜的工作流程,那麼多先進理念,其最底層的工作本質真的只是計算機簡單存了一個數字再簡單把它取出來嗎?計算機真的只是比人快但是沒有人聰明嗎?先不要忙著下結論。

說到聰明,我們再回到那個乘法問題,一個一般智力的人只會用紙上手算的方法,但如果讓一個聰明的算術高手來計算這個題目,他很可能採取一種簡化的方法,96是100-4,而4×25剛好=100,於是25×96=25×(100-4)=2500-100=2400。不用繁瑣的個位相乘,很快就能得出結果。你看,計算機就沒有這麼聰明,它必須按照自己固定的步驟走完全部流程,不會隨機應變,人比計算機聰明多了。

但是且慢,計算機雖然只會讀寫,但它有一個很大的優勢,它很善於學習,記憶力很好。人只要把一種計算的方法轉換成它能接受的讀寫方式教給它,它就變得和人一樣聰明瞭,而且永遠不會忘記,還能很快複製給其他同伴。

一個一般智力的人把乘法手算方式教給計算機,計算機就擁有了乘法計算的功能。而一個更聰明的人利用複雜的條件判斷語句可以把簡化計算法教會計算機,計算機就擁有了人的這種聰明。這時候,一個智力一般的人不僅在速度上遠遠不如計算機,而且在方法上也顯得沒有計算機聰明瞭。計算機的靈魂背後是人的思維。

這就引出了算法的概念。任何人的手工乘法運算就是一種算法,聰明人的簡化運算也是一種算法。計算機聰明與否,全看它所接受的算法是不是聰明的。如果計算機接受的是需要一定專業知識的專家級別的算法,那麼計算機就會擁有一個專家級別的聰明,一般聰明人在智力上也根本無法與之相提並論。

現在,我們評價一臺計算機是不是聰明就有了一個新的標準:看人教給它的算法是不是很高明。如果這種算法就是我們手工每天都在用的類似乘法運算的那種方法,雖然把這種方法教給計算機也需要很專業的知識,但是,計算機還是並不比我們更聰明,只是比我們快而已;而如果這種算法不是簡單到誰都能想到的方法,例如簡化乘法運算,那麼這臺計算機就是一臺比較聰明的計算機了。

算法,給了我們一個新的視角來觀察ERP。很多時候企業要求的是一個聰明人教會的擁有高明算法的計算機,而不是一個智力一般的人用日常方法教會的計算機。但現實情況,很多ERP公司都只滿足於低水平重複性地把日常手工的方法教會計算機,再給這種本質上是手工的方法起一個流行的名稱,聲稱它多麼高明。仔細考察,只不過是原來的手工方法和日常工作流程的電子化而已。

而企業管理中需要很多真正高明的算法,所要求的聰明程度遠不象前面的簡化乘法那麼簡單,需要很高深的數學知識。這時候絕大多數ERP公司由於自身缺乏對基礎數學的深入研究和積累而無能為力,這並非單指國內ERP公司,國外大型ERP公司也並不例外。

企業管理中在複雜的約束條件下要求尋找一個工藝流程的關鍵路徑、尋找一個計劃的最早和最遲開始時間、或者尋找目前生產計劃中哪個資源最短缺的時候,運籌學、數論、圖論、線性代數、模糊數學等等數學科學的最前沿理論已經取代了我們一般的直觀分析。計算機解決這類問題已經不能再用簡單通用的手工方法或者僅僅使用一般的小聰明全憑速度優勢代替手工勞動,而是必須集成最前沿數學理論,擁有一個數學專家級別的專業算法。在整個企業管理中,無疑生產排程部分由於它的錯綜複雜的條件和對精確結果的需求,是最需要這種專家級別的算法的地方。

有了這些基礎概念做為武器,我們可以回到關於ERP、APS、MES的正題上來趟一趟這潭混水了。

一般說MES就是生產執行管理,但它在定義自己的時候喜歡把多多益善的東西都拉進來,於是侵犯了很多軟件的傳統領地,難免引發一場論戰。MES最樂道的是連接企業管理系統和生產控制系統,承上啟下彌補了空白。

但是,它聲稱的每個部分的功能都早有其他專業系統承擔。比如資源分配和工序排程,是APS的領地;文件管理和控制一直屬於OA的範疇;勞動力管理早有詳細到每分鐘工作記錄的專業人力資源HR系統承擔;維修管理則有企業資產管理EAM和專業設備-固定資產管理軟件;製造流程控制和管理有SFC(shop floor control);質量管理有集成了更多功能的ERP-QA/QC模塊;至於實時數據收集,有無數做硬件的PLC、DCS系統供應商提供與硬件設備的專業數據連接和分析系統,功能只會更強。這些且不說,就連最普通的ERP軟件都聲稱擁有MES的絕大部分功能。看來實在是沒有什麼空白可以留給MES去彌補。實際的市場狀況MES也一直處在多種軟件的擠壓下在夾縫中艱難生存,特別是它與ERP一直處於一種直接對抗狀態。

MES與其他系統的江湖恩怨與本文無關,本文只說MES與APS和ERP互相重合的生產排程這一段內容。對用戶來說MES與ERP、APS概念的互相交錯,軟件商之間激烈爭論,讓人困惑。到底選擇ERP、APS、MES有什麼區別?

一般說軟件之間的比較,不是看它集成的功能多不多,而是首先要看企業最需要的關鍵功能是不是有。如果都有,那就需要注意‘有’跟‘有’的差別很大,一個小小的區別可能就是本質的不同,要點就是要看它們的算法哪個更好。一個好的算法可以更深入地解決問題,運算速度快,很容易擴展到其他功能,修改起來方便等等。別的不說,在對比ERP、APS與MES之間的關係時,算法就起到關鍵作用。

在正常情況下,高級計劃排程APS的算法比MES中的詳細排程以及資源分配的算法要強很多。而MES中的算法比ERP中的MRP的算法也要強很多。

ERP中的MRP算法實在太簡單,就是把平時手工的工作方式電子化,相比而言類似於開發一個乘法運算的難度。因此很多企業不需要MRP在EXCEL上也可以實現相同功能。

而MES的排產功能肯定要強於ERP的生產計劃功能。因為如果在這個關鍵核心功能上不佔一定的優勢,MES就根本不會有自己的市場份額。但是,它在本質上也只是把一些手工的、經驗性的好方法集成進了軟件,類似於簡化乘法運算,雖然有很大的實用價值,但這與APS的以數學模型為基礎的算法相差甚遠。

否則,MES開發商就會把這部分拿出來單做成APS出售了,要知道其中的價格差異很大。(當然也不排除某些MES系統集成了APS系統的可能)。

APS系統擁有以數學模型為基礎的最強算法,可以滿足更高難度、更廣泛的需求。但它不是可以直觀理解的方法,真正的難點不在於把算法變成軟件,而是在於尋找和證明這個算法。因此,各APS公司對其核心算法和數學理論都是保密的,並且申請專利保護。

當然對企業來說,算法也不是唯一的選擇依據。一般說,整套系統中的某個功能不如專業系統的功能強大,但是價格低廉,與它集成在一起的功能很多,用起來方便,這是整套系統的優勢所在。

ERP的生產管理部分對比MES和APS最簡單但也最便宜,一般僅限於簡單的物料需求計劃。如果企業對生產計劃要求比較低,只側重於較粗物料需求,就可以只選用ERP的生產模塊。

MES的排產功能更強一些,但是價格更高。適合於對生產計劃要求不太高但是對生產排產管理比較精細的企業。目前國內自稱提供MES系統的企業有很多,但其內容差別很大,水平良莠不齊,用戶在選擇的時候注意比較的關鍵是算法。從目前出現的趨勢看,ERP軟件公司傾向於集成MES系統,並與APS系統集成。

APS是功能最強也是最昂貴的軟件,適合於多品種、小批量、工藝流程變化很快、對生產計劃有很高要求的生產型企業。目前APS開發商都只專注於生產排程功能,不搞其他相關係統。因此APS需要與其他軟件集成在一起使用。

目前,國際知名ERP全部都已和某個獨立的APS系統集成在一起,常見的如SAP的APO,ORACLE的ASCP。國內用戶如果選擇了國外ERP軟件就可以考慮上它的APS,但是加上大量的定製開發以後,其價格昂貴有可能會超過整個ERP的價錢。

目前國內也有APS系統,主要在特定行業應用,主要是側重複雜的製造排產調度。在複雜計劃優化較弱,但由於價格較低,屬於本土化服務,性能價格比要優於國外系統。

綜上所述,我們要學會超越一個軟件表面上的概念、功能、特點,而以算法作為判斷的一個重要標準。這對MES、APS、MRP這樣的系統來說尤其重要。


分享到:


相關文章: