單國超
(西南交通大學 信息科學與技術學院,成都 611756)
計算機聯鎖的安全性和可靠性高于電氣集中聯鎖,它的高安全性也要求參與運算的聯鎖數據是高安全性的。文獻[1]采用硬件處理方式,設計了聯鎖數據輸入及輸出安全編碼器,提高了聯鎖數據編碼的安全性。針對部分聯鎖數據由于硬件故障或者受到干擾而在運算過程中發生錯誤,文獻[2]中要在聯鎖相關的信號設備上進行防雷設計,以降低雷電脈沖對信號設備造成的干擾。文獻[3]提出各類聯鎖數據的建模方法,利用約束關系對數據安全性算法進行驗證。以上研究通過建模或者改造設計的方法,提高聯鎖的安全性,但是未指出聯鎖數據發生異常后如何被檢測出來。出于對聯鎖數據處理及運算過程中的安全性考慮,本文的研究著重于如何檢測出異常的聯鎖數據。
文獻[4]中提到鐵道信號聯鎖設備的故障診斷方法,提出了用人工智能方法去診斷設備故障。人工智能的發展為異常診斷提供了新的思想,本文借鑒人工智能領域中免疫算法的相關原理,建立聯鎖數據異常診斷的過程,使聯鎖數據在處理及運算過程中的異常畸變能夠被及時發現。
由于生物免疫系統能夠對自體和非自體的內容進行有效檢測和識別,因此可以借鑒其原理來解決人工異常檢測的問題。生物免疫系統也是一個具有自學習和自適應能力的系統,因此在人工檢測異常的過程中也能夠將以往的異常問題進行保留,以便下一次快速檢測。人工免疫算法的根本特征在于它是生物機體自身的保護系統,能夠檢測和識別非自體抗原,并且能夠經過自我耐受階段過濾掉與自體匹配的檢測器,避免了冗余檢測器的產生,提高了識別效率[5-6]。
20世紀90年代,美國著名學者Forrest在免疫算法的基礎之上提出了陰性選擇算法[7],從此,陰性選擇算法被用來解決各種各樣的異常狀態檢測問題。在該算法的定義中,自體是一種正常狀態下被保護的模式。在算法進行的過程中,會產生大量的隨機模式檢測器,這些隨機模式檢測器會按照一定的匹配規則與被保護的模式進行比較,如果某一隨機模式檢測器與被保護的模式發生了匹配,那么就刪去這一隨機模式檢測器,因為它沒有經過類似生物學意義上的陰性選擇過程。如果該隨機模式檢測器沒有與被保護模式發生匹配,則將該隨機模式檢測器進行保留,并且成為了成熟的檢測器,成熟檢測器會在一定時間內對被保護模式完成監視任務。在監視的過程中,如果外來的信息與某一個成熟檢測器發生了匹配,那么就可以認為此時出現了新的異常[8]。
在免疫系統中,區分自體與非自體的標志是一種基于蛋白質鏈之間的化學結合。那么在陰性選擇算法中,采取了固定長度為L的二進制序列對蛋白質鏈進行模擬。將所有長度為L的二進制序列集合確定為一個整體空間U,U也稱為全集。全集U進一步可以分為兩個子集,一個子集叫做自體集合,記為S;另一個子集叫做非自體集合,記為N。自體集合S與非自體集合N里面的二進制序列元素沒有交集。再定義一個集合R,用來保存成熟的檢測器,成熟的檢測器與自體集合中的元素不發生匹配。
陰性選擇算法主要分為兩個階段:第1階段是產生檢測器集合R的階段,如圖 1所示;第2階段是成熟檢測器集合R實現對自體集合監視的階段,如圖 2所示。

