魏 燊,劉雯雯
(鄭州大學力學與安全工程學院,河南 鄭州 450001)
某生產企業原材料分為A、B、C 三類,該企業每年48 周安排生產,需提前24 周制定原材料訂購和轉運計劃。由于原材料的特殊性,供應商供貨量存在不穩定的狀況,實際供貨量可能多于或少于訂貨量。對于企業來說,期望在滿足正常生產需求條件下,以最經濟和最低損耗作為優化目標,得到一個最優的采購優化與運輸方案。
現已知企業每周的產能為2.82 萬m3,每立方米商品消耗A 類原材料0.6 m3,或B 類0.66 m3,或C 類0.72 m3。且企業需要保持至少兩周生產需求的原材料供應量,對供應商的供貨也要全部收購。每家轉運商運輸能力為6 000 m3/周,一家供應商每周供應原材料盡量由一家供應商提供。
需要解決的問題:根據附件,確定能夠滿足企業正常生產的最少原材料供應商數量。針對選擇的最少供應商,制定企業未來24 周最經濟的原材料訂購方案,并依據此制定損耗最少的轉運方案,且對該方案進行評價。
首先,需要以過去5 年的供貨量數據作為依據,預測未來24 周的供貨量。然后以滿足供應商數量最小為需求設計算法求解。我們在已經選擇出的供應商中尋找最經濟訂購方案。考慮到新的訂購方案可以滿足企業未來24 周全部的生產需求。而參照評價,過去五年的訂購方案與供貨情況并不能滿足正產生產情況,所以先求解出滿足生產條件且供貨商數量一定的條件下的以訂購成本為目標函數的0-1 規劃模型,再通過定義的企業經濟度,計算出新的訂購方案的經濟度[1]。轉運損耗度最小的優化模型需要以新的訂購方案為前提建立0-1 規劃模型,考慮到遺傳算法的自適應和尋找全局最優解的能力較強,故采用遺傳算法求解。
建立概率預測函數。由于題目附件中只給出了近五年的供貨量和銷售量數據,并不能準確反映未來24 周的變化趨勢,所以需要對供應商未來24 周內的供應量進行預測。
建立的概率預測函數分為兩個部分,一部分是事件發生的概率,一部分是實際預測的函數,自變量x為24 周中的第x 周:
由供貨商過去五年內未供貨的概率確定預測函數中的概率部分:
式中:a、b 滿足a+b=1;a=五年內出現供貨量不為0的周數/五年內總數據的個數;b=五年內出現供貨量為0 的周數/五年內總數據的個數。
3.2.1 定義生產企業經濟度
對于生產型企業來說,其成本的產生不僅僅是在原材料的采購方面,其生產流程的正常進行也是另一個重要的因素。首先我們定義生產穩定性。由題目附件數據預處理的分析我們知道供應商所提供的產量在大部分情況下是不滿足企業所下的訂單量的,所以可以由供應商對企業的供貨穩定性來衡量生產穩定性,如表1 所示。
表1 不同原材料供貨完成情況
求均值得到平均供貨完成率為φ=0.64,以此作為企業的生產穩定性。我們定義企業的經濟度為:
式中:φ 為企業的生產穩定性;Q2為企業的訂購成本。
3.2.2 以采購成本最低為目標函數的0-1 規劃模型
引入0-1 變量
式中:Aij為第j 周第i 家A 類供應商的供貨量;Bij為第j 周第i 家B 類供應商的供貨量;Cij為第j 周第i家C 類供應商的供貨量。
約束條件有兩個,一個是保障該企業保持不少于一周的庫存儲備量,另一個是在第j 周買到的貨品數量不超過本周供應商的最大供貨量。因為只考慮了訂購策略,所以合理假設轉運損耗率為定值0.98。
3.2.3 基于分支定界法0-1 規劃模型
分支定界法可用于求解如本文這樣的純整數規劃問題[2],若松弛條件的可行域有界,則相應的整數規劃的可行域會是有限個點組成的集合,分支定界法使得每次規劃從可行域中去除一部分點集,這樣經過有限次的分支,一定會有整數點落在可行域的頂點處。
以轉運損耗率最低為目標函數,每家轉運商的運輸能力不超過6 000 m3/周為約束條件,是否選擇該家轉運商為0-1 變量,建立0-1 規劃模型:
式中:xit為第t 周第i 個供應商的供貨量;yint為第t 周第n 個轉運商對供應商i 是否轉運,αnt為第t 周第n個轉運商的損耗率。
以預測數據為基礎,設計算法在重要性排名為前五十名的供應商中選擇。我們假設在第一周企業已有一周的庫存量,要求滿足企業每周的庫存儲備量,然后進入下一周安排訂購,原理同第一周。在此基礎上設計算法流程圖[3]如圖1 所示。
通過Excel 求解得到最小供應商數量為38 家,具體結果如圖2 所示。
圖2 中數字代表供應商在題目所給附錄中的序號,深色方格就是得到的滿足企業生產的最少供應商。
因為本文設計到的0-1 變量個數過多,所以借助MATLAB 中的BranchBound()函數進行求解。
在新的訂購方案下,企業的采購成本(W2)為897 787.96 萬元。我們以過去5 年企業的平均采購成本(W1)作為對照,計算得到W1=767 854.3 萬元。已知新的訂購方案可以完全滿足企業未來24 周的生產和庫存需求,所以生產保障穩定性φ2=1,由題目所給的附件一的數據計算得到過去五年的生產保障穩定性為φ1=0.64。
遺傳算法(GA)是一種具有很強的全局尋優能力,適合求解復雜的多極值優化問題和組合問題的智能算法,本文采用遺傳算法進行求解,通過MATLAB進行編碼,生成優化方案[4]。
4.3.1 染色體編碼
種群大小為20,染色體的個數為402,對應402個供應商,迭代次數為1 000 代。
4.3.2 適應度函數的設計
如果運量不足的話,適應度函數為零如果運量滿足的話,將損耗率的預測值升序排列,將每周供貨的預測量除以6 000,向下取整,用損耗率的預測值乘以取整值乘以6 000,再加上下一個損耗率的預測值乘以供貨的預測值減去6 000 乘以取整值的結果,最后再將這個值取反,作為適應度采用MATLAB 遺傳算法工具箱求解,得到最終結果。
新訂購方案在滿足了全部24 周的供應需求,其生產穩定性為1,經濟度為897 787.96。過去5 年內在企業的訂購模式下訂購成本為767 854.3 萬元,低于新的訂購方案,但其生產穩定性僅為0.64,所以計算出過去5 年的經濟穩定度為1 199 772.34。可知經濟度降低了25.17%,具有較好的優化效果。