曹 雷,孫 詠,焦艷菲,王 嵩,李冬梅
1(中國科學院大學,北京 100049)
2(中國科學院 沈陽計算技術研究所,沈陽 110168)
3(沈陽高精數控智能技術股份有限公司,沈陽 110168)
自動化立體倉庫最早起源于第二次世界大戰之后,美國最初開始研究建設一種橋式堆垛起重機.隨著世界經濟的發展,經歷了巷道式堆垛起重機立體倉庫,自動化立體高架倉庫等階段.自動化立體倉庫又稱自動存取系統、智能倉儲.它集成了運輸機、高層貨架、巷道堆垛機、倉庫控制系統和倉庫管理系統等多個部分.國內外早期大部分的研究圍繞在自動化的設計、控制等領域,對自動化立體倉庫中應用的關鍵硬件和相關技術的研究,如基于C/S、B/S 架構的計算機信息管理系統[1],如控制系統設計中可編程邏輯控制器PLC(Programmable Logic Controller)的運用[2],隨著世界經濟快速發展,客戶對倉儲技術提出了更高的需求,原有的靜態技術不符合新時代市場的需求,自動化立體倉庫的研究開始與數據和智能相結合,向開發新模型、新算法的方向發展.如采用改進遺傳算法,模擬退火算法,蟻群算法等對AGV (Automated Guided Vehicle,自動導向小車)路徑進行規劃研究,使得AGV 選擇更高效的路徑[3].文獻[4]從效率或故障率方面入手研究,對貨位動態分配進行建模,對環形軌道穿梭車調度問題提出了一種基于規則的遺傳算法,達到了優化調度結果、提高運算效率的目的.文獻[5]對堆垛機故障風險的存儲策略和模型進行了研究,以x卷煙物流配送中心倉庫系統為研究對象,引入了一種將同種煙卷分散存儲到不同巷道中的存儲策略,從而降低巷道式堆垛機可能引發的故障問題.
本文以實驗室具體項目為背景,闡述了該系統的整體系統結構、各子系統結構和功能及主要部分的設計.不同于大多數研究關注于調度優化或存儲策略角度,本文將Apriori 算法應用于出入庫數據挖掘,找出故障率與倉庫出入庫物料之間的聯系,在保證倉庫庫存的情況下,提出更科學的進出入庫指導性建議,以期獲得更低的設備故障率,最大化企業收益率.
Apriori 是一種關聯規則算法,從已有的數據集中挖掘有關聯關系的數據項,企業可以參考這些關聯數據集制定決策.Apriori 算法在大數據集上以連接的方式產生候選項,并同步計算出支持度,通過剪枝得到關聯度高的頻繁項集.
頻繁項集有3 個標準:支持度,置信度和提升度.
支持度:有關聯關系的數據出現的次數與總數據數量的比,即事件同時出現的概率.假設存在數據X,Y,則對應的支持度為:

置信度:某個數據出現的條件下,另一個數據也出現的概率.假設數據X和Y,則X對Y的置信度為:

舉例說明:存在一組數據,出庫X物料對故障的置信度為30%,支持度為2%.則意味著在出庫數據中總共有2%的數據記錄滿足出庫X物料時發生故障;發生故障的記錄中,有30%是因為出庫X物料.
提升度:在事件Y發生的條件下,發生事件X的概率,與事件X發生的概率的比值.

提升度體現事件間的關聯關系,當提升度大于1時表示事件之間具有強關聯關系.當X和Y獨立時,提升度Lift(X<=Y)=1,有P(X|Y)=P(X).
Apriori 算法旨在找出最大的k項存在關聯關系的頻繁集.以支持度作為標準.通過迭代,先找出候選1 項集和它的支持度,剪枝去掉不符合要求的候選1 項集,得到頻繁1 項集.對新的頻繁1 項集進行連接,得到候選2 項集,繼續剪枝得到頻繁2 項集.循環迭代直到找到頻繁k+1 項集.最后的頻繁k項集即是最后結果.假設事務集數據庫M詳細內容如圖1所示,最小支持度為50%,則計算過程如圖2所示.

