背景
碼頭管理中進(jìn)口箱選位一直是一個(gè)難題,特別是對(duì)于堆場(chǎng)面積小的碼頭而言,翻箱率居高不下會(huì)導(dǎo)致企業(yè)資源浪費(fèi),作業(yè)效率下降。今天,小編帶您一起看看上海浦東國(guó)際集裝箱碼頭有限公司是如何從箱位堆放上入手,優(yōu)化進(jìn)口箱選位算法,實(shí)現(xiàn)降低翻箱率(箱操作數(shù)/總操作數(shù))的。
堆場(chǎng)管理現(xiàn)狀
1.1進(jìn)口重箱作業(yè)特點(diǎn)
上海浦東國(guó)際集裝箱碼頭有限公司是上海港最早經(jīng)營(yíng)集裝箱的碼頭,公司航線多,船舶小,船期密度大,箱區(qū)安排緊張。雖然部分進(jìn)口箱采用大票集中堆放,總體上可以降低部分翻箱率,但大部分進(jìn)口箱位置的選擇,主要采用大計(jì)劃方式,隨機(jī)堆放。用戶前來提箱的時(shí)候,并沒有一定的規(guī)律,也屬于隨機(jī)提取。鑒于這些情況,公司原有進(jìn)口堆場(chǎng)選位算法并沒有發(fā)揮太大作用。因此,我們考慮到對(duì)進(jìn)口箱的選位進(jìn)行優(yōu)化。
1.2進(jìn)口重箱選位問題
根據(jù)進(jìn)口箱具體情況,我們確定研究的問題:在貝位已知的前提下,貝位內(nèi)每個(gè)箱子的進(jìn)場(chǎng)時(shí)間和天數(shù)是已確定,但提箱時(shí)間未知??梢悦枋鰹椋航o定一個(gè)貝位,當(dāng)前貝位上有一定數(shù)量的已知進(jìn)場(chǎng)天數(shù)的集裝箱,要進(jìn)來一個(gè)已知進(jìn)場(chǎng)時(shí)間的新的集裝箱,位置上已有集裝箱和將要進(jìn)入的集裝箱,提離的時(shí)間都不確定。
對(duì)此,我們?cè)O(shè)計(jì)一個(gè)評(píng)分函數(shù),對(duì)即將進(jìn)入研究貝位的箱子以及它周邊的箱子進(jìn)行評(píng)分,根據(jù)評(píng)分情況,利用啟發(fā)式算法,為每個(gè)進(jìn)場(chǎng)的箱子選擇一個(gè)最為合適的位置,降低翻箱率。
數(shù)據(jù)分析
2.1數(shù)據(jù)采集分析
要分析堆場(chǎng)上集裝箱位置變化的信息,先要獲取有代表性的數(shù)據(jù),然后利用數(shù)據(jù)分析器進(jìn)行擴(kuò)展模擬。我們選取箱量較高的12月份箱動(dòng)態(tài)信息數(shù)據(jù),作為分析的初始數(shù)據(jù)依據(jù)。數(shù)據(jù)信息包含了集裝箱的初始計(jì)劃選擇位置、實(shí)際落箱位置、非進(jìn)出(裝船或提箱)位置變化動(dòng)態(tài)。問題可以轉(zhuǎn)化為:已知后續(xù)所有集裝箱進(jìn)場(chǎng)的序列和具體時(shí)間,以及所有集裝箱的出場(chǎng)序列和具體時(shí)間,現(xiàn)需要安排操作,在假設(shè)未知出場(chǎng)序列的前提下,模擬每一個(gè)集裝箱進(jìn)場(chǎng)并且進(jìn)行位置選擇,模擬每一個(gè)集裝箱在場(chǎng)翻箱操作,統(tǒng)計(jì)最終的移動(dòng)數(shù)量。
首先對(duì)進(jìn)口卸船提箱時(shí)間進(jìn)行分析,對(duì)其規(guī)律進(jìn)行探尋。我們建立一個(gè)單獨(dú)的數(shù)據(jù)分析器,這個(gè)分析器可以完成以下模擬任務(wù),使得其能夠?qū)π畔⑦M(jìn)行分析。
(1)模擬到任意一個(gè)時(shí)刻進(jìn)行暫停,且能夠獲得此時(shí)的在場(chǎng)箱位置列表、狀態(tài)列表,以及此時(shí)的后續(xù)任務(wù)。此外,模擬在場(chǎng)箱動(dòng)態(tài)信息數(shù)據(jù)中的每一個(gè)動(dòng)作,并且在動(dòng)作執(zhí)行時(shí),進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)和記錄。該部分模擬的意義在于,可以對(duì)所有動(dòng)作截取任意時(shí)長(zhǎng)進(jìn)行統(tǒng)計(jì),即對(duì)相關(guān)整體數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析。
(2)截取某一個(gè)貝位,能夠?qū)υ撠愇粌?nèi)的所有相關(guān)操作進(jìn)行統(tǒng)計(jì)和分析,即可以獲得一系列僅針對(duì)該貝位內(nèi)操作的分析,且該分析過程獨(dú)立于整體模擬,并且有極高效率支持多組數(shù)據(jù)模擬和分析。該部分模擬的意義在于,可以單獨(dú)研究每個(gè)貝位上的具體情況,截取數(shù)據(jù)并且進(jìn)行模擬。
2.2評(píng)分機(jī)制引入
對(duì)整體數(shù)據(jù)的進(jìn)口箱提箱天數(shù)進(jìn)行分析,進(jìn)口箱提箱天數(shù)和百分比見表1。其中第一行代表該箱在堆場(chǎng)中的天數(shù),第二行表示在堆場(chǎng)中等待該天數(shù)的箱的提箱占總數(shù)的百分比,第三行表示在該天數(shù)下,占剩余的百分比數(shù)值。
從統(tǒng)計(jì)可以看出,平均堆存天數(shù)約為4.5天。9天以上的集裝箱分布較為分散,因此我們將提箱時(shí)間大于等于9天的箱全部進(jìn)行合并統(tǒng)計(jì),其總量在4%左右,和第一天較為接近。2-6天為進(jìn)口重箱主要提箱時(shí)間,該部分合計(jì)約有79%。箱子在場(chǎng)時(shí)間越長(zhǎng),則在后一天被提走的概率都會(huì)被增加。而我們看到其主要集中在3-5天的分布,其連續(xù)三天加起來接近53.61%,因此我們考慮當(dāng)堆存天數(shù)相差3天以上會(huì)出現(xiàn)大概率的翻箱。
此外,我們對(duì)箱量達(dá)到100自然箱的船舶進(jìn)行了進(jìn)口箱提離場(chǎng)地的時(shí)間分布統(tǒng)計(jì)分析,船舶進(jìn)口箱提離堆場(chǎng)的時(shí)間分布表見表2。
由于進(jìn)口提箱沒有預(yù)約機(jī)制,客戶辦理時(shí)間隨機(jī)而無序,實(shí)際提箱時(shí)間差別較大。由此可以看出,直接按照“船到來的日期”進(jìn)行選位,是不可行的。因此,我們考慮引入評(píng)分機(jī)制,進(jìn)行選位的優(yōu)化。
2.3進(jìn)口重箱堆存算法優(yōu)化設(shè)想
為了降低進(jìn)口箱的提箱翻箱率,我們必須對(duì)進(jìn)口箱進(jìn)入場(chǎng)地貝位前進(jìn)行優(yōu)化位置的優(yōu)化選擇。由于受堆場(chǎng)的限制和船舶效率的要求,且進(jìn)口箱選位一直采用大計(jì)劃的方式,如果采用對(duì)選位算法做過多過細(xì)的選位規(guī)則的方法,算法改進(jìn)的效果并不大。通過前期數(shù)據(jù)分析,我們發(fā)現(xiàn)在輪胎吊堆場(chǎng)中,進(jìn)口箱選位和翻箱選位當(dāng)前仍有很大的優(yōu)化空間。因此,我們考慮不去修改橋邊手持機(jī)改變?cè)械倪x位信息,而是在橋邊指定了具體的箱區(qū)、貝位之后,在輪胎吊RPS端進(jìn)行指定貝位選位的優(yōu)化建議。
具體情況就是,貝位已知,貝位內(nèi)每個(gè)箱子的進(jìn)場(chǎng)時(shí)間確定,但是提箱時(shí)間未知,我們?cè)O(shè)想是否有一種在已知進(jìn)口卸船的預(yù)計(jì)提箱時(shí)間的前提下,結(jié)果較優(yōu)的堆疊算法。該算法主要思路:假定預(yù)計(jì)提箱時(shí)間不同,那么在選位和翻箱過程中,在同樣的空間下,我們優(yōu)先選擇預(yù)計(jì)剩余堆存天數(shù)大于當(dāng)前箱的位置進(jìn)行堆疊。
選位算法實(shí)現(xiàn)方法
算法根據(jù)當(dāng)前堆存高度、當(dāng)前堆存天數(shù),來對(duì)進(jìn)口箱在單個(gè)貝位的堆疊策略和翻箱策略進(jìn)行修改并且優(yōu)化。
3.1算法設(shè)計(jì)
對(duì)于任意一個(gè)進(jìn)口箱的堆疊,我們可以將其分為多種具體情況。針對(duì)不同情況設(shè)計(jì)相關(guān)的具體策略。具體策略的生成,我們直接進(jìn)行條件假設(shè),即以下三個(gè)條件:
(1)新進(jìn)入堆場(chǎng)的集裝箱,根據(jù)上面的統(tǒng)計(jì)概率,在壓到進(jìn)場(chǎng)天數(shù)大于此集裝箱的箱上時(shí),容易造成翻箱,因此應(yīng)當(dāng)盡量避免此情況;
(2)在已有堆存天數(shù)較多的集裝箱進(jìn)行翻箱時(shí),如果沒有空列,由于該箱被提走的概率較高,那么放在盡可能高的位置,可以為其它箱的后續(xù)堆疊節(jié)約空間;
(3)如果兩個(gè)集裝箱的在場(chǎng)天數(shù)差距在3天以上時(shí),其被提走的概率相差較大,因此可以近似認(rèn)為堆存較久的集裝箱會(huì)被先提走。
在根據(jù)統(tǒng)計(jì)結(jié)果形成的以上假設(shè)條件下,我們?cè)O(shè)計(jì)相應(yīng)的評(píng)分函數(shù)和基礎(chǔ)公式,并且在此公式基礎(chǔ)上進(jìn)行數(shù)值驗(yàn)證和結(jié)果計(jì)算。后面關(guān)于時(shí)間的計(jì)算,全部采用最小單位為“天”的單位。
對(duì)此,首先定義三個(gè)變量。
定義1:接近時(shí)間T1(x):針對(duì)即將要堆疊的排T進(jìn)行計(jì)算。如果該列存在某個(gè)進(jìn)場(chǎng)時(shí)間在該箱之前的箱子,T1(x)為“當(dāng)前時(shí)間-要移動(dòng)的箱的進(jìn)場(chǎng)時(shí)間”,即“當(dāng)前移動(dòng)的箱子在場(chǎng)了幾天”,如果不存在則T1(x)取10。
定義2:接近時(shí)間T2(x):針對(duì)即將要堆疊的排T進(jìn)行計(jì)算。如果該列存在某個(gè)進(jìn)場(chǎng)時(shí)間在該箱之前的箱子,T2(x)為“當(dāng)前時(shí)間-要移動(dòng)的箱的進(jìn)場(chǎng)時(shí)間”,即“當(dāng)前移動(dòng)的箱子在場(chǎng)了幾天”,如果不存在則T2(x)取3。如果T2(x)>3,那么令T2(x)取3。
定義3:當(dāng)前高度H:同樣針對(duì)即將堆疊的排T進(jìn)行計(jì)算,即當(dāng)前排的高度。
在此基礎(chǔ)上,我們使用兩個(gè)分?jǐn)?shù)計(jì)算公式來進(jìn)行判斷,兩個(gè)公式總計(jì)有5個(gè)參數(shù),分別是常數(shù)C,H的系數(shù)D和D1,T(x)的系數(shù)K和K1。公式中我們假設(shè)這些變量滿足線性模型。
當(dāng)列T存在某個(gè)集裝箱,其進(jìn)場(chǎng)時(shí)間大于要進(jìn)入這一列的箱x時(shí),使用公式(1),否則使用公式(2)。使用兩個(gè)公式是因?yàn)?,如果該列?nèi)沒有在場(chǎng)時(shí)間在此箱之前的,那么說明該箱大概率不會(huì)引起翻箱,就不算作翻箱數(shù);而使用公式(2),意味著該箱很大概率會(huì)引起翻箱,則在此情況下參數(shù)應(yīng)該單獨(dú)進(jìn)行設(shè)定。
對(duì)該貝位逐列進(jìn)行F(x)值計(jì)算,選擇F(x)最大且和起始列不同的一列作為該箱所翻到的列。
3.2算法實(shí)現(xiàn)
以圖例說明公式使用情況如下。
堆疊列T內(nèi)所有箱進(jìn)場(chǎng)時(shí)間均在當(dāng)前移動(dòng)箱之后示意圖見圖1。箱子上的數(shù)字代表該箱的進(jìn)場(chǎng)日期。進(jìn)場(chǎng)的集裝箱日期為1,意味著該列其它集裝箱的進(jìn)場(chǎng)日期都在此箱之后,因此使用公式(1),其T1(x)=10,令C=40,D=-1,K=2,由此可得F(x) =40 - 1* 4+ 2 * 10 = 56。
堆疊列T內(nèi)部分箱進(jìn)場(chǎng)時(shí)間均在當(dāng)前移動(dòng)箱之后見圖2。圖2中則是該列中有在此箱后,也有在此箱前進(jìn)場(chǎng)的集裝箱,因此仍然使用公式(1),其T1(x)=1,令C=40,D= -1, K=2,則此處F(x)=40-1*4+2*1= 38。
堆疊列T內(nèi)所有箱進(jìn)場(chǎng)時(shí)間均在當(dāng)前移動(dòng)箱進(jìn)場(chǎng)時(shí)間之前示意圖見圖3。圖3中則是滿足T2(x)的計(jì)算條件,該列的所有進(jìn)場(chǎng)時(shí)間都小于該箱,因此使用公式(2),其T2(x)=1,令D1=1,K1= -2 ,則其F(x) =1*4 + (-2) *2 = 0。
根據(jù)公式(1)和(2),按照?qǐng)D例中所給出的情況,設(shè)計(jì)相關(guān)源代碼,進(jìn)行試驗(yàn)分析和驗(yàn)證。
試驗(yàn)驗(yàn)證
4.1 試驗(yàn)數(shù)據(jù)準(zhǔn)備
為了進(jìn)行批量的測(cè)試和結(jié)果對(duì)比,我們使用分析器進(jìn)行數(shù)據(jù)提取和生成,以突出代表的24箱區(qū)12貝位作為40尺貝位試驗(yàn)數(shù)據(jù),44箱區(qū)21貝位作為20尺貝位試驗(yàn)數(shù)據(jù)。
數(shù)據(jù)生成的方法如下:對(duì)整個(gè)貝位上的所有操作進(jìn)行數(shù)據(jù)截取,保留所有的進(jìn)箱、提箱、翻箱操作來進(jìn)行數(shù)據(jù)生成。由于實(shí)際進(jìn)箱滿足假設(shè),因此我們生成了足夠多組數(shù)據(jù)(1000組)來進(jìn)行實(shí)驗(yàn)和對(duì)比。每一組數(shù)據(jù)中,我們保留該箱的實(shí)際進(jìn)場(chǎng)時(shí)間,之后根據(jù)統(tǒng)計(jì)的提箱天數(shù)概率,來為該箱隨機(jī)添加提箱日期,這樣生成出的數(shù)據(jù)就符合統(tǒng)計(jì)的概率分布,可以在多組實(shí)驗(yàn)的情況下與原始翻箱操作數(shù)結(jié)果進(jìn)行對(duì)比。
4.2 評(píng)價(jià)指標(biāo)和參數(shù)調(diào)整
分別針對(duì)每種不同數(shù)據(jù),進(jìn)行相應(yīng)實(shí)驗(yàn)結(jié)果研究和對(duì)比,以及進(jìn)行參數(shù)決定。
首先對(duì)公式中的C值進(jìn)行研究。暫時(shí)固定K值和D值為初始設(shè)計(jì)的(D=1,K = -2,D1 = -1,K1 = 2)的條件下,進(jìn)行C值的求解。取C=-1 作為參數(shù)C的取值。
在固定C值前提下,隨著K和D值變化求翻箱率。此處我們K1和D1仍然取-1和2。
參數(shù)K和D求解表格見表3。根據(jù)表3中的數(shù)據(jù)結(jié)果,我們可以得出,原始參數(shù)設(shè)置的D=1,K=-2是合理的。在此基礎(chǔ)上,我們進(jìn)行K1和D1的求解。
參數(shù)K1和D1求解表格見表4。根據(jù)表4可知,對(duì)于K1和D1的取值分別在D1=-3,K1=2時(shí)達(dá)到最優(yōu)。因此,在進(jìn)行為期一月的進(jìn)箱數(shù)據(jù)模擬時(shí),其翻箱率在取D=1,K=-2,D1=-3,K1=2的時(shí)候會(huì)獲得最優(yōu)結(jié)果。
4.3 實(shí)驗(yàn)結(jié)果總結(jié)
此外,我們對(duì)原有數(shù)據(jù)進(jìn)行修改,即對(duì)進(jìn)箱假設(shè)條件進(jìn)行更改。例如24箱區(qū)12貝位生成的進(jìn)箱數(shù)據(jù),假設(shè)的進(jìn)箱時(shí)間是固定的,但是我們?cè)谶@里假設(shè)其分布的更加均勻后觀察其實(shí)驗(yàn)結(jié)果,均勻分布下的翻箱率見表5。
其中“2412”代表24箱區(qū)12貝位使用調(diào)整后的參數(shù)的結(jié)果,“2412改”代表24箱區(qū)12貝位使用修改生成概率的數(shù)據(jù)后的結(jié)果,“2412實(shí)際”代表實(shí)際翻箱率,而“全箱區(qū)”代表全場(chǎng)翻箱率?!?412改”和“4421改”比起實(shí)際結(jié)果,均有較小幅度的翻箱數(shù)百分比上升。
對(duì)實(shí)際數(shù)據(jù)結(jié)果分析過程中,發(fā)現(xiàn)有一些較大的結(jié)果出現(xiàn),說明該算法的應(yīng)用范圍可能僅適用于確定進(jìn)箱分布下的情況。從上表看,對(duì)于“4421”貝位情況,其翻箱率優(yōu)化值較低,而對(duì)于“2412”其實(shí)際優(yōu)化值較高。因此,對(duì)于不同的分布假設(shè),仍需要參數(shù)調(diào)整。
在此研究基礎(chǔ)上的下一步的工作方向,主要分為兩個(gè)部分:一是進(jìn)行更多的數(shù)據(jù)測(cè)試和對(duì)比。本文中的數(shù)據(jù)量可以擴(kuò)展到多個(gè)代表貝位,時(shí)間跨度可以使用多個(gè)月的數(shù)據(jù)。二是對(duì)相關(guān)參數(shù)設(shè)計(jì)進(jìn)行優(yōu)化。在本文中的相關(guān)參數(shù)是根據(jù)經(jīng)驗(yàn)直接確定的,因此可能會(huì)有其他一些有影響的參數(shù)也可以加入到?jīng)Q策公式中,使結(jié)果更優(yōu)。