圖 1 檢測器產生階段示意圖
聯鎖數據是指在聯鎖計算機中,所有參與聯鎖運算的數據。聯鎖數據可按照信號機、道岔和軌道電路等監控對象的類別不同,將它們劃分為相應的數據塊。比如,對于一段軌道電路來說,在它的數據塊中應包含著進路被鎖閉、進路被解鎖等數據結構;對于一組道岔來說,在它的數據塊中應該包含著定位表示、反位表示、道岔鎖閉等數據結構。
計算機聯鎖所用到的數據編碼采用的是二進制信息碼。但是電子器件是一種對稱出錯元件,不能僅以1和0來代表狀態信息和控制信息,這樣也是不符合故障—安全原則要求的。因此,在考慮所監控對象的編碼時,要采取多個碼元編碼,以多元代碼代表開關量,才是滿足故障—安全原則的。

圖 2 自體集合監視階段示意圖
與行車有關的信息編碼,安全側碼字和非安全側碼字的不對稱比率必須不小于255:1[9],故聯鎖數據的碼位至少為8 bit。在實驗過程中,聯鎖數據以8 bit二進制碼為例,以AAH代表安全側輸出,55H為危險側輸出,其余編碼均為非法信息。在異常檢測中,安全側數據畸變后的序列與原安全側信息匹配閾值大于規定漢明距離的序列,代表著安全側信息正在向著危險側信息發生畸變,此時的序列被定義為異常序列。聯鎖數據的安全側與危險側信息比對,如表1所示。

表1 聯鎖數據的安全側與危險側信息
2.2.1 陰性選擇算法匹配規則
在匹配的過程中,所采用的匹配規則設置為漢明距離匹配規則,也就是說如果根據隨機函數所產生的候選檢測器序列中有至少r個對應位數字與安全側信息中的對應位數字不相同時,則認為候選檢測器序列通過了耐受過程[10]。此時根據陰性選擇算法的原理,丟棄掉那些沒有通過自我耐受過程的檢測器序列。
漢明距離主要是描述兩個等長字符串序列x=(x1,x2, x3, …, xn)和 y=(y1, y2, y3,…, yn)之間的距離[11],為:

式(1)中的+○表示模二加法運算,xk∈{0,1},yk∈{0,1}。然后將d與設置好的閾值r相減,得到的值定義為檢測器的匹配誤差E,即

如果E≥0,可以認為x=(x1, x2, x3,…, xn)和y=(y1, y2, y3,…, yn)不匹配;
如果E<0,則認為x=(x1, x2, x3,…, xn)和y=(y1,y2, y3,…, yn)二者匹配。
兩個序列在漢明距離規則下的匹配概率為:

式中,n—字符串序列長度;
r—漢明距離的匹配閾值。
候選檢測器經過耐受過程后,得到的成熟檢測器規模為:

式中,n—字符串序列長度;
r—漢明距離的匹配閾值;
N—候選檢測器數量大小。
2.2.2 檢測器庫建立
本次實驗過程中隨機產生8 bit二進制序列,并將它們定義為候選檢測器,以此過程來模擬免疫系統中候選T細胞和候選B細胞的產生過程,并對這些候選檢測器進行自我耐受過程,即讓這些候選檢測器與安全側信息碼1 0 1 0 1 0 1 0進行陰性選擇過程。在成熟檢測器庫建立完成以后,這一成熟檢測器集合便開始對待檢測數據進行診斷。
2.2.3 異常檢測
經歷了自體耐受過程后,隨機產生的候選檢測器經過陰性選擇算法的第1階段,淘汰掉與安全側信息碼相匹配的檢測器,剩余的候選檢測器便成為了成熟的檢測器。
檢測異常時需要考慮的是成熟檢測器與待檢測數據相似度的問題。對于字符串長度為n的兩個字符串 x=(x1, x2, x3,…, xn)和 y=(y1, y2, y3,…, yn),用漢明距離計算兩個字符串不同取值的位數,再取補就得到了兩個字符串的相似度H(x, y),即:

