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