王瑋 嚴(yán)文濤 蘇琦 劉蔭 于展鵬 殷齊林 趙憲佳 孫更新
摘要: 為快速準(zhǔn)確地提取和挖掘信息系統(tǒng)運維服務(wù)過程中的關(guān)鍵咨詢問題,本文利用分布式技術(shù),基于Hadoop的客服運維文本聚類算法,對海量文本數(shù)據(jù)進行聚類研究。給出了基于Hadoop的運維數(shù)據(jù)分布式并行計算模型,并在Hadoop框架中對系統(tǒng)中所有運維數(shù)據(jù)進行分析處理。同時,給出了分布式文本聚類算法,并以10萬余條電力信息系統(tǒng)運維數(shù)據(jù)為數(shù)據(jù)源,對設(shè)計的分布式聚類算法和傳統(tǒng)聚類算法進行分析對比。實驗結(jié)果表明,本文設(shè)計的分布式聚類算法所需時間低于傳統(tǒng)聚類算法,不僅解決了傳統(tǒng)聚類算法在處理海量數(shù)據(jù)方面由于數(shù)據(jù)規(guī)模過大引起的速度慢、效率低的問題,而且還借助大數(shù)據(jù)中蘊含的價值和動力,提升了企業(yè)運維服務(wù)水平。該研究具有較高的實用價值和理論意義。
關(guān)鍵詞: 聚類算法; 數(shù)據(jù)挖掘; 大數(shù)據(jù)分析; Hadoop; 客服運維
中圖分類號: TP311.13文獻標(biāo)識碼: A
收稿日期: 20170518; 修回日期: 20170828
作者簡介: 王瑋(1970),女,漢族,山東濟南人,碩士,高級工程師,主要研究方向為企業(yè)信息化應(yīng)用。Email: zhaoxj@jacore.com在信息系統(tǒng)運維服務(wù)過程中,及時解決用戶問題成為企業(yè)提升服務(wù)質(zhì)量的關(guān)鍵。當(dāng)用戶進行咨詢時,能否及時解決問題會對用戶滿意度產(chǎn)生巨大影響。但用戶咨詢的問題涉及面廣且重復(fù),因此要達到用戶滿意則需配置數(shù)量較多的運維人員,不利于企業(yè)降低運行成本。大部分運維服務(wù)信息都是以文本信息的形式存在,對咨詢的關(guān)鍵問題進行內(nèi)容提取和挖掘,并對運維信息進行精確、快速的處理,從分析處理結(jié)果中獲取有用的信息成為運維信息知識發(fā)現(xiàn)領(lǐng)域急需解決的核心問題。利用分布式計算技術(shù)和文本聚類技術(shù),通過并行數(shù)據(jù)挖掘的方法對大量的運維數(shù)據(jù)進行計算,這是解決該問題的必要途徑。海量運維客服數(shù)據(jù)中包含很多用戶重復(fù)咨詢的問題,利用數(shù)據(jù)挖掘方法對關(guān)鍵咨詢的問題進行內(nèi)容提取,識別出關(guān)鍵信息,自動統(tǒng)計用戶常見問題及熱點問題,自動編寫專門的培訓(xùn)資料并更新知識庫,用以支撐決策及業(yè)務(wù)的智能化運轉(zhuǎn),為用戶提供個性化的運維服務(wù)和針對性的知識培訓(xùn),以便提高信息系統(tǒng)運維水平及效率,從而實現(xiàn)以用戶為中心,多維度了解用戶,實現(xiàn)數(shù)據(jù)化管理,借助大數(shù)據(jù)中蘊含的價值和動力促進公司服務(wù)水平不斷提升。在數(shù)據(jù)挖掘的技術(shù)領(lǐng)域中,文本聚類是重要的技術(shù),無監(jiān)督的機器學(xué)習(xí)[1]是文本聚類技術(shù)的重要特點,一般流程是首先將文本進行數(shù)據(jù)化預(yù)處理,然后通過相似度的計算方法對數(shù)據(jù)進行處理,最后得出聚類結(jié)果。本文以分析聚類的基本原理為依據(jù),在大量運維數(shù)據(jù)分析過程中對現(xiàn)有聚類方法的優(yōu)點和缺點進行總結(jié),在此基礎(chǔ)上,把分布式計算機技術(shù)應(yīng)用到數(shù)據(jù)挖掘領(lǐng)域中,提出了文本聚類算法的分布式計算方法的應(yīng)用。針對傳統(tǒng)聚類算法中大量數(shù)據(jù)的稀疏和高維兩方面不足所導(dǎo)致的問題,文本聚類算法中的分布式計算采取了有效的解決方法,提升了算法執(zhí)行的速度和分析效率。該研究具有較高的實際應(yīng)用價值。
1基于Hadoop的運維數(shù)據(jù)分布式并行計算模型
聚類是按照一定的標(biāo)準(zhǔn)把數(shù)據(jù)集合進行多個簇的方式來劃分的分析過程,計算聚類結(jié)果[2]就是用這些簇的集合進行表示。在聚類技術(shù)應(yīng)用領(lǐng)域,文本聚類具有很高的應(yīng)用性,文本聚類以聚類的規(guī)則作為依據(jù),根據(jù)文本內(nèi)容將不同的文檔進行聚類,最終將內(nèi)容相似的文檔劃分為一類。隨著聚類技術(shù)的發(fā)展及其在實際中的廣泛應(yīng)用,根據(jù)實現(xiàn)的具體思想和應(yīng)用領(lǐng)域不同,產(chǎn)生了很多不同的聚類算法,主要包括基于劃分(partitionbased methods,PBM)的聚類算法、基于層次(hierarchical methods,HM)的聚類算法、基于密度(hensitybased methods,DBM)的聚類算法、基于網(wǎng)格(gridbased methods,GBM)的聚類算法和基于模型(modelbased methods,MBM)的聚類算法?;趧澐值木垲愃惴ǖ拇硭惴ㄊ荎means聚類算法[3],其核心思想是對包含N個對象的數(shù)據(jù)集合預(yù)先劃分為K個類,然后對數(shù)據(jù)集合中任何K個對象進行選取,把選取出來的對象作為聚類的初始中心點,再以之前設(shè)定好的啟發(fā)式算法為依據(jù)進行迭代重置,直到類內(nèi)部對象的平均值不再發(fā)生變化為止。層次聚類算法通過將數(shù)據(jù)組織成一個樹狀結(jié)構(gòu)來計算樣本之間的距離。層次聚類以聚類的順序為標(biāo)準(zhǔn),劃分為從下向上和從上向下兩種順序的層次聚類。在凝聚(agglomerative nesting,AGENES)聚類算法[4]中,把數(shù)據(jù)集合的各個對象分別作為一個類,再按照每個類之間的相似度規(guī)則逐層合并,直到全部對象合成一個類。分裂分析(divisive analysis,DIANA)聚類算法[5]則是典型的自上向下的聚類算法,首先設(shè)置要得到的聚類數(shù)目作為聚類結(jié)束條件,采用類的平均相異度作為相似度規(guī)則?;趧澐值木垲惙椒ǖ牡湫退惴ㄊ腔诿芏鹊目臻g聚類(densitybased spatial clustering of application with noise,DBSCAN)聚類算法[6]。在DBSCAN聚類算法中,如果一個對象的鄰域中包含多個對象,則創(chuàng)建一個以該對象為核心的新類,進而繼續(xù)迭代,從核心對象出發(fā)對直接接觸的其他對象進行尋找,直至尋找不到任何可以添加到類的對象為止。統(tǒng)計信息網(wǎng)格(statistical information grid,STING)算法是基于網(wǎng)格的聚類算法中最具有代表性的算法之一[7],該算法首先按照矩形方式對空間區(qū)域進行單元格的劃分,劃分出來的矩形單元格和不同級別的對象之間相互對應(yīng),單元格按照對象之間的關(guān)系建立一個層次結(jié)構(gòu),然后劃分成諸多低一層的單元格。這樣可依據(jù)預(yù)先設(shè)定的網(wǎng)格單元屬性的信息來進行統(tǒng)計查詢。基于模型的聚類算法的代表性算法是自組織神經(jīng)網(wǎng)絡(luò)(self organizing maps,SOM)算法[8],該算法首先對神經(jīng)網(wǎng)絡(luò)輸出層賦予隨機的連接權(quán)向量,并對設(shè)置網(wǎng)絡(luò)的學(xué)習(xí)率進行初始值的設(shè)置,向量的隨機選取是從訓(xùn)練數(shù)據(jù)中進行選擇,然后再對選取的向量進行操作,選取的向量與各連接權(quán)向量之間的相似度通過計算可以得出,把得出的相似度的值進行比較,選出最大相似度的節(jié)點作為獲勝節(jié)點,獲勝節(jié)點的作用是作為t時間學(xué)習(xí)權(quán)值的調(diào)整域進行確定的中心,以獲勝節(jié)點為中心,對優(yōu)勝領(lǐng)域內(nèi)的節(jié)點的權(quán)值和獲勝節(jié)點的權(quán)值進行及時更新。按照上面的操作過程執(zhí)行,直到學(xué)習(xí)率衰減到0或某個指定的閾值為止。
對于海量運維數(shù)據(jù),通過分布式系統(tǒng)對其進行并行處理是提高計算效率和處理能力的重要途徑之一。Hadoop作為目前應(yīng)用最廣泛的一種云計算平臺,利用HDFS分布式文件系統(tǒng)對海量運維數(shù)據(jù)進行存儲,在分布式環(huán)境下通過MapReduce編程模型對運維數(shù)據(jù)進行并行處理。MapReduce是一種分布式并行計算編程模型,“Map(映射)”和“Reduce(歸約)”及其主要思想都是借鑒矢量編程語言的特性。運維數(shù)據(jù)Hadoop并行計算模型的基本執(zhí)行流程如圖1所示。
圖1運維數(shù)據(jù)Hadoop并行計算模型的基本執(zhí)行流程在Hadoop結(jié)構(gòu)模型框架中,對系統(tǒng)中的所有運維數(shù)據(jù)分析的MapReduce任務(wù)進行初始化,轉(zhuǎn)化為系統(tǒng)中的Job,Job又被分為Map和Reudce部分。在MapReduce部分的執(zhí)行過程中,把輸入文件劃分為M份,如圖1左方所示分成了split 0~4,然后把每個split傳送給每個單獨的Map,因此Map作業(yè)數(shù)量是由M決定,和split一一對應(yīng)。在Map部分,形式為“
2分布式文本聚類算法
本文的分布式文本聚類算法,是為適應(yīng)客服運維系統(tǒng)的海量數(shù)據(jù)集合的特點而設(shè)計,與傳統(tǒng)聚類算法相比,本算法具有支持分布式并行運算和實時性的特點。本文的分布式聚類算法是由基于劃分的聚類和基于層次聚類兩部分組成。客服運維系統(tǒng)自身的特點決定了本算法必須具有較強的實時性,這就要求必須對海量運維數(shù)據(jù)集合進行預(yù)處理,從而達到初步降維的效果,在此基礎(chǔ)上,對已有明確相關(guān)性的文檔進行初步聚類,然后再進行二次聚類,最終達到系統(tǒng)要求的聚類結(jié)果。分布式文本聚類算法實現(xiàn)流程如圖2所示。
圖2分布式文本聚類算法實現(xiàn)流程對大文檔數(shù)據(jù)集進行聚類之前,首先需要進行數(shù)據(jù)預(yù)處理,即對文檔集中的每個文檔對象進行中文分詞。本文以IKAnalyer分詞器為工具,采用改進的二元gram分詞方法準(zhǔn)確分詞,同時將文檔集合中的文檔對象表示成算法所需的數(shù)據(jù)形式。文檔對象空間的高維度可能會降低聚類算法的準(zhǔn)確度,因此需對文檔對象首先進行降維處理。本算法選取文檔對象中的特征詞,根據(jù)特征詞的權(quán)重是否小于設(shè)定的閾值,決定是否消去該特征詞與文檔對象的關(guān)系,以實現(xiàn)初步降維的效果。倒排表是將文檔對象中的特征詞作為劃分標(biāo)準(zhǔn),將文檔對象進行聚合的數(shù)據(jù)結(jié)構(gòu)[9]。利用倒排表可以為后續(xù)基于劃分的聚類算法初步聚類進行數(shù)據(jù)相關(guān)性準(zhǔn)備。
在初步聚類過程中,需要計算文檔對象間的相似度,由于在算法中文檔是以向量的形式表示,所以計算文檔對象間的相似度通常采用向量間的余弦夾角公式,即
Sim(D1,D2)=(∑ni=1x1ky2k)/(∑ni=1x21k∑ni=1y22k)
式中,x1k和y2k分別表示向量D1和D2中的元素;如果Sim(D1,D2)的值越大,那么向量D1和D2之間的相似度就會越高。
初始聚類是按照一定的方法,選擇反倒排表的文檔對象,然后進行歸類處理。初始聚類的目的是把文檔對象進行劃分,然后放入文檔集合中,這些文檔集合是全劃分,所有文檔集合間沒有重疊。初始聚類算法流程如下:
1)在反倒排表的文檔對象中,把特征詞進行關(guān)聯(lián)處理,再把進行關(guān)聯(lián)處理后的文檔集合以權(quán)重值為依據(jù)進行聚類中心點的計算。
2)應(yīng)用余弦夾角公式對文檔對象和文檔集合中心點相似度進行計算,從而將該文檔對象劃入與其相似度最大的文檔集合中。
3)在所有包含該文檔對象的文檔集合中刪除該文檔。
在二次聚類過程中,需要對初步聚類的劃分結(jié)果再次聚類,達到最終的穩(wěn)定聚類結(jié)果。二次聚類的基本流程如下:
1)計算初步聚類后劃分的每個文檔集合的中心點。
2)通過基于層次的聚類算法對初步聚類結(jié)果集進行二次聚類計算。
3)把二次聚類的結(jié)果合并在一起,最終實現(xiàn)在相同類集合中存放的文檔對象內(nèi)容都是相同的,不同類的結(jié)合中存放的文檔內(nèi)容不同,并且每個文檔只能歸屬到一個類。
3Hadoop的分布式文本聚類算法實現(xiàn)
在Hadoop的分布式文本聚類算法中,分布式應(yīng)用程序主要包括Mapper和Reducer兩部分。Mapper負(fù)責(zé)處理由InputFormat切割成的數(shù)據(jù)分片,然后通過Inputformat提供的記錄讀取器將輸入解析成鍵值對的形式提供給Mapper部分中的Map函數(shù)[10]。經(jīng)過map處理后的數(shù)據(jù)仍會以鍵值對的形式輸出[1116]。Mapper部分的輸出將分發(fā)到各個Reducer部分,在此過程中,Reducer部分為了對Mapper的輸出進行并行處理,需要對Mapper的輸出進行劃分和分割處理,然后在相同的Reducer上把相同的鍵的輸出進行分配,最后要實現(xiàn)把輸入的鍵和與鍵對應(yīng)的值在Reducer部分進行疊加結(jié)合。數(shù)據(jù)經(jīng)過Reducer部分處理后會繼續(xù)以鍵值對的形式輸出[1720]。該算法的具體步驟如下:
1)將文檔數(shù)據(jù)集合保存到分布式Hadoop分布式文件系統(tǒng)(Hadoop distributed file system,HDFS)文件系統(tǒng)中作為輸入數(shù)據(jù),在Map中利用正則表達式對值進行歸一化,然后使用分詞器對值進行分詞操作。Reduce的輸入是Map的輸出的集合,Reduce把相同的key匯總后,再把相同的key的value值相加,得到特征詞語在該文檔中出現(xiàn)的次數(shù)。
2)以1)的Reduce輸出為Map的數(shù)據(jù)輸入,計算每個文檔中特征詞語在哪些文檔中出現(xiàn)過,Reduce部分的輸入將作為Map的輸出,計算文檔中特征詞語出現(xiàn)的頻率,進而通過權(quán)重計算公式獲得每個特征詞語在每一個文檔中的加權(quán)權(quán)重值。將全部特征詞語進行權(quán)重計算,對權(quán)重值小的詞語消去,進行降維。
3)以2)的Reduce輸出作為Map部分的輸入,通過Map的處理對中間結(jié)果的表達形式進行格式轉(zhuǎn)換,Reduce的輸入為Map的輸出的集合,對value的集合進行合并。
4)以3)的Reduce輸出為Map部分的輸入,以文本特征詞為鍵,以文檔的編號為值,Reducer的輸入為Mapper輸出的集合,對文檔號進行合并。
5)Map的數(shù)據(jù)輸入是以4)的Reduce輸出為準(zhǔn),并且key值取決于文檔號,value值取決于特征詞語,Reduce的輸入為Mapper輸出的集合,對特征詞語進行合并。
6)以5)中的Reduce部分的輸出作為Map的輸入,對文檔編號為docId的文檔進行權(quán)重關(guān)聯(lián),從而得到文檔編號為docId的文檔中特征詞的權(quán)重集合,然后通過反倒排表關(guān)聯(lián)對鍵值對中的所有特征詞進行關(guān)聯(lián),并通過得出的特征詞關(guān)聯(lián)文檔的集合,對文檔集合的中心點進行計算,并利用余弦公式計算中心點與文檔編號為docId的文檔間的相似度,從中找到相似度最大的文檔集合。最后以該文檔集合所對應(yīng)的特征詞為鍵,以該文檔編號docId為值。Reduce部分中以Map的輸出為Reduce的輸入,完成對值集合的合并。
7)Map的輸入通過6)中的Reduce部分輸出得出,首先建立空集合,如果第1個文檔集合首先被輸入,那么就在建立的空集合中把第1個文檔集合添加進來。如果輸入不是第1個文檔集合,則與已有集合中的類進行相似度比較,進行比較之后的相似度的值如果超過了設(shè)定的閾值,那么就在已有的文檔集合中把進行比較的類的文檔添加進來,原來的類將會被新合并的類所取代,如果進行比較的相似度的值沒有超過設(shè)定的閾值,那么就建立一個新的類,并把新的類添加到已有的集合中。Reduce部分的輸入作為Map部分的輸出,在Reduce部分中對所有文檔集合進行合并,直到所有文檔集合都添加到類集合中。至此,整個分布式文檔聚類算法結(jié)束。
4實驗與分析
本文以10萬余條電力信息系統(tǒng)運維數(shù)據(jù)為數(shù)據(jù)源,從3個方面對設(shè)計的分布式聚類算法和傳統(tǒng)聚類算法的性能表現(xiàn)進行測試,這些數(shù)據(jù)具有高維和稀疏性等特點。
在同一分布式集群節(jié)點數(shù)量保持不變的情況下,分別使用10 000,40 000,70 000,100 000條測試數(shù)據(jù),計算所需時間的增減關(guān)系。不同數(shù)量級的數(shù)據(jù)對傳統(tǒng)聚類算法和分布式聚類算法的性能測試結(jié)果如圖3所示。由圖3可以看出,當(dāng)集群節(jié)點數(shù)量穩(wěn)定時,數(shù)據(jù)量雖然增加,但是系統(tǒng)運行時間卻在減少,而且在相同數(shù)據(jù)量的情況下,本文設(shè)計的分布式聚類算法所需時間要低于傳統(tǒng)聚類算法。
保持測試數(shù)據(jù)量不變,通過分布式集群節(jié)點數(shù)量的變化,測試處理時間增量的增減關(guān)系。使用不同集群節(jié)點數(shù)量對傳統(tǒng)聚類算法和分布式聚類算法進行測試,不同節(jié)點的數(shù)量運行時間如圖4所示。
由圖4可以看出,測試數(shù)據(jù)總量保持不變,隨著分布式集群節(jié)點數(shù)量的增加,系統(tǒng)運行時間逐漸減少,而且在相同集群節(jié)點數(shù)量的情況下,本文設(shè)計的分布式聚類算法所需時間要低于傳統(tǒng)的聚類算法。
以50 000條數(shù)據(jù)集分別對本文提出的分布式文本聚類算法中的二次聚類步驟分別進行測試,查看在不同分布式集群節(jié)點的數(shù)量下,時間的增減關(guān)系。初步聚類算法實現(xiàn)所消耗時間如圖5所示,二次聚類算法實現(xiàn)所消耗時間如圖6所示。
在分布式文本聚類算法計算過程中,如果分布式集群節(jié)點數(shù)量保持不變,隨著處理的數(shù)據(jù)數(shù)量增加,系統(tǒng)運行需要的時間減少;在處理數(shù)據(jù)數(shù)量不變的情況下,聚類算法需要的時間隨著分布式集群節(jié)點數(shù)量的增加而呈遞減變化。從兩個聚類步驟的時間復(fù)雜度測試算法中可以看出,在兩個聚類步驟的時間增量上,分布式文本聚類算法呈遞減變化。
5結(jié)束語
本文設(shè)計的分布式聚類算法通過Hadoop分布式平臺來實現(xiàn),對運維系統(tǒng)中咨詢的關(guān)鍵問題進行內(nèi)容提取,利用聚類算法從海量數(shù)據(jù)中識別出關(guān)鍵信息,自動統(tǒng)計出用戶常見問題及熱點問題,用以支撐決策及運維服務(wù)的智能化運轉(zhuǎn),借助大數(shù)據(jù)中蘊含的價值和動力促進企業(yè)服務(wù)水平不斷提升,具有較高的實用價值和理論意義,對于海量數(shù)據(jù)的聚類算法的執(zhí)行效率將是下一步研究的主要問題。
參考文獻:
[1]王繼成, 潘金貴, 張福炎. Web 文本挖掘技術(shù)研究[J]. 計算機研究與發(fā)展, 2000, 37(5): 513520.
[2]吳啟明, 易云飛. 文本聚類綜述[J]. 河池學(xué)院學(xué)報, 2008, 28(2): 2830.
[3]毛國君, 段立娟, 王實. 數(shù)據(jù)挖掘原理與算法[M]. 北京: 清華大學(xué)出版社, 2005.
[4]Zhang T, Rramakrishoan R, Livny M. An Efficient Data Clustering Method for Very Large Databases [C]//In Procof ACMSIGMOD International Conference on Management of Data. Canada: ACM, 1996: 103114.
[5]Aggarwal C, Han J, Yu P S, et al. A Framework for Projected Clustering of High Dimensional Data Streams[C]//13th International Conference on Very Large Databases. Endowment: VLDB, 2004: 852863.
[6]胡可云, 田鳳占, 黃厚寬. 數(shù)據(jù)挖掘理論與應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2008.
[7]Fmurtagh S. A Survey of Recent Advances in Hierarchical Clustering Algorithms[J]. The Computer Journal, 1983, 26(4): 354359.
[8]薛貴榮. 數(shù)據(jù)挖掘[M]. 北京: 清華大學(xué)出版社, 2007.
[9]劉務(wù)華, 羅鐵堅, 王文杰. 文本聚類算法的質(zhì)量評價[J]. 中國科學(xué)院研究生院學(xué)報, 2006, 23(5): 640646.
[10]Klusch M, Lodi S, Moro G. Distributed Clustering Based on Sampling Local Density Estimates[C]//Eighteenth International JointConference on Artificial Intelligence. London: Morgan Kaufmann Publishers, 2003: 485490.
[11]欒亞建, 黃翀民, 龔高晟. Hadoop平臺的性能優(yōu)化研究[J]. 計算機工程, 2010, 36(14): 262263.
[12]向小軍, 高陽, 商琳, 等. 基于Hadoop平臺的海量文本分類的并行化[J]. 計算機科學(xué), 2011, 38(10): 184188.
[13]許丞, 劉洪, 譚良. Hadoop云平臺的一種新的任務(wù)調(diào)度和監(jiān)控機制[J]. 計算機科學(xué), 2013, 40(1): 112117.
[14]楊來, 史忠植, 梁帆, 等. 基于Hadoop云平臺的并行數(shù)據(jù)挖掘方法[J]. 系統(tǒng)仿真學(xué)報, 2013, 25(5): 8694.
[15]胡丹, 于炯, 英昌甜, 等. Hadoop平臺下改進的LATE調(diào)度算法[J]. 計算機工程與應(yīng)用, 2014, 50(4): 8689.
[16]陳明麗, 劉旭敏. Hadoop平臺下改進的推測任務(wù)調(diào)度算法[J]. 傳感器與微系統(tǒng), 2017, 36(2): 134137.
[17]劉莎, 譚良. Hadoop云平臺中基于信任的訪問控制模型[J]. 計算機科學(xué), 2014, 41(5): 155163.
[18]史文浩, 江國華, 秦小麟. 基于用戶信任值的HDFS訪問控制模型研究[J]. 計算機科學(xué)與探索, 2016, 10(1): 2535.
[19]宛婉, 周國祥. Hadoop平臺的海量數(shù)據(jù)并行隨機抽樣[J]. 計算機工程與應(yīng)用, 2014, 50(20): 115118.
[20]趙慶. 基于Hadoop平臺下的CanopyKmeans高效算法[J]. 電子科技, 2014, 27(2): 2931.