姚志剛,袁宇,李潔
(一汽解放汽車有限公司,吉林 長春 130011)
生產(chǎn)計(jì)劃是制造企業(yè)生產(chǎn)管理的核心,是衡量企業(yè)管理水平的重要標(biāo)準(zhǔn)之一,只有制定科學(xué)合理的生產(chǎn)計(jì)劃,才能保證生產(chǎn)資源的合理利用,提高生產(chǎn)效率。目前,生產(chǎn)計(jì)劃員采用ERP 來制定生產(chǎn)計(jì)劃,未將“生產(chǎn)效率”考慮在內(nèi)。近年來,許多學(xué)者致力于生產(chǎn)計(jì)劃建模和元啟發(fā)式算法的研究。呂志民等[1]建立了中期生產(chǎn)計(jì)劃模型,并用約束遺傳算法嵌套線性規(guī)劃的方法進(jìn)行求解。付力[2]建立了以市場需求、工廠產(chǎn)能、成本為目標(biāo)函數(shù)的生產(chǎn)計(jì)劃模型。吳佳良[3]建立了以最小化成本為目標(biāo)函數(shù)的數(shù)學(xué)模型并運(yùn)用線性規(guī)劃的方法進(jìn)行求解。蒙秋男等[4]研究了混流線批次批量生產(chǎn)計(jì)劃,并用蟻群算法進(jìn)行求解。王軍等[5]建立總生產(chǎn)計(jì)劃模型并用動(dòng)態(tài)規(guī)劃的方法進(jìn)行求解。鄒澤樺等[6]用改進(jìn)遺傳算法求解柔性作業(yè)車間調(diào)度問題。徐建有等[7]針對(duì)單機(jī)調(diào)度問題提出多目標(biāo)變鄰域搜索算法。劉樂等[8]針對(duì)流水車間調(diào)度與外包問題,提出了混合變鄰域搜索算法。上述學(xué)者大多只研究生產(chǎn)計(jì)劃模型,或只研究算法,而實(shí)際排產(chǎn)中往往需要同時(shí)應(yīng)用計(jì)劃模型和算法。因此,文中對(duì)生產(chǎn)大綱計(jì)劃建立數(shù)學(xué)模型并用CPLEX進(jìn)行求解,針對(duì)車間作業(yè)計(jì)劃,采用變鄰域搜索算法(variable neighborhood search,VNS)進(jìn)行求解。
以單位人時(shí)產(chǎn)能(units per hour per person,UUPH)作為生產(chǎn)效率的衡量指標(biāo),建立“量利人耗”最優(yōu)科學(xué)排產(chǎn)模型,模型的目標(biāo)函數(shù)是最大化UPPH,同時(shí)保證滿足瓶頸資源、作業(yè)時(shí)間、作業(yè)人員、小時(shí)能耗、均衡排產(chǎn)和綜合收益等約束。模型保證滿足銷售公司需求的“量”,同時(shí)保證每月獲得的盈“利”,控制生產(chǎn)線使用的“人”員數(shù)量和能源消“耗”;輸出結(jié)果是每日排產(chǎn)車型的品種及數(shù)量。目標(biāo)函數(shù)表示最大化人均小時(shí)產(chǎn)出率:
式中:Xij為車型i在j天的排產(chǎn)數(shù)量,為函數(shù)自變量;H為日投入時(shí)間,單位為小時(shí);β為月制度工作天數(shù);M為生產(chǎn)線直準(zhǔn)人員數(shù)量;Tti為車型i的節(jié)拍;OEE為產(chǎn)線綜合可動(dòng)率;bi為車型i的工時(shí)定額;η為月出勤率;Ei為車型i的單車能耗,λ 為小時(shí)能耗標(biāo)準(zhǔn)值;Qi為車型i的月生產(chǎn)數(shù)量;Si為車型i的銷售價(jià)格;Ci為車型i的成本;P為利潤指標(biāo);Iij為車型i第j天庫存量;Isi為i車型安全庫存量;Li為車型i日排產(chǎn)下限值;Ui為車型i日排產(chǎn)上限值。
運(yùn)行主生產(chǎn)計(jì)劃模型后,將獲得的生產(chǎn)任務(wù)分配到產(chǎn)線和班次上。分配原則為任務(wù)量均分原則和特殊產(chǎn)品加工原則,過程分為2步:1)產(chǎn)線分配,將生產(chǎn)任務(wù)分配到總裝E線和總裝F線;2)班次分配,將產(chǎn)線的生產(chǎn)任務(wù)分配到白班和夜班。
1.2.1 產(chǎn)線分配模型
以最小化E 線與F 線的作業(yè)時(shí)間差為目標(biāo)函數(shù),同時(shí)保證滿足總量約束、特定指派約束和完成時(shí)間約束,模型輸出的結(jié)果是每條產(chǎn)線每日排產(chǎn)車型的品種及數(shù)量。目標(biāo)函數(shù)為
式中:Fe為E 線作業(yè)完成時(shí)間;Ff為F 線作業(yè)完成時(shí)間;Pei為車型i在E線的排產(chǎn)數(shù)量;Pfi為車型i在F 線的日排產(chǎn)數(shù)量;Pi為i車型的日排產(chǎn)數(shù)量。車型1在E線和F線均有生產(chǎn),車型2~m在E線生產(chǎn),車型(m+1)~n在F線生產(chǎn)。
1.2.2 E線班次分配模型
以最小化E 線白班與夜班的作業(yè)時(shí)間差為目標(biāo)函數(shù),同時(shí)保證滿足取值范圍約束、總量約束和完成時(shí)間約束,模型輸出的結(jié)果是E線白班和夜班排產(chǎn)車型的品種及數(shù)量。目標(biāo)函數(shù)為
式中:Fd為白班作業(yè)時(shí)間;Fn為夜班作業(yè)時(shí)間;Pi為i車型的日排產(chǎn)數(shù)量;Pdi為i車型在E 線白班排產(chǎn)數(shù)量;Pni為i車型在E線夜班排產(chǎn)數(shù)量。
總裝E 線生產(chǎn)的所有車型白班和夜班都可以進(jìn)行生產(chǎn),故所有車型的數(shù)量在白班和夜班間是均分的。有時(shí)總數(shù)量不能被2整除,需添加取值范圍約束進(jìn)行平衡。
1.2.3 F線班次分配模型
以最小化F 線白班與夜班的作業(yè)時(shí)間差為目標(biāo)函數(shù),同時(shí)保證滿足取值范圍約束和完成時(shí)間約束,模型輸出的結(jié)果是F線白班和夜班排產(chǎn)車型的品種及數(shù)量。目標(biāo)函數(shù)為
生產(chǎn)任務(wù)分配完成后,確定生產(chǎn)順序,即生產(chǎn)調(diào)度。調(diào)度問題是NP-hard問題,傳統(tǒng)運(yùn)籌學(xué)方法如分支定界法難以求解大規(guī)模調(diào)度問題,模擬自然和社會(huì)行為的元啟發(fā)式算法在求解調(diào)度問題上取得了優(yōu)異的成績。VNS 與遺傳算法、蟻群算法、模擬退火法相比,具有參數(shù)少、收斂速度快、求解效果好等優(yōu)點(diǎn)。根據(jù)實(shí)際情況,采用VNS進(jìn)行求解:
1)編碼 為了便于理解和計(jì)算,采用自然數(shù)進(jìn)行編碼,每個(gè)自然數(shù)代表1種車型,1組自然數(shù)列代表車型序列。圖1 展示的條碼表示總裝配線按順序裝配1車型3個(gè),2車型2個(gè),3車型2個(gè)。
圖1 車型序列圖
2)初始化 以原生產(chǎn)計(jì)劃為初始解。
3)鄰域搜索 此階段為算法的發(fā)散階段,主要有交換、插入、顛倒3種鄰域操作。
4)更新解 若新解優(yōu)于原解則進(jìn)行解的更新;否則,為避免算法陷入局部最優(yōu),以小概率進(jìn)行解的更新。更新解后記錄算法的歷史最佳解。
5)終止判斷 若迭代次數(shù)沒達(dá)到最大迭代次數(shù),則返回步驟3),否則進(jìn)入步驟6)。
6)解碼 將編碼序列轉(zhuǎn)換成生產(chǎn)任務(wù)單。
7)輸出最優(yōu)解 輸出最優(yōu)解,算法結(jié)束。
以某總裝車間某月生產(chǎn)任務(wù)為例,應(yīng)用CPLEX,根據(jù)分支定界原理,求解各車型最優(yōu)日排產(chǎn)量,指導(dǎo)生產(chǎn)大綱排產(chǎn)。按照每個(gè)月20 d、每天有效作業(yè)21 h,求出日排產(chǎn)數(shù)量如表1所示。嘗試縮短每班的工作時(shí)間,即每天有效作業(yè)時(shí)間為19.4 h,求出日排產(chǎn)數(shù)量如表2所示。結(jié)果表明,調(diào)整各車型每日的生產(chǎn)數(shù)量,可以實(shí)現(xiàn)工人每天早下班48 min,人時(shí)產(chǎn)能提升8.24%。
表1 每日作業(yè)21 h日排產(chǎn)量 輛
表2 每日作業(yè)19.4 h日排產(chǎn)量 輛
將某日生產(chǎn)計(jì)劃代入產(chǎn)線分配模型,2條產(chǎn)線的生產(chǎn)任務(wù)分配結(jié)果見表3,完工時(shí)間見表4。根據(jù)程序運(yùn)行結(jié)果,原方案E線工人比F線工人早下班83 min,通過將部分車型7 的生產(chǎn)任務(wù)從F 線分配到E線,E線工人比F線工人早下班3 min,2條產(chǎn)線完工時(shí)間差距縮減了80 min。
表3 E線和F線排產(chǎn)量 輛
表4 產(chǎn)線完工時(shí)間 min
將某日生產(chǎn)計(jì)劃代入E線班次分配模型,E線白夜班的生產(chǎn)任務(wù)分配結(jié)果見表5,完工時(shí)間見表6。根據(jù)程序運(yùn)行結(jié)果,原方案E 線白班工人比夜班工人晚下班2.5 min,通過重新分配各車型白夜班的生產(chǎn)數(shù)量后可實(shí)現(xiàn)E 線白班工人比夜班工人早下班0.5 min,白夜班作業(yè)時(shí)間差距縮減了2 min。
表5 E線白夜班排產(chǎn)量 輛
表6 E線白夜班完工時(shí)間 min
將某日生產(chǎn)計(jì)劃代入F線班次分配模型,運(yùn)行結(jié)果見表7,完工時(shí)間見表8。根據(jù)程序運(yùn)行結(jié)果,原方案F線夜班工人比白班工人晚下班49 min,通過重新分配各車型白夜班的生產(chǎn)數(shù)量后可實(shí)現(xiàn)F線白班工人和夜班工人同時(shí)下班,白夜班作業(yè)時(shí)間差距縮減了49 min。
表7 F線白夜班排產(chǎn)量 輛
表8 F線白夜班完工時(shí)間 min
綜上,生產(chǎn)任務(wù)分配模型可使產(chǎn)線間、班次間的生產(chǎn)任務(wù)分配更加公平、合理,對(duì)公司實(shí)現(xiàn)公平原則、實(shí)施同工同酬制度提供支撐。
VNS算法的求解過程如圖2所示,鄰域變化為2個(gè)位置元素的交換操作。系統(tǒng)隨機(jī)生成1個(gè)初始車型序列,記為序列1,自動(dòng)計(jì)算按此順序生產(chǎn)所用的時(shí)間。隨機(jī)選取2 個(gè)位置的車型進(jìn)行生產(chǎn)順序互換,生成序列2,用時(shí)優(yōu)于序列1,更新序列為序列2。再隨機(jī)選取2個(gè)位置的車型進(jìn)行生產(chǎn)順序互換,生成序列3,由于序列3的生產(chǎn)用時(shí)高于序列2,此時(shí)序列不更新,仍按序列2進(jìn)行鄰域變化。如此反復(fù),直至到達(dá)算法內(nèi)置的迭代次數(shù),輸出最優(yōu)序列及用時(shí)。
圖2 最優(yōu)解尋找示例
以某日E 線白班生產(chǎn)任務(wù)為例,使用VC++6.0運(yùn)行VNS,按照原排產(chǎn)順序,完成時(shí)間為26.60 h,生產(chǎn)序數(shù)為4,算法迭代次數(shù)為10 000 次,運(yùn)行10次,得到10種方案,結(jié)果如表9所示。將10種方案與原方案進(jìn)行比較,找出生產(chǎn)效率最高即完成時(shí)間最小的方案,方案3~10均滿足條件,方案3和方案4 的序數(shù)最少,可減少線上的換型次數(shù),故車間作業(yè)計(jì)劃可參考方案3 和方案4,見表10。根據(jù)程序運(yùn)行結(jié)果,重新調(diào)整生產(chǎn)順序后,方案3和方案4單班次完工時(shí)間減少0.29 h,為減少生產(chǎn)周期、實(shí)現(xiàn)流生產(chǎn)提供了有利的支撐。
表9 某日E線白班方案
表10 最優(yōu)車間作業(yè)計(jì)劃
以某總裝車間生產(chǎn)計(jì)劃的制定為例,以提高生產(chǎn)效率作為改善點(diǎn),對(duì)生產(chǎn)大綱計(jì)劃和車間作業(yè)計(jì)劃進(jìn)行優(yōu)化。建立了“量利人耗”的數(shù)量模型,通過CPLEX求解生產(chǎn)計(jì)劃,用VNS求解車間作業(yè)計(jì)劃,調(diào)整生產(chǎn)順序,工人生產(chǎn)效率更高,任務(wù)分配更加公平。此外,程序采用開源代碼進(jìn)行編寫,方便嵌入到其他系統(tǒng)中。