劉永富,陳永生
(同濟(jì)大學(xué) 電子與信息工程學(xué)院,上海 200331)
當(dāng)今社會飛速發(fā)展,城市軌道交通已經(jīng)成為都市生活密不可分的部分。作為一種安全、可靠、清潔、快捷的公共交通運(yùn)輸方式,其為解決我國人口密集的大城市日益嚴(yán)重的交通擁擠問題的重要手段之一。至2010年底,上海已經(jīng)投入運(yùn)營 12條線。其中新投入的 6、7、8、9、11號線均采用基于通信的信號系統(tǒng)(CBTC),如此便會產(chǎn)生大量的日志數(shù)據(jù)。為了使維護(hù)人員能從維修層面,根據(jù)日志中所記載錯誤,快速對系統(tǒng)故障定位,繼而對設(shè)備進(jìn)行相關(guān)修理,本文利用數(shù)據(jù)挖掘技術(shù)對日志進(jìn)行關(guān)聯(lián)分析并根據(jù)關(guān)聯(lián)法則,增加錯誤診斷準(zhǔn)確性,以防微杜漸,避免釀成事故。
日志分析系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)思路:以日志資源庫為基石,以分析平臺為運(yùn)行支撐,以關(guān)聯(lián)分析功能為中心,建立系統(tǒng)架構(gòu),并在此系統(tǒng)架構(gòu)的支持下開發(fā)軟件。
關(guān)于關(guān)聯(lián)算法的設(shè)計(jì),選擇目前比較成熟的Apriori算法并加以改進(jìn)。
Apriori算法是一種挖掘布爾關(guān)聯(lián)規(guī)則頻繁項(xiàng)集的算法。它利用頻繁項(xiàng)集性質(zhì),用逐層搜索的迭代方法來找出所有的頻繁項(xiàng)集。首先,找出頻繁1-項(xiàng)集的集合,該集合記作L1。L1用于找頻繁2-項(xiàng)集的集合 L2,而L2用于找L3,如此下去,直到不能找到頻繁k-項(xiàng)集為止。在第 k次循環(huán)中,先產(chǎn)生候選 k項(xiàng)集的集合 Ck,Ck的項(xiàng)集是用來產(chǎn)生頻繁項(xiàng)集的候選集。Ck中的每個元素在數(shù)據(jù)庫中根據(jù)支持度計(jì)數(shù)進(jìn)行驗(yàn)證,決定是否加入Lk[1-2]。
設(shè)有初始項(xiàng)目集 L, 包含 Zk(k=1~t),Zk=(z1,z2,z3,……),標(biāo)志 TID(1~t),設(shè) min_sup=a%,(即出現(xiàn)次數(shù)不少于 b次,b=a%×t)。設(shè)置 K為項(xiàng)目的元素?cái)?shù) (舉例見表1),算法如下:
(1)重建事務(wù)集數(shù)據(jù)庫:搜索包含 z1(單個item)的出現(xiàn)次數(shù),生成u1; 搜索包含z2的出現(xiàn)次數(shù),生成 u2; 以此類推,生成 un。
(2)在U中去掉出現(xiàn)次數(shù)少于b的項(xiàng),簡化數(shù)據(jù)庫(存在臨時表中)。
(3)計(jì)算 u1∪u2,如交集中項(xiàng)數(shù)少于 b則舍去,大于b則儲存為新的集合。 同理計(jì)算 u1∪u3,u1∪u4,…,u1∪un,u2∪u3,…,un-1∪un。 新生成的頻繁 2項(xiàng)集合表示為 Ln。
(4)計(jì)算 L1∪L2???L2中第一個 item是否存在于 L1中:若存在,忽略;若不存在,則將此item與L1組成三項(xiàng)集,如交集中項(xiàng)數(shù)少于b則舍去,大于b則儲存,并儲存與之相應(yīng)的項(xiàng)目集。同理類似處理 L1∪L3,L1∪L4,……L1∪Ln,L2∪L3……Ln-1∪Ln。 整理結(jié) 果 ,去 掉重復(fù) 的 項(xiàng) 目集,得到頻繁三項(xiàng)集。
(5)重復(fù)上述步驟,得到頻繁k項(xiàng)集。
在求解頻繁k+1項(xiàng)集的時候,若其不在長度為k的頻繁項(xiàng)集之間時,則必然不在長度為k+1-頻繁項(xiàng)集之中,而任意一個k-項(xiàng)集的支持度與規(guī)模小于它的事務(wù)無關(guān),故可以直接舍去,從而減少掃描的數(shù)據(jù)量。因此可以在遍歷事務(wù)集時先遍歷長度為k的頻繁項(xiàng)集,若存在,再遍歷事務(wù)表。在隨后的過程中,及時刪除其中不可能出現(xiàn)在候選項(xiàng)集中的記錄,即字段長度不大于將要生成的k-頻繁項(xiàng)集k值,而且也不被包含在頻繁項(xiàng)集中的記錄。
改進(jìn)算法通過先遍歷長度為k的頻繁項(xiàng)集,減少訪問事務(wù)表中的無效記錄,從而使訪問次數(shù)減少而提高了運(yùn)行效率。
(1)初始事務(wù)表 ,取 min_sup=50%(=2),初始項(xiàng)目集表如表1所示。(2)項(xiàng)目集 Z5={1,2,3,4,5}經(jīng)過變換,如表 2 所示。項(xiàng)目4去掉。表2中為新得到的頻繁一項(xiàng)集,將這些數(shù)據(jù)插入到臨時表Temp中。
表1 初始項(xiàng)目集表
表2 Z5={1,2,3,4,5}經(jīng)過變換
表3 二項(xiàng)集
表4 三項(xiàng)集
(3)從 Temp表中得到 K值為1的事務(wù)集,根據(jù)算法敘述生成二項(xiàng)集,如表3所示。
根據(jù)支持度值,將事務(wù)集1 2、1 5去掉,得到頻繁二項(xiàng)集,將這些數(shù)據(jù)插入到臨時表Temp中。
(4)求出頻繁三項(xiàng)集
從Temp表中得到K值為2的事務(wù)集,根據(jù)算法敘述生成三項(xiàng)集,如表4所示。
根據(jù)支持度值,將事務(wù)集1 2 3、1 3 5 去掉得到頻繁三項(xiàng)集,將這些數(shù)據(jù)插入到臨時表Temp中。
(5)使用類似的方法可以求出頻繁K項(xiàng)集。
Alcatel-Thales CBTC信號系統(tǒng)中實(shí)現(xiàn)聯(lián)鎖功能的設(shè)備稱為 PMI,完整 CBTC調(diào)試完成后 PMI將屬于 ZC(區(qū)域控制器)的一部分,仍然實(shí)現(xiàn)聯(lián)鎖功能。主要組成:計(jì)算機(jī)聯(lián)鎖模塊 (MEI),看門狗機(jī)架 (CDG),通信模塊(SCOM)和維護(hù)輔助系統(tǒng)(SAM)。
ZC-PMI聯(lián)鎖結(jié)構(gòu)如圖1所示。
圖1 ZC-PMI聯(lián)鎖結(jié)構(gòu)
PMI接收到ATS的進(jìn)路請求/進(jìn)路取消命令,排列/取消進(jìn)路。PMI會按進(jìn)路定義中的順序預(yù)留進(jìn)路元素。如果收到的進(jìn)路有區(qū)域重疊,PMI按接收的順序排列重疊區(qū)域的進(jìn)路。一旦進(jìn)路使用完畢,PMI就會逐段解鎖進(jìn)路。PMI不會激活敵對進(jìn)路(反向進(jìn)路、交叉進(jìn)路)。數(shù)據(jù)庫中含有一個敵對進(jìn)路表,PMI通過檢查該表來確保從ATS“進(jìn)路請求”命令中接收到的進(jìn)路,不會與現(xiàn)有的已排列進(jìn)路相沖突。PMI通過ATS的“道岔動作”或“進(jìn)路請求”命令接收道岔動作請求。如果道岔已經(jīng)移動,那么PMI就拒絕ATS的道岔動作請求。PMI會評估道岔動作規(guī)則從而決定請求的道岔是否可以動作。如果道岔是故障的,那么PMI會拒絕道岔動作請求[3]。
PMI采用2*2取1的工作方式,如此每天便會產(chǎn)生大量的日志記錄,其中包括正常工作信息以及出錯信息?,F(xiàn)主要對報(bào)錯、警告信息進(jìn)行相關(guān)分析研究。PMI日志格式如圖2所示。
(1)日期時間:該記錄產(chǎn)生時間;
(2)行號:該記錄唯一標(biāo)識;
圖2 PMI日志格式
(3)信息類型:A(報(bào)警或意見)、C(故障診斷或指示器)、E(消息發(fā)送)、P(狀態(tài)圖轉(zhuǎn)變)等;
(4)錯誤關(guān)鍵字:表示該記錄具體錯誤,例如:TAZ、COMP、DISPO 等;
(5)報(bào)警參數(shù):表示該記錄產(chǎn)生的具體位置[2]。
將系統(tǒng)重啟一次表示為一個事務(wù),日志中會記錄該次重啟的原因。重啟可能有多個錯誤,這就有必要分析其關(guān)聯(lián)性,從而做到防微杜漸。
分析步驟如下:
(1)建立如表5所示的ItemDB表,用于存儲事務(wù)集;
表5 ItemDB表結(jié)構(gòu)
(2)建立如表6所示的Temp表,用于存儲頻繁項(xiàng)目集;
(3)遍歷日志,根據(jù)錯誤關(guān)鍵字進(jìn)行文字匹配,將所有錯誤存入到ItemDB中作為事務(wù)集;
(4)利用關(guān)聯(lián)規(guī)則對事務(wù)集進(jìn)行分析,得出錯誤之間的關(guān)聯(lián)性;
表6 Temp表結(jié)構(gòu)
(5)分析關(guān)聯(lián)性,得出終結(jié)。
該系統(tǒng)主要完成了對PMI日志的研究,同時利用關(guān)聯(lián)規(guī)則進(jìn)行了相關(guān)分析。借于此,對地鐵維護(hù)、檢修人員有如下好處:(1)快速對系統(tǒng)故障定位,修理相關(guān)設(shè)備;(2)增加錯誤診斷準(zhǔn)確性,減少沒有必要的排查;(3)若錯誤A與錯誤B關(guān)聯(lián),則A發(fā)生的情況下,須預(yù)防B發(fā)生,做到防微杜漸,避免釀成事故。
[1]朱輝生.關(guān)聯(lián)規(guī)則挖掘的兩種改進(jìn)算法[J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(8):117-119.
[2]毛國君,段立娟.數(shù)據(jù)挖掘原理與算法[M].北京:清華大學(xué)出版社,2005.
[3]曹錦磊.簡析地鐵PMI系統(tǒng)[EB/OL].2009-8.
[4]法國THALES集團(tuán).PMI維護(hù)與安裝技術(shù)文檔[Z].2010.
[5]Judith Bishop.C#3.0 Design Patterns[M].O′Reilly Media,Inc.2007.