謝宏志, 韓亞泉
(中廣核核電運營有限公司備件中心, 深圳 518124)
備品備件是為保持和恢復核電廠核安全、機組可用率及相關輔助功能所必需的零、部件及修理、更換所用的成品替換件,備件儲備的充分性以及備件管理的有效性可以減少設備檢修時間、縮短換料大修工期,保障機組安全穩定運行。核電備件的目標用戶是現場維修活動,在不考慮產品設計制造缺陷和后期老化問題的情況下,在設備穩定運行期間,備件需求數量的隨機性較大,對于任意一種備件而言,其對應的現場安裝數量較少,需求數量有限。核電備件入庫后兩年內的平均領用比例約為60%,即儲備的大部分備件在短期內不會被領用,備件周轉率低,但若備件儲備不足,供應不及時,將會降低設備可靠性,增加電站運行風險,甚至出現停機、停堆等問題,對核電廠正常生產活動造成影響,由此產生重大經濟損失。
核電備件有著龐大的品種數量、較少的備件消耗量、較長的備件采購周期、難以預測備件的需求數量等特點。通過設置合理的備件庫存模型,在確保備件供應的前提下,優化庫存結構,降低整體庫存成本[1-2]。庫存控制模型主要分為定量訂貨模型和定期訂貨模型,其中定量訂貨模型主要是基于備件需求量的庫存控制方法,定期訂貨模型主要是基于時間的庫存控制方法[3],當前核電備件主要采用定量訂貨模型。定量訂貨模型的庫存參數主要由再訂貨點和采購批量組成[4-5]。再訂貨點主要用于控制缺貨風險,應至少滿足采購周期內的需求量,理想情況下庫存水平低于該點時備件觸發采購。為防止不確定性因素對備件管理的影響,在基本庫存之外需設定一定量的安全庫存,因此備件實際再訂貨點為采購周期的領用量加上安全庫存數量。采購批量是指某一次采購過程中備件的采購數量,采購批量的大小決定了備件采購訂單發單間隔時間。采購批量主要分為最大庫存模型和固定采購批量模型兩類,最大庫存模型是指每次采購的數量不固定,直接補貨到最大庫存數量,固定采購批量模型是指每次采購的數量是一個固定值。
為解決庫存策略模型的參數設置問題,文獻[6]構建了聯合補貨與配送模型,使用遺傳算法對模型進行求解;部分學者采用概率擬合方法,即假設備件領用需求服從某種分布,通過大量歷史數據來擬合參數[7-10]。然而核電備件的領用數據量較小,且不同類型的核電備件差異性較大,無法通過概率擬合方法有效設置所有核電備件的庫存參數。目前已有部分學者將仿生優化算法應用于庫存優化[11-13]與核電廠維修策略優化領域[14],由于難以對核電備件的訂購、缺貨、儲存等成本進行量化評價,尚無法使用優化算法直接計算核電備件庫存模型參數?;谠搯栴},現設計一種可以量化評價核電備件庫存參數的方法,應用備件庫存金額、有貨率、年發單次數、備件重要性等因素構建適應度值評價模型,使用改進遺傳算法尋優計算備件庫存參數。
遺傳算法是一種全局式的搜索啟發式算法,其模擬自然界的選擇、交叉、變異的遺傳方式,采用適者生存的進化思想來求解優化問題[15-16]。遺傳算法將待求解問題通過染色體編碼方法映射為編碼空間中的染色體,染色體代表群體中的個體,染色體的集合被稱為群體,遺傳算法從某個初始群體開始,使用遺傳算子作用于群體,從而產生下一代的群體,根據適應度函數從這些染色體中選取相對優秀的個體,并對這些個體采用迭代遺傳操作,產生新一代種群,重復這一個過程,直到滿足設定的收斂條件為止。
傳統的遺傳算法可以在全局搜索空間進行快速探索,但對搜索空間的挖掘效果不佳,通常表現為遺傳算法相對較快地接近某個最優值,然后出現慢整理問題,非常緩慢地接近最優值。此外,傳統的遺傳算法在選取下一代種群的過程中,個體的選擇概率與適應度值高度相關,容易出現早熟現象,種群中所有個體的基因收斂到局部最優值,難以跳出局部最優解,遇到復雜多峰優化問題時優化精度不高。
為了解決傳統遺傳算法收斂慢,易陷入局部最優值的問題,設計了一種改進遺傳算法,當個體處于較慢收斂狀態或者已陷入局部最優值時,通過增加隨機因子擴大個體的搜索空間,基于當前種群最優位置重置部分個體的位置。重置概率是動態變化的,在算法迭代的前期,重置概率較小,這樣不會使個體在前期過早的圍繞在當前最優值附近搜索,造成陷入局部收斂;在算法的中后期,重置的概率較大,可以使個體更多的在當前最優值附近搜索,加快收斂的速度。該算法的結構框架圖和算法的偽代碼如圖1所示。

