胡 霞,王 帆 (石家莊郵電職業(yè)技術(shù)學(xué)院,河北 石家莊 050021)
HU Xia,WANG Fan (SJZ Post and Telecommunication Technical College,Shijiazhuang 050021,China)
Flexsim是一款優(yōu)秀的離散事件仿真軟件,一個優(yōu)秀的分析工具。其研究的對象多是復(fù)雜的多目標(biāo)系統(tǒng),它可以將不同參數(shù)組合的運行結(jié)果輸出后供分析者比較,從而選取較優(yōu)的參數(shù)組合。由于Flexsim提供了實驗器可以一次性將不同參數(shù)組合記錄到模型中,并能經(jīng)過快速后臺運算后直接輸出仿真結(jié)果報告,因此分析者可以在較短的時間內(nèi)對各種方案進(jìn)行比較。
目前,F(xiàn)lexsim已經(jīng)在物流領(lǐng)域成功地進(jìn)行了多類系統(tǒng)的建模與仿真分析,在制造業(yè)、服務(wù)業(yè)、交通運輸業(yè)、軍事等諸多方面得到了廣泛應(yīng)用,涉及整體規(guī)劃、瓶頸分析、成本分析、流程優(yōu)化、派車、派工等眾多方向。利用Flexsim提供的有力工具建立模型,可以解決簡單的整數(shù)線性規(guī)劃問題,這在以往的文獻(xiàn)中未見涉及。本文無意于尋找求解整數(shù)線性規(guī)劃問題的新方法,只想借此問題開拓思路,探索Flexsim在更深層次和更廣范圍的應(yīng)用。
在線性規(guī)劃問題中,有些最優(yōu)解可能是分?jǐn)?shù)或小數(shù),但對于某些具體問題,常要求某些變量的解必須是整數(shù)。這種變量限制為整數(shù)的線性規(guī)劃,稱為整數(shù)線性規(guī)劃。在整數(shù)規(guī)劃中,如果所有變量都限制為整數(shù),則稱為純整數(shù)規(guī)劃;如果僅一部分變量限制為整數(shù),則稱為混合整數(shù)規(guī)劃,本文探討的案例為純整數(shù)規(guī)劃。
目前常見的整數(shù)線性規(guī)劃算法有枚舉法、割平面法、分枝定界法等[1]。能夠?qū)φ麛?shù)線性規(guī)劃問題進(jìn)行求解的軟件有MATLAB、LINGO、LINDO等[2],也有學(xué)者用編程方式實現(xiàn)了對整數(shù)線性規(guī)劃的不同算法。
對一個簡單的線性規(guī)劃例題進(jìn)行求解,例題描述如下:某物流企業(yè)要將貨物包裝成I、II兩種規(guī)格,需要A、B兩種原材料的數(shù)量、獲利情況及兩種材料數(shù)量限制見表1。問兩種規(guī)格各包裝多少件可獲利最多?
根據(jù)題意分析得,例題中的20單位A原料和8單位B原料應(yīng)該由發(fā)生器一次性產(chǎn)生;而按兩種規(guī)格包裝的貨物件數(shù)同樣也要由發(fā)生器產(chǎn)生;不同規(guī)格與不同原料通過合成器進(jìn)行匹配;最終獲利需要根據(jù)題意修改相應(yīng)代碼來得到;而枚舉法所列舉的各種可能,可以錄入到實驗器中。
表1 問題描述
根據(jù)上述思路建立如圖1所示的模型。
圖1 Flexsim整數(shù)線性規(guī)劃模型俯視圖
其中,原料A、原料B分別表示A、B兩種原材料的限制數(shù)量;貨物1、貨物2分別表示Ⅰ、Ⅱ兩種規(guī)格產(chǎn)品的包裝件數(shù)。到達(dá)方式均為“到達(dá)時間表”,并選擇合適的臨時實體種類。相關(guān)參數(shù)設(shè)置如表2所示。
表2 發(fā)生器參數(shù)表
由于受原料限制貨物1、貨物2的數(shù)量存在此消彼長的關(guān)系,因此,可將貨物2的到達(dá)時間和數(shù)量設(shè)置為較大值,此時只需要調(diào)整貨物1的數(shù)量即可實現(xiàn)對兩個變量的同時調(diào)整。為了對臨時實體加以區(qū)別,可以給各個發(fā)生器添加colorarray(item,value)的創(chuàng)建觸發(fā),即根據(jù)臨時實體類型設(shè)置臨時實體顏色。相關(guān)參數(shù)設(shè)置如表3所示。
表3 合成器參數(shù)表
可視化工具與“成品A”、“成品B”建立S連接,可視化顯示為“文本”,文本顯示為“顯示實體統(tǒng)計”,并修改該項的代碼:
第5行改為“string starttext="Total profit:";”
廣西上思縣由于地質(zhì)構(gòu)造復(fù)雜,地貌類型多樣,林地面積占比較大,地勢高差大,在具體的土地利用過程中,應(yīng)全面考慮土壤環(huán)境質(zhì)量評價結(jié)果以及土壤肥力與健康質(zhì)量評價結(jié)果的基礎(chǔ)上綜合規(guī)劃。盡量彌補(bǔ)地形造成的影響,采取建坡式梯田,采取微水灌溉措施,解決坡地灌溉問題[8]。
第7行改為“treenode involved=centerobject(current,1);treenode involved2=centerobject(current,2);” 正式工裝樣件有一個過程;另一方面,根據(jù)需要,在此期間對零件進(jìn)行工程更改。供應(yīng)商會按項目輸入的一個時間節(jié)點排出樣車制造各階段零件交付時間。由于供應(yīng)商不同樣車制造會受到如后橋、前懸無法按期交付等各方面的影響,試制樣車無法按照項目要求的時間節(jié)點交付樣車,造成項目造車及交付延后。但部分內(nèi)外飾按原定的計劃進(jìn)行順利,往往出現(xiàn)樣車制造還在OTS1階段,內(nèi)外飾零件OTS2階段樣件已經(jīng)提前交付,為了追趕進(jìn)度常常拿OTS2階段零件搭載到OTS1階段的樣車上進(jìn)行路試等驗證和認(rèn)可,往往也得拆換零件。
3.3.2 由于項目不斷壓縮樣車開發(fā)周期,部分零件因開發(fā)周期較長,供應(yīng)商無法按項目節(jié)點交付樣件,項目為了樣車的開發(fā)、驗證和一些質(zhì)量閥的開啟,在前期一些實驗樣車上搭載一些不能滿足樣車實驗功能的零件,待供應(yīng)商交付該功能零件時,又安排試制車間更換,如N平臺某項目,由于前期帶EPS線束的主線束還未開發(fā)出來,樣車制造時裝配非EPS主線束,待供應(yīng)商把EPS主線束開發(fā)及交付后,又安排換整車線束的工作。
本文對試制樣車制造時,部分零件由于供應(yīng)商、項目庫房、試制物流等原因,裝配上后又要拆卸、換裝的情況進(jìn)行了淺析,為了項目樣車保質(zhì)、保量完成交付,提出以下幾點建議:
(1)供應(yīng)商發(fā)運零件時,不管是發(fā)到一級供應(yīng)商處還是直接發(fā)運到項目庫房,需要工程師到供應(yīng)商處進(jìn)行一一確認(rèn),并將確認(rèn)可以用的零件標(biāo)識好,并由供應(yīng)商相關(guān)項目接口人員對零件發(fā)運進(jìn)行監(jiān)督,樣件到項目庫房后,工程師第一時間到項目庫房進(jìn)行確認(rèn)。
(2)項目庫房要求備標(biāo)準(zhǔn)件時,嚴(yán)格按零件號進(jìn)行備零件,對從其他庫房備的零件進(jìn)行狀態(tài)確認(rèn),盡量把錯誤零件在項目造車前發(fā)現(xiàn)并及時更換;把不同階段的零件分開存放,把項目剩余零件及時進(jìn)行隔離、報廢。
(3)需要工程師把某些專用件用于某臺的專用車的信息標(biāo)識清晰,及時向項目和試制總裝工程師反饋,并要求項目及時更新專用件清單。
(4)工程師發(fā)現(xiàn)以上情況,及時通知試制負(fù)責(zé)總裝的工程師并把相關(guān)零件送至試制物流,及時把異常狀態(tài)的零件進(jìn)行隔離處理。
(5)建議把因某些功能無法滿足樣車生產(chǎn)的順序進(jìn)行調(diào)整,盡量往后移,給供應(yīng)商爭取更多的時間進(jìn)行某些功能零件的開發(fā);是否要開車身套色方案,盡早把方案定下來并要求相關(guān)區(qū)域更新清單,采購環(huán)節(jié)要把更新后的清單及時發(fā)給供應(yīng)商,并要求供應(yīng)商按SGMW標(biāo)準(zhǔn)進(jìn)行送樣。
至此模型已經(jīng)基本完成,不斷調(diào)整“貨物1”的數(shù)量,可以找出獲利最多時的組合方式。這樣手動調(diào)整非常麻煩,可以利用Flexsim提供的實驗器來進(jìn)行自動調(diào)整。
受材料B限制,規(guī)格I最多只能包裝4件,因此可以列舉出0~4共五種情況。打開實驗器,“方案”設(shè)為5,“實驗變量”設(shè)為 1,“Quantity”設(shè)為“MAIN:/project/model/貨物 1>variables/schedule/Arrival1/Quantity”,Scenario 1~5 依次設(shè)為 0~4。
添加績效指標(biāo),名稱改為“total profit”,績效指標(biāo)“按單個實體進(jìn)行統(tǒng)計”,修改代碼:
第4行改為“string objname="成品A";string objname2="成品 B";”
第16行改為“int stat=Input;”
第17行改為“treenode current=node(concat("/",objname),model());treenode current2=node(concat("/",objname2),model());”
第20行改為“else if(stat==Input)value=12*getinput(current)+9*getinput(current2);”
開始實驗并查看結(jié)果,如圖2。此時,方案重復(fù)運行了5次,但由于模型中不含隨機(jī)變量,因此各次的運行結(jié)果均相同,所以方案重復(fù)運行次數(shù)完全可以設(shè)為1,對于枚舉數(shù)量較多的情況,這樣設(shè)置可以大大節(jié)省運算時間。
從實驗結(jié)果可知,方案5可使獲利最多,可獲利48元。至此可知最優(yōu)方案為規(guī)格Ⅰ包裝4件,規(guī)格Ⅱ包裝0件。對于更復(fù)雜的情況,上述方法在一定范圍內(nèi)同樣有效,在此不多贅述。
圖2 實驗器運行結(jié)果
[1]黃振侃,唐薇.整數(shù)線性規(guī)劃算法的計算機(jī)實現(xiàn)[J].北京工業(yè)大學(xué)學(xué)報,1994(1):80-85.
[2]雍龍泉.求解線性規(guī)劃的幾種方法[J].江西科學(xué),2007,25(2):202-205,212.