周佳慧
[摘 要] 隨著商品經(jīng)濟的發(fā)展,海量的商品種類和訂單數(shù)量使得傳統(tǒng)的倉儲設(shè)施無法滿足發(fā)展的需要。通過利用Apriori算法挖掘以往銷售訂單中的頻繁項集,并根據(jù)頻繁項集的結(jié)果對商品進行分組,之后排除已經(jīng)在商品組中的商品,通過不斷地降低支持度閾值對剩下訂單中的商品進行挖掘,直到大部分的商品均分配到商品組中,將剩余的商品根據(jù)銷量來分配商品組,這樣大部分商品組中的商品都是經(jīng)常在同一訂單中出現(xiàn)的。再將這些商品組分配到貨架上,從而在揀選的過程中減少貨架搬運數(shù)量,提高揀選效率,降低揀選成本。
[關(guān)鍵詞] Apriori算法;頻繁項集;貨位優(yōu)化
[中圖分類號] F740[文獻標識碼] A[文章編號] 1009-6043(2019)08-0118-02
一、引言
近年來,國內(nèi)外學者加大了對倉儲活動的研究,但是很多研究都集中在自動化立體庫方面,自動化立體庫雖然能大大的提高倉儲作業(yè)效率,但是基礎(chǔ)設(shè)施成本高,對操作人員的技術(shù)要求也較高,不能滿足我國中小倉儲企業(yè)的發(fā)展需要。目前,移動貨架與自動導引運輸車(AGV)結(jié)合應用既實現(xiàn)了存取自動化,操作簡便,又對技術(shù)的要求相對較低,資金投入少,系統(tǒng)柔性好,能隨時的增減移動貨架和AGV小車的數(shù)量,因此,移動貨架是未來貨架發(fā)展應用的一個方向。倉庫管理除了對基礎(chǔ)設(shè)備的改造升級以外,還要對基礎(chǔ)的倉儲活動進行優(yōu)化,以往的研究表明,對于倉儲的管理訂單揀選作業(yè)的成本占倉庫總運營成本的50%-75%[1],提高揀選作業(yè)的方法包括優(yōu)化揀選路徑,訂單的批處理,分區(qū)倉庫,存儲位置優(yōu)化,其中,存儲位置優(yōu)化對提高訂單揀選效率的影響性較大。
二、貨位優(yōu)化問題描述及分析
在傳統(tǒng)的貨架貨位優(yōu)化中,其揀選活動是基于“人到貨”的揀選活動,貨架的位置是固定的,人在倉庫中行走,從而完成揀選活動。因此,傳統(tǒng)的貨架位置優(yōu)化就是希望所揀選的商品存儲在距離揀選臺近的地方或者在揀選人員到達某一貨架位置時,能揀選完訂單中的多種商品,從而減少行走路程,節(jié)約揀選時間。移動貨架是基于“貨到人”的揀選模式,在揀選的過程中機器人搬運貨架到達揀選臺,揀選人員在揀選臺等著貨架到來,并完成揀選活動。為了提高揀選效率,我們往往希望搬運一個貨架而完成多種商品的揀選,這樣,就能在完成一批訂單的揀選時,機器人可以搬運的貨架數(shù)量更少,從而提高揀選效率,降低企業(yè)成本。為了滿足這樣的揀選需求,對貨位進行優(yōu)化時,我們將考慮商品分組策略,并根據(jù)以往的銷售訂單,利用Apriori算法對訂單進行挖掘,找到經(jīng)常在同一訂單中出現(xiàn)的商品,并將這些商品分配到商品組中,最后將每個商品組安排到一個貨架上。對于那些沒有被挖掘出的商品,我們將不斷的降低支持度閾值,對其進行多次挖掘。對于那些在支持度閾值較低的情況下也沒有被挖掘出的商品,我們將根據(jù)其銷量進行商品分組,這樣的商品分組就盡可能的將出現(xiàn)在同一訂單的商品分配到同一商品組中,最終分配到同一個貨架上。
三、頻繁項集與Apriori算法
項集指的是若干個項的集合,頻繁項集是指支持度大于等于最小支持度的集合。其中支持度指的是某個集合在所有事務(wù)中出現(xiàn)的頻率。頻繁項集挖掘是數(shù)據(jù)挖掘中的一個很重要的研究基礎(chǔ),它可以告訴我們數(shù)據(jù)集中經(jīng)常出現(xiàn)的量,并為我們的決策提供支持[2]。本研究將采用Apriori算法,挖掘歷史訂單中頻繁項集的方法,對歷史訂單的數(shù)據(jù)進行分析。
1994年IBM Almaden Research Center的Agrawal[3]提出Apriori算法。Apriori算法在發(fā)現(xiàn)頻繁項集與關(guān)聯(lián)規(guī)則中具有顯著的歷史地位。Apriori算法通過逐層搜索迭的方式來尋找頻繁項集,即由頻繁k項集產(chǎn)生頻繁k+1項集,該過程也被稱為連接與剪枝。Apriori算法中的先驗性質(zhì)即頻繁項集的所有非空子集也一定是頻繁的,該性質(zhì)能大大的壓縮搜索空間,提高搜索效率。產(chǎn)生頻繁項集的步驟如下:
(1)給定支持度閾值。
(2)掃描數(shù)據(jù)庫,產(chǎn)生滿足最小支持度的頻繁一項集。
(3)由頻繁一項集經(jīng)過連接產(chǎn)生候選項集,根據(jù)支持度閾值進行剪枝,再根據(jù)先驗性質(zhì)產(chǎn)生頻繁二項集。
(4)重復(2)、(3)過程,直至產(chǎn)生所有的頻繁項集。
四、商品分類與貨位指派
以往的研究表明,人們對不同的商品需求程度是不同的,像生活必需品,我們是需要定期購買的,而像紅酒,對于那些不喜歡喝酒的人來講,他們可能永遠不會購買紅酒。因此,除了剛剛已經(jīng)分配到商品組中的商品以外,仍有大部分的商品在商品組之外,我們還需要將這部分商品很好的分配到商品組中,為了使在同一商品組中的商品是經(jīng)常在一起出現(xiàn)的,因此,我們將不斷地降低支持度,對訂單進行挖掘,直到支持度已經(jīng)非常非常小時則停止挖掘,之后,將不在商品組中的商品根據(jù)銷量進行分組,直到所有的商品已經(jīng)都分配到商品組中。具體的實施步驟如下:
(1)設(shè)置最大的支持度閾值,對訂單中的商品進行挖掘。
(2)根據(jù)支持度對頻繁項集進行排序,之后考慮最高維度的項集數(shù)和貨架貨位數(shù)對商品進行分組。
(3)排除已經(jīng)分組的商品,更新數(shù)據(jù)庫。降低支持度閾值,對剩下的商品進行挖掘。
(4)根據(jù)支持度對頻繁項集進行排序。如果此時最高維度項集內(nèi)的商品種類與已有商品組中商品的種類之和小于等于貨架貨位數(shù),則將該頻繁項集中的商品分配到已有商品組中,否則,該頻繁項集中的商品為一個商品組。
(5)重復(3)、(4)過程,直到所有的商品都獲得分組。
通過挖掘訂單中的頻繁項集,先將一部商品根據(jù)頻繁項集的結(jié)果形成商品組,之后不斷地降低支持度閾值將剩余的商品也形成商品組。該方法能最大程度的將同時出現(xiàn)在一個訂單中的商品分配到同一個商品組里。我們將商品組指派到空貨架上,每個商品組將對應一個貨架編號。
五、實證與分析
我們選取了某電商三月份的銷售訂單數(shù)據(jù),原始數(shù)據(jù)包含了揀選訂單號、發(fā)貨訂單號、訂單產(chǎn)生時間、商品編碼、商品數(shù)量等,我們對原始數(shù)據(jù)進行處理并選取發(fā)貨單號、商品編碼、商品數(shù)量三類信息,統(tǒng)計發(fā)現(xiàn)該電商三月份數(shù)據(jù)中一共有82147個訂單,包含了160種商品。
在利用Apriori算法對數(shù)據(jù)進行挖掘之前,我們要對貨位優(yōu)化過程進行一定的假設(shè):
(1)布局已經(jīng)確立,空貨架已經(jīng)擺放在倉庫中。
(2)忽略貨物的規(guī)格、尺寸。
(3)存在一種商品存儲在多個貨架的情況。
(4)只考慮項集維度小于等于貨架貨位數(shù)的頻繁項集。
(5)假設(shè)每個貨架最多存放六種商品。
為了能更好的挖掘頻繁項集,我們先設(shè)置不同的支持度閾值進行挖掘探索。開始時我們將支持度閾值設(shè)置為0.35,由于此時的支持度閾值較高,只能挖掘到頻繁二項集,所以,應降低支持度閾值。我們將支持度閾值分別設(shè)置為0.3、0.25,發(fā)現(xiàn)當支持度閾值分別為0.3、0.25時,他們的挖掘結(jié)果與第一次挖掘結(jié)果一致。接下來,我們分別將支持度閾值設(shè)置為0.2、0.15、0.10、0.05、0.01,我們發(fā)現(xiàn)當支持度閾值為0.2時,最多挖掘到頻繁四項集;當支持度閾值設(shè)置為0.15、0.10時,可以挖掘到頻繁五項集,二者的挖掘結(jié)果一致;當支持度閾值設(shè)置為0.05時,可以挖掘到頻繁六項集;當支持度閾值設(shè)置為0.01時,可以挖掘到頻繁八項集。由于貨架最多可以存儲6種商品,因此,我們尋找頻繁六項集對應的支持度閾值。從以上的探索挖掘過程就可以發(fā)現(xiàn),當支持度閾值為0.05、0.01時,都可以挖掘到頻繁六項集,但當支持度閾值為0.01時,頻繁六項集出現(xiàn)的數(shù)量較多,所以,我們從支持度閾值為0.01開始進行挖掘,并將每個頻繁項集形成一個商品組,并從系統(tǒng)數(shù)據(jù)中剔除已經(jīng)在商品組的商品數(shù)據(jù)。
接下來,將支持度閾值設(shè)置為0.05,可以挖掘到兩個頻繁三項集,由于第一次挖掘中,項集維度都是六,因此,已經(jīng)存在商品的商品組無法加入新的商品。將兩個頻繁三項集合并成一個商品組,當兩個頻繁項集中存在相同種類的商品時,這就說明這種商品需求量較大,因此,將該種商品視為兩種。將支持度閾值設(shè)置為0.001進行第三次挖掘,最多可以挖掘到頻繁五項集,頻繁項集的數(shù)量為一個。由于前面的商品組的已經(jīng)沒有空位,因此,將頻繁五項集形成一個新的商品組。由于剔除掉一些商品,有的訂單可能不存在了,當支持度閾值設(shè)置為0.001時,依次可以挖掘到頻繁三項集。從第四次挖掘開始,我們分別將支持度閾值設(shè)置為0.001、0.001、0.001、0.0005、0.0001,一共進行了八次挖掘,此時的支持度閾值設(shè)置已經(jīng)非常低,但仍有49種商品未被挖掘出來,根據(jù)支持度、訂單數(shù)量,我們便可以知道這些商品在訂單中出現(xiàn)的次數(shù)小于9,屬于不經(jīng)常在訂單中出現(xiàn)的商品,因此,我們根據(jù)他們的銷量,將他們分配到商品組中,但觀察他們的具體銷售量時,發(fā)現(xiàn)每個訂單的購買量非常大,所以,我們考慮一個商品組只存在一種商品,但放置的數(shù)量非常多。
根據(jù)挖掘的結(jié)果,我們將160種商品分配到了62個商品組里,并依次將該商品組分配到貨架上。
六、結(jié)論
通過對歷史訂單進行挖掘分析,我們將經(jīng)常購買的商品分到一個商品組里,最后放置到一個貨架上,這樣就能在揀選的過程中通過搬運一個貨架而完成多種商品的揀選,從而大大提高揀選效率,降低揀選成本,這對于企業(yè)的長久發(fā)展具有十分重要的意義。
[參考文獻]
[1]梁博.倉儲作業(yè)動態(tài)貨位優(yōu)化技術(shù)研究與應用[D].東華大學,2017.
[2]陳少總.基于Spark的分布式頻繁項集挖掘算法研究[D].東華大學,2017.
[3]Nils Boysen, Konrad Stephan.The deterministic product location problem under a pick-by-order policy[J]. Discrete Applied Mathematics,2013,78161(18):2862-2875.
[責任編輯:潘洪志]