圖1 改進遺傳方法的流程圖和偽代碼圖Fig.1 Framework and pseudo-code of MPSO
圖1偽代碼步驟2.7中,通過計算種群中所有個體的適應度值,比較種群中最優適應度值和中位數適應度值的偏離程度,當滿足(f2-f1)/f2

圖2 重新賦值后的個體位置分布圖Fig.2 The distribution map of individual positions after reassignment
通過選用5個常用的基準函數測試改進遺傳算法(modified genetic algorithms,MGA)的性能,這些基準測試函數的特點和計算公式如下所示。
Ackley函數是一個復雜的多峰函數,該函數的定義域內有多個局部極小域,全局最優值的位置在一個狹小的區域,該函數的公式為
(1)
Griewank函數是一個復雜的多峰函數,該函數中部分變量之間有著一定相互關聯性,較難找到全局最優解位置,其公式為
(2)
Rastrigin函數是一個復雜的多峰函數,該函數的搜索空間大,有多個局部最優位置,其被視為一個較難處理的多峰優化問題,其公式為
(3)
Schwefel函數是一個復雜的單峰函數,該函數梯度方向不會沿著軸線方向變化,具有較大的尋優難度,其公式為
(4)
Sphere函數是一個容易求解的單峰函數,該函數較為容易收斂到全局最優位置,常被用于測試算法的基本性能,其公式為
(5)
式中:e為自然常數;n為基準測試函數的總維度;i、j為指定的某一維度值;xi、xj為在第i、j維度的位置值。
Ackley函數、Griewank函數、Rastrigin函數、Schwefel函數、Sphere函數的全局最優位置為0,為了更好地分析MGA算法收斂速度和搜索精度,同時測試了標準粒子群算法(particle swarm optimization,PSO)[17-18]、自適應粒子群算法(adaptive particle swarm optimization,APSO)[19]、標準遺傳算法(genetic algorithm,GA)在以上基準函數下的優化效果,并進行對比分析。基準函數的維度設置為30,各種優化算法的種群個體數量設置為40,初始位置設置在 (-10, 10),最大迭代次數為2 000,每種算法均會獨立運行10次,保存每次迭代時的適應度值,并計算平均值。多種優化算法在5個基準函數的收斂速度和搜索精度如圖3~圖7所示,其中,x為實際適應度值,lgx為對適應度值進行以10為底數的對數運算。為便于對比不同基準函數的測試效果,當計算的適應度值小于10-30時,將其值設置為10-30。可以得知,MGA算法的優化結果更接近0,即各個基準測試函數的全局最優值,其收斂速度和搜索精度都要高于用于對比的幾種優化算法。除了MGA算法外,其他優化算法都在搜索的中后期出現收斂速度變慢、搜索精度停滯不前的情況,這些都是算法無法跳出局部最優值的表現。

圖3 多種優化算法在Ackley函數下的測試效果Fig.3 Comparison of various algorithms on Ackley

圖4 多種優化算法在Griewank函數下的測試效果Fig.4 Comparison of various algorithms on Griewank

圖6 多種優化算法在Schwefel函數下的測試效果Fig.6 Comparison of various algorithms on Schwefel

圖7 多種優化算法在Sphere函數下的測試效果Fig.7 Comparison of various algorithms on Sphere
通過對每種優化算法獨立運行10次,提取每次運行時的最優適應度值,分析結果如表1所示。在這幾種基準函數測試中,MGA算法的優化效果均優于用于對比的優化算法,且在Griewank測試函數和Sphere測試函數中,該算法的最優適應度值等于測試函數的全局最優值。