如果H(x, y)的取值越小,說明兩個字符串相似程度越高,如果成熟檢測器與待檢測檢測器相似程度高,則說明待檢測數據就是異常數據。同時將這種異常數據定義為未知異常,將這一未知異常數據加入到已有異常數據集合中,也就是生物學中的記憶抗體集合。
2.2.4 檢測器庫的更新
根據生物學的免疫系統原理,抗體在生物機體內只會存在一段時間,如果找不到與之發生綁定的抗原,那么經過一段時間后,那些沒有與抗原發生結合的抗體就會被生物體分解,然后生物體再進行下一批抗體的生產。一批抗體的存在開始于它們經歷自我耐受過程并成熟,結束于未與抗原發生綁定而被生物機體分解。
在異常診斷的過程中,也要考慮到檢測器集合的更新,因為免疫算法產生的成熟檢測器也是基于一定概率產生的序列。如果只使用同一個檢測器集合,這個檢測器集合并不能完全覆蓋非自體空間,那么在實際檢測異常時,如果一旦有一些異常數據正好沒有與檢測器集合中的檢測器發生匹配,這樣的異常數據就永遠也不會被發現。
所以,需要定期重新生成一批候選檢測器。第1批隨機生成的候選檢測器與第2批隨機生成的候選檢測器的規模設置是相同的。雖然兩批次的候選檢測器規模是一樣的,但是這兩批候選檢測器中的檢測器不是完全一樣的,在經過自我耐受過程以后,所剩下來的成熟檢測器的規模和種類就會有所差別。兩個批次的成熟檢測器集合中的元素會有交集,但是第2批的成熟檢測器集合中會有一些元素不屬于第1批次的成熟檢測器。但兩個批次的成熟檢測器會更好地覆蓋非自體空間。這樣就避免了只使用同一批成熟檢測器來對異常數據進行檢測而出現的弊端。各批次成熟檢測器與非自體空間的關系,如圖 3所示。

圖 3 非自體空間與各批次檢測器的空間覆蓋關系
本次仿真過程所選用的工具為Matlab,Matlab中自帶很多實用函數,在對數據進行處理時能夠選擇合適的函數進行高效計算。陰性選擇算法的實現過程中會進行大量的集合運算,可以借助于Matlab的矩陣運算進行處理。
根據上述內容,在實驗過程中將匹配規則的閾值設置為4,每次候選檢測器的數目為150個,根據式(4)得到成熟檢測器的理論值為96個。待檢測聯鎖數據在實驗中采用隨機產生的原則。并且每一批次成熟檢測器的存在時間為5個測試周期,過了5個測試周期就更新檢測器庫。初始異常數據集合中存在的異常數據為危險側信息0 1 0 1 0 1 0 1,實驗總共進行50次檢測異常的過程。
實驗結果如圖4、圖5和表2所示。
圖 4表示成熟檢測器規模變化情況,圖中實線表示理論值,圓點表示實際產生的成熟檢測器數量,星狀點表示理論可能最大的成熟檢測器數量,即候選檢測器的數量。每批次的成熟檢測器數量圍繞理論值上下波動屬于正常情況。
圖 5表明利用每批次成熟檢測器實時檢測聯鎖數據后,記錄下成熟檢測器與聯鎖數據發生匹配的次數,即檢測出來的異常數據個數。由于實驗中的聯鎖數據是隨機產生的二進制序列,故檢測結果還是比較明顯,記憶抗體集合,即異常數據集合規模呈現穩定上升的趨勢。

圖 4 成熟檢測器規模變化示意圖

圖 5 異常數據集合規模
表 2中詳細記錄了異常數據集合中的異常數據信息,可以看到,存在的異常數據除了危險側輸出信息之外,均為利用算法檢測出的異常聯鎖數據。

表2 異常數據集合
本文提出在聯鎖數據異常檢測的技術中引入免疫算法原理,闡述了陰性選擇算法的基本過程,提出了漢明距離的匹配規則,研究在聯鎖數據異常的先驗知識和特征缺乏的情況下,對聯鎖數據進行異常檢測,文中舉例進行了仿真驗證。實驗結果表明,正常聯鎖數據發生畸變位較多時會被確認為發生異常,異常數據會被存儲在異常數據集合,異常數據代表出現過的未知異常。該研究方法可作為研究聯鎖數據異常的基礎。