圖1 事務集數據庫M

圖2 Apriori 算法挖掘過程圖

?算法1.Apriori 算法輸入:事務數據集合M,支持度α.輸出:最大的頻繁k 項集.1) 掃描數據集,對1 項候選集C1 剪枝去掉小于閾值的項集,得到1 項頻繁集L1;2) 對L1 自連接,得到候選集C2,剪枝去掉小于閾值的項,得到2 項集L2;3) L2 與L1 連接得到3 項集C3,剪枝去掉小于閾值的項,得到3 項集L3;4) 循環重復前3 步,得到最大頻繁項級Lk.
本系統基于Microsoft.Net 平臺,采用面向對象語言程序設計,在IBatics.Net 標準框架的基礎上進行了重構和擴展,采用客戶端/服務器端結構,利用WPF(Windows Presentation Foundation,基于Windows 的用戶界面框架)技術實現客戶端與服務端的信息交互,保證信息傳遞的安全、穩定和效率;采用關聯規則數據挖掘Apriori 算法,對出庫信息進行挖掘,提供科學的出入庫生產建議;同時根據企業定制化需求能夠與移動設備、射頻識別RFID (Radio Frequency IDentification)[6,7]、電子標簽、自動導航小車AGV、條碼等其他先進的設備集成,實現更加人性化、可視化的操作平臺.總體框架如圖3所示.
結合圖3、圖4,系統中碼垛機器人負責抓取滾筒傳送帶上指定位的箱(產品貨物)放置到托盤上,由堆垛機負責搬運托盤及產品放置于指定貨架上.服務器端集成了信息管理系統和監控調度系統,在監控調度界面實時顯示當前堆垛機運行位置(圖形化展示),運行故障以及設備故障等情況(表格化展示),配備打印機以打印相關信息.手持終端系統作為客戶端,與服務器端信息管理系統對接,支持RFID、條碼標簽.采用Web service 調用方式[8,9],大量的復雜的業務處理都由服務器端遠程完成.滿足了物料傳輸系統實時信息相應的要求.操作界面設計簡潔明確,操作方便;對無線網絡終端的連接實施有效管理,提高系統的安全性.

圖3 總體框架圖

圖4 倉庫管理系統服務器開發框架
服務器端集成信息管理系統,監控調度系統以及數據挖掘模塊.主要實現基礎信息維護,可視化的實時監控調度界面,以及表格化展示的業務狀態,設備狀態,是否故障等.客戶端部署在手持終端上,負責數據采集,進出入庫、盤點等主要業務指令發布.
信息管理系統包括的功能如圖5所示.實現基礎信息維護,儲位管理,托盤管理,編碼管理,查詢統計等功能[10,11].庫房業務界面在手持終端實現,相關邏輯業務由手持終端傳遞數據到服務器端后臺完成.
基礎信息管理:包括用戶管理、角色管理、權限管理、部門設置以及計量單位、包裝關系設置等功能.
儲位管理:包括庫房、庫區、庫位、庫型存儲內容、出入庫作業形式以及儲存規則等的設置.
托盤管理:實現庫存用托盤及貨品承載物的標簽管理,托盤信息導入,托盤的使用和回收管理.
編碼管理:包括公司部門等組織編碼,人員編碼,物料編碼,設備編碼等.
查詢統計:支持訂單號查詢,箱碼查詢,執行業務查詢,業務數據查詢,產品信息追溯等功能.
主要包括側視圖和俯視圖.以可視化二維平面模型實時顯示.以及相關的作業調度執行單,設備故障顯示等.如圖6所示.

圖5 信息管理系統功能結構圖