表1 多種優化算法在獨立運行10次后的均值和標準差Table 1 Mean and standard deviation of multiple optimization algorithms after 10 independent runs
備件庫存參數優化模型如圖8所示,針對任意備件,當給備件賦值某庫存參數,基于備件庫存預測模型,可以計算出該備件在未來一段時間的庫存分布,包含了庫存金額、有貨率、年均采購次數,基于適應度值評價模型,可以計算出在某庫存參數下的評價分數,由此可以構建庫存參數和評價分數的對應關系。將備件的庫存參數作為種群個體的位置,庫存參數評價分數作為適應度值,使用改進遺傳算法尋找備件的最優庫存參數。

圖8 備件庫存參數優化模型結構圖Fig.8 Structure diagram of spare parts inventory parameter optimization model
備件庫存金額和有貨率都與備件庫存數量有關,當某期的庫存數量為非負數時,其庫存金額等于庫存數量乘以單價,有貨率為1;當某期的庫存數量為負數時,相當于現場維修活動需要某備件,但倉庫中無該備件,即處于等備件狀態,庫存金額賦值為0,有貨率為0。通過對庫存金額和有貨率取均值,可以得到該備件在未來某段時間內的平均庫存金額和平均有貨率。
通過迭代計算,可以得到備件的庫存數量。備件庫存數量的計算公式如式(6)所示,備件的庫存數量是由上一期庫存數量、上一期領用數量和上一期到貨驗收數量所決定。以下進一步介紹領用模塊、預留模塊、正訂模塊、驗收模塊、觸發新采購申請模塊的計算過程。
St+1=St+Yt-Lt
(6)
式(6)中:S為庫存數量;Y為驗收數量;L為領用數量;t為仿真的時間。
2.1.1 領用模塊
計算備件未來的領用即對備件未來的需求進行預測,通過對備件需求進行分類,基于歷史領用數據預測未來領用需求。核電備件的領用需求可以分為計劃性領用需求和突發性領用需求[20],其中計劃性需求是根據維修大綱開展的維修活動,突發性需求是在現場設備發生故障時開展的維修活動。針對計劃性備件需求,根據維修大綱、標準包,生成備件未來領用需求;針對突發性備件需求,通過讀取該備件的歷史突發性備件領用數據,隨機生成相同領用頻次、相同領用均值、相同領用標準差的備件突發性領用需求。再對計劃性備件需求、突發性備件需求進行求和,得到備件未來的總領用需求。
為簡化備件領用數量的計算過程,可以使用移動平均法計算備件在未來的領用數量。例如按照月度進行仿真計算,需要對備件未來m個月的領用數據進行預測,從數據庫中導出該備件在過去m+2個月領用數據,令歷史領用數據分別為N-m-2、N-m-1、N-m、…、N-1,使用式(7)計算備件未來領用數據。實際應用中,可以進一步簡化,假設備件未來的領用需求與歷史領用數量相同,進行仿真運算。
Nt=(N-m-3+t+N-m-1+t)/2
(7)
2.1.2 預留模塊
為提升備件保障能力,核電維修用戶在開展計劃性維修工作前會對部分備件進行預留。備件預留類似于提前對備件未來的需求進行預測,明確備件在未來的需求時間和需求數量,以便及時開展備件采購工作。影響備件預留有效性的因素為:預留提前期、預留比例、預留準確率。由于備件預留會同時影響備件庫存金額和有貨率,為減少預留對備件庫存參數設置有效性的影響,仿真試驗中,未使用預留模塊,即所有備件的預留數量均為0。
2.1.3 正訂模塊
備件正訂是指備件的采購申請已經審批生效,當前處于采購過程的數量。當審批了新的采購申請,備件的正訂數量增加,當采購的備件到貨驗收后,備件的正訂數量減少。備件正訂的計算公式如式(8)所示,備件的正訂數量與上一期的正訂數量、上一期的新正訂、上一期的驗收數量有關。
PRt+1=PRt+NPRt-Yt
(8)
式(8)中:PR為正訂數量;NPR為新增正訂數量;Y為驗收數量;t為仿真的時間。
2.1.4 驗收模塊
備件的驗收數量與新增正訂數量有關,即在出現新增正訂時,經過采購周期時間后會產生對應數量的備件驗收。初始化驗收表時,使所有時間段的驗收數量均為0,在仿真過程中,若滿足NPRt>0,則按照式(9)計算驗收數量。
Yt+ΔT=Yt+ΔT+NPRt
(9)
式(9)中:ΔT為該備件的采購周期。
2.1.5 觸發采購申請模塊
新增正訂NPR與備件的庫存量S、預留量R、庫存參數、正訂PR有關,核電備件常用的庫存模型類型以及其運算邏輯如表2所示,通過輸入庫存參數、庫存數量、正訂數量、預留數量,計算新觸發的采購數量。當滿足觸發采購申請的條件時,NPRt的值為新觸發的采購數量,備件的總采購次數加1;當不滿足觸發采購申請的條件時,NPRt的值為0。例如某備件的庫存模型類型為ZB+HB,再訂貨點為3,最大庫存為6,其在t時間的庫存量S為1,預留數量R為0,正訂數量PR為1,滿足觸發采購申請的條件,觸發的采購數量NPR為4。

表2 備件庫存模型類型Table 2 Spare parts inventory model
當前常用的需求預測準確度檢測方法主要用于比較兩個模型偏離真實值的偏離程度,由于核電廠應用的備件庫存策略模型是通過設置庫存參數,利用庫存緩沖等方法來應對備件需求的發生,難以通過庫存參數計算出未來某一時間端的準確需求數量,故該評價方法不適用評價當前的庫存策略模型和庫存參數的設置效果。通過讀取平均庫存金額、平均有貨率、年均采購次數、基準庫存金額、備件的重要性,從模型參數設置后對庫存管理和備件保障的效果,綜合評價庫存參數的優劣程度。其中基準庫存金額是指備件的庫存模型類型為ZB+EX,再訂貨點設置為采購周期內平均領用量,基于備件庫存預測模型計算得到的平均庫存金額。
備件有貨率和庫存金額是一對相互制約的指標,通常情況下,若要提升備件有貨率,需增加庫存儲備量,由此會提升庫存金額。基于這兩個數據,以平均庫存金額為橫坐標,以平均有貨率為縱坐標,建立模型效果網格分布圖,使用綜合距離法進行評估,即通過計算各模型參數與理論最優值的距離,得到參數評價分數。當備件的平均庫存金額越低,平均有貨率越高,此時庫存參數越優。
讀取備件的平均庫存金額S1、平均有貨率P、年采購次數M、基準庫存金額S2、備件重要性I;計算采購次數修正系數C1,若M>1,則按照式(10)計算,否則令C1=1;計算備件重要性修正系數C2,若I=1(該備件為重要備件),則C2=0.825,否則C2=0.675;計算庫存金額的影響值X,如式(11)所示,若X>14.1,則令X=14.1;計算有貨率的影響值Y,如式(12)所示,若Y>14.1,則令Y=14.1;計算適應度值(評價分數)F,如式(13)所示,適應度值在0~10,適應度值越小,備件庫存參數越優。
C1=1+0.25(M-1)
(10)
(11)
(12)
(13)
核電備件庫存模型種類較多,基于表2中各種模型的運算邏輯,可以將優化問題細化為求解最優的再訂貨點、最大庫存、固定批量。由于此次仿真試驗中,所有備件的預留數量均為0,因此可以用ZB類型的模型替代VB類型的模型。當庫存模型為ZB+EX,再定點設置0時,其效果等同于PD+EX。通過剔除VB類型和PD類型后,待求解的庫存模型類型為ZB+EX、ZB+HB、ZB+FX。
針對ZB+EX類型,需計算最優的再訂貨點值,相當于求解1維優化問題。針對ZB+HB類型,需計算最優的再訂貨點和最大庫存,相當于求解2維優化問題。針對ZB+FX類型,需計算最優的再訂貨點和固定批量,相當于求解2維優化問題。
通過使用改進遺傳算法分別計算ZB+EX、ZB+HB、ZB+FX的最優適應度值,再比較3種庫存模型類型的適應度值,選取其中適應度值最小的庫存模型類型為最優模型類型,并讀取相應的庫存參數。
為了測試改進遺傳算法在核電備件庫存參數設置的應用效果,選擇了大亞灣核電廠100個有領用記錄的備件,讀取了備件的單價、采購周期、重要性、近5年領用數據、當前數據庫中備件庫存參數。通過構建仿真模型,對備件未來60個月的庫存數據進行仿真分析,在給備件輸入不同庫存參數時,自動計劃備件的平均庫存金額、平均有貨率,并對輸入的庫存參數進行評價。
為確保數據測試數據的一致性,所有備件的初始庫存數量設置為該備件1.5倍采購周期內的領用量,初始正訂數量為0。備件在當前數據庫中的庫存參數作為基礎模型,用于與MGA模型進行對比分析。
通過仿真運算,備件甲在不同庫存模型類型下的仿真結果如表3所示。改進遺傳算法先分別計算ZB+EX、ZB+HB、ZB+FX的最優適應度值,其ZB+FX的適應度值為0.44,優于ZB+EX和ZB+HB類型的適應度值,故MGA模型選用了庫存模型類型為ZB+FX的數據。基礎模型參數是維修用戶在數據庫中設置的庫存參數,該備件的基礎模型參數為ZB+FX,再訂貨點為12,固定批量為30,其庫存模型類型與MGA模型計算的結果相同,但是其再訂貨點小于MGA模型,固定批量大于MGA模型?;A模型采用了儲備較少量的最小庫存,每次采購較大批量的策略,然而最小庫存數量過低,導致出現等備件情況,單次采購批量較大,導致平均庫存金額較高情況,基礎模型的平均庫存金額和有貨率均劣于MGA模型。
平均庫存金額是判斷庫存參數有效性的重要指標,通過選取3項典型的備件,分別對比MGA模型和基礎模型的有效性。其中備件甲中兩個模型的平均庫存金額較為接近,備件乙中MGA模型的平均庫存金額低于基礎模型的平均庫存金額,備件丙中MGA模型的平均庫存金額高于基礎模型的平均庫存金額。各項備件的庫存數量、領用數量、采購數量在每個時間點的仿真分布如圖9~圖11所示。