圖6 服務器端監控調度界面圖
圖6中,左上部分為俯視圖,右上為側視圖.其中小車代表搬運物料的堆垛機,橙色箱子表示立體架.左下和右下部分分別是作業調度執行模塊和設備故障情況模塊,實時顯示當前執行的進出庫作業和故障情況等.若系統正常運行,則設備故障情況模塊不顯示任何故障.
手持終端包括賬號管理,零頭入庫,托盤入庫,查詢,調配單等模塊,結構功能圖如圖7所示.
賬號管理:擁有手持終端上的賬號登陸,角色管理,異常處理等功能.
零頭入庫:手持終端通過掃描箱碼和托盤標簽碼,實現一對多的綁定關系后,將數據傳輸給服務器端,服務器端再傳遞給監控調度系統并更新數據庫數據.
托盤入庫:通過掃描托盤標簽進行托盤入庫業務.
查詢:可在主界面掃碼查詢,包括箱碼和托盤標簽碼,也可在單獨的查詢界面通過輸入指定的訂單號查詢指定調配單.
調配單:所有的出庫作業及查詢盤點作業均以調配單為基礎單位.
企業生產產品時,往往需要同時啟動多條產品線,同時生產多種不同類的產品,由于市場需求隨時可能發生變化,根據當前訂單和往期銷售記錄等預估下一步生產計劃,適當保持當前倉庫庫存很有必要.本模塊通過調用R 語言中的arulesViz 包實現Apriori 算法,以出庫記錄為主要研究對象,以期找出出庫對象和故障之間的聯系,包括庫存不足,設備損壞和其他故障.

圖7 手持終端功能結構
原始數據為某企業2019年物料出庫記錄.對原始數據進行預處理,保留出庫物料編號和訂單號.關聯規則是尋找同一出庫單中同時發生故障的物料.這里選擇CK2019 出庫訂單表中物料編號和出庫單編號兩個字段,在RGui 建模軟件中加載該數據,主要代碼為:
Library(xlsx) #加載
Workbook<-“C:/CK2019.xlsx” #讀取數據
Mydata<-read.xlsx(workbook,1)
安裝加載完arulesViz 包后,將加載進的數據轉化為標準格式,通過attribute 函數展示.形成物料編號總數*出庫單號總數的交易矩陣.
設定支持度進行挖掘,相關代碼如下:
Library(arules)
Data<-as(split(mydata$qc,mydata),”transactions”)
Attributes(data)
Rules<-apriori(data,parameter=list (minlen=2,support=0.23,confidence=0.5))
經過多次試驗,最終設定支持度為0.26,置信度為0.8.挖掘結果見圖8.
圖8中,強關聯規則表示相關聯的兩個項集同時出現,支持度表示同時出現的概率.設置支持度為0.26 以便篩選0.26 以上的支持度.置信度表示在所有的數據中,在前一個項集出現的條件下,后一個項集也出現的概率.以第3 行為例,編號為142582100 的物料和編號為142582000 的物料在出庫時同時發生故障的概率為31%.根據編號找到對應的物料名稱,發現一套產品中每個142582100 物料對應4 個142582000 物料,引發后者出庫數量不足故障,在大幅度按比例提升142582000 的生產計劃后,該項故障率由原來的31%降至0%.

圖8 挖掘結果
該系統已在D 公司正式運轉,取代了傳統老式人工紙筆記錄及人力搬運物料的作業形式.采用無線掃描技術,信息化管理,自動化出入庫作業后,大大減少倉庫物流環節所需的人力成本,提高了查詢盤點錄入相關的效率、準確率.進一步減小了人工操作可能存在的潛在隱患.其特有的關聯數據挖掘模塊,經實際運行挖掘分析后,采取對應措施,有效降低了系統整體故障率(包括庫存不足等故障),具有十分可觀的市場應用.
交付試運行期間,存在一些局部故障,需要斷開系統,由人工進行干預,系統整體穩定性有待進一步提升.本系統在傳統人工倉儲管理的模式上,極大精簡了人力,提升了管理與作業的效率,但尚達不到全系統自動化,處處需要人工參與監督,在這方面有待進一步提升.