圖9 備件甲的仿真結果Fig.9 Simulation results of spare part A
在這3項備件中,MGA模型的適應度值均優于基礎模型的適應度值。如圖9所示,當MGA模型的庫存金額與基礎模型的庫存金額接近時,前者的有貨率較高;如圖10所示,當MGA模型的有貨率與基礎模型的有貨率相同時(均為100%),前者的庫存金額較低;如圖11所示,當MGA模型的庫存金額高于基礎模型的庫存金額時,MGA模型的有貨率領先幅度更大,故MGA模型的參數更優。

圖10 備件乙的仿真結果Fig.10 Simulation results of spare part B

圖11 備件丙的仿真結果Fig.11 Simulation results of spare part B
通過將各模型中備件平均庫存金額除以該備件的基準庫存金額,可以得到庫存金額系數,如某備件的平均庫存金額為1.5萬元,該備件的基準庫存金額為1萬元,其庫存金額系數為1.5。將備件的平均庫存金額轉換為庫存金額系數,消除了備件單價的影響,可以在同一維度上對比分析不同單價的備件。通過仿真可以得到100項備件在MGA模型和基礎模型下的有貨率與庫存金額系數分布,如圖12、圖13所示。應用基礎模型時,部分備件的庫存金額系數大于4,有貨率低于72%。為了便于對比分析,對圖13中部分備件的庫存金額系數和有貨率進行了修正,當備件的庫存金額系數大于4時,將其賦值為4,當備件的有貨率低于72%時,將其賦值為72%。

圖12 MGA模型效果網格分布圖Fig.12 Grid distribution diagram of MGA model

圖13 基礎模型效果網格分布圖Fig.13 Grid distribution diagram of basic model
圖12中,越往左上方(即庫存金額系數越低,有貨率越高),其模型參數的效果越好,因此這幾個區域按照從優到劣的排序為:A區域、B區域、C區域、D區域。應用MGA模型的效果如圖12所示,其中92%的備件分布在A區域,8%的備件分布在B區域,0%的備件分布在C區域,0%的備件分布在D區域;應用基礎模型的效果如圖13所示,其中12%的備件分布在A區域,30%的備件分布在B區域,56%的備件分布在C區域,2%的備件分布在D區域。
MGA模型和基礎模型的備件有貨率、庫存金額系數、年均采購次數分布如圖14所示。在MGA模型中,所有備件的平均有貨率為97.6%,平均庫存金額系數為1.27,年均采購次數為0.83;在基礎模型中,所有備件的平均有貨率為83.6%,平均庫存金額系數為1.88,年均采購次數為1.02。通過對比,MGA模型的各項指標均優于基礎模型,且在各項備件樣本間的波動范圍更小。

圖14 MGA模型和基礎模型的仿真結果Fig.14 Simulation results of MGA model and basic model
為了進一步分析基于MGA模型得到的備件庫存參數有效性,在確定備件庫存參數后,通過調整備件的領用數量,測試MGA模型應對備件領用波動情形下的魯棒性。首先使用MGA模型計算所有備件的最優庫存參數,再調整每項備件的領用數量,基于圖8中庫存預測模型,計算存在領用波動情況下的庫存金額和有貨率分布情況。備件領用波動范圍設置為±20%、±50%、±100%,計算公式如式(14)所示。例如某項備件在某個時刻的領用數量為10,在增加±20%波動影響后,其領用數量在[8,12]分布;在增加±50%波動影響后,其領用數量在[5,15]分布;在增加±100%波動影響后,其領用數量在[0,20]分布。
(14)

增加領用波動后,所有備件在不同模型下的總領用金額和有貨率分布如圖15所示。這批備件采購周期的平均值為9.6個月,標準差為3.3個月,在仿真的前8個月中,備件首次觸發的正訂采購到貨驗收比例較低,備件的領用數量大于到貨驗收數量,備件消耗后未能有效補貨,因此備件的庫存金額和有貨率都呈現下降趨勢。在仿真8個月以后,前期觸發的正訂采購到貨驗收比例升高,備件的到貨驗收數量大于領用數量,因此備件的庫存金額和有貨率都呈現上升趨勢。在仿真20個月以后,備件的到貨數量與領用數量處于動態平衡中,因此備件的庫存金額和有貨率均在一定范圍內進行波動。基礎模型中部分備件的庫存參數值過高或過低,當備件的庫存參數過高時,采購到貨后無法在短期內被完全領用,導致庫存金額持續處于高位;當備件的庫存參數過低時,備件儲備量不足,經常出現缺貨情況,導致有貨率持續處于低位。

圖15 領用波動的影響Fig.15 The influence of materials requisition fluctuations
當使用原始領用數據計算出備件的庫存參數后,若備件后續的領用數量發生變化,則其庫存金額指標和有貨率指標都會變差,具體數據如表4所示。若領用無波動,使用MGA模型計算的庫存參數,在將所有備件的庫存金額控制在105萬元的情況下,平均有貨率可以達到97.6%。當引入領用波動時,整體庫存金額會上升,整體有貨率水平會降低。通過對比MGA模型和基礎模型,當給MGA模型增加了±100%的領用波動時,其庫存金額指標和有貨率指標均優于未增加領用波動的基礎模型。

表4 增加領用波動后的備件總庫存金額與有貨率數據Table 4 The influence of adding requirement fluctuations
設計一種改進的遺傳算法用于解決核電備件庫存參數優化問題。通過建立核電備件庫存策略模型評價方法,基于備件庫存預測模型、適應度值評價模型,將備件的庫存參數作為待求解變量,庫存參數評價分數作為適應度值,使用改進遺傳算法尋找備件的最優庫存參數。
經過對大亞灣核電廠100項備件進行仿真測試,改進遺傳算法可以有效計算出核電備件的庫存參數,通過引入該批備件在數據庫中庫存參數進行對比分析,使用改進遺傳算法計算的備件庫存參數,其庫存金額指標和有貨率指標均優于當前數據庫中的參數。為測試改進遺傳算法計算的備件庫存參數應對備件領用波動情形下的魯棒性,增加了3組領用波動對照試驗,當引入領用波動時,整體庫存金額會上升,且隨著波動幅度的增加,平均有貨率會逐漸降低。在增加±20%、±50%、±100%的領用波動時,使用改進遺傳計算的庫存參數均優于備件當前數據庫中的庫存參數。
當前備件庫存預測模型中,備件的預留數量設置為0,通常情況下,提前對備件進行預留會提高備件的庫存金額和有貨率,因此備件預留對備件庫存參數設置都有一定的影響,后續可進一步將研究不同類型備件預留設置方案,以及備件領用數量、備件預留、備件庫存參數之間的關系。