1.一種基于遺傳算法的包匹配方法,其特征在于,包括如下步驟:
(1)采用遺傳算法來進行特征選擇,選出相關(guān)特征位,去除冗余特征位和無關(guān)特征位;
(2)對包規(guī)則庫中的規(guī)則進行分析和處理,精簡規(guī)則庫中的覆蓋規(guī)則和交叉規(guī)則。
2.根據(jù)權(quán)利要求1所述的基于遺傳算法的包匹配方法,其特征在于,包括步驟(2)之后的步驟(3),
(3)算法設(shè)計,具體步驟如下:
(3-1)設(shè)定初始值:種群規(guī)模NP=2000,演化代數(shù)I=100,調(diào)節(jié)兩個因子的權(quán)重α=0.9,β=0.1,交叉因子Λ=10;
(3-2)設(shè)置循環(huán)終止條件:演化代數(shù)I達到100或公式(1)的適應(yīng)值小于0.01;
(3-3)根據(jù)公式(1)對個體進行評價,
fitness=α(1/H)+βS1 (1),
其中,S1為染色體中基因值為1的基因數(shù)目,α、β分別為調(diào)節(jié)兩個因子的權(quán)重,α要遠大于β,否者會導(dǎo)致局部最優(yōu),優(yōu)選α=0.9,β=0.1;
(3-4)從NP中選擇兩個個體;
(3-5)對選擇的兩個個體進行交叉操作;
(3-6)對選擇的個體進行變異操作;
(3-7)結(jié)束。
3.根據(jù)權(quán)利要求1所述的基于遺傳算法的包匹配方法,其特征在于,步驟(1)中解決如下兩個問題:
(1-1)適應(yīng)值設(shè)置:把包規(guī)則庫中的規(guī)則像染色體一樣映射成一串二進制字符串,針對染色體所有基因值為0的位,把二進制串的相應(yīng)位去除;
假定:染色體位數(shù)為8,群體中一個染色體為1 0 1 1 1 0 1,有三條規(guī)則相應(yīng)的二進制串分別為:
1 0 0 0 1 1 1 1
1 0 1 1 0 0 0 1
0 1 0 1 0 0 1 1,
染色體1 0 1 1 1 0 1的第二位和第七位為“0”,所以把三條規(guī)則對應(yīng)的二進制串的第二位和第七位刪去,結(jié)果如下所示:
1 0 0 1 1 1
1 1 1 0 0 1
0 0 1 0 0 1,
計算處理后的包規(guī)則庫中任何兩條規(guī)則的相異度用它們的海明距離去度量,海明距離H,按下面的公式(2)計算:
其中,RN為包規(guī)則庫中的規(guī)則數(shù),hij為包規(guī)則庫中的規(guī)則i和規(guī)則j之間的海明距離;
適應(yīng)值按照公式(1)計算:
fitness=α(1/H)+βS1 (1);
(1-2)個體編碼:采用二進制編碼,染色體長度為296位,NP規(guī)模設(shè)為2000,交叉操作采用掩碼的均勻交叉,每次交叉從種群里隨機選擇兩個個體,根據(jù)掩碼的設(shè)置產(chǎn)生交叉子個體,例如:假設(shè)隨機選擇的兩父個體為:
父個體1:1 0 0 0 1 1 1 1 0 1 0 0 1 0 1 1
父個體2:1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0
掩碼:0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1
則均勻交叉產(chǎn)生的子個體為:1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1;
變異采用隨機選擇Λ位進行變異,Λ隨演化代數(shù)逐漸降低,在每一代演化過程中都把最優(yōu)解保留下來,如果下一代中沒有個體的適應(yīng)值優(yōu)于上一代保留的最優(yōu)解,就用上一代保留的最優(yōu)解隨機替換下一代中的任一個體。
4.根據(jù)權(quán)利要求1所述的基于遺傳算法的包匹配方法,其特征在于,步驟(2)中,對應(yīng)規(guī)則間存在覆蓋矛盾和交叉矛盾,要對規(guī)則進行分析,或?qū)θ罩疚募M行分析,對于防火墻規(guī)則、路由器的訪問控制列表,詢問系統(tǒng)管理員設(shè)置此規(guī)則的意圖,分析矛盾規(guī)則間處理的決策。
5.根據(jù)權(quán)利要求1所述的基于遺傳算法的包匹配方法,其特征在于,步驟(2)中,假定一個規(guī)則定義為:X{[x1min,x2max],...[xnmin,xnmax]},覆蓋的定義為:規(guī)則X={x1,x2,...xn}和規(guī)則Y={y1,y2,...yn},如果對于任何xj,都存在yj被xj包含,那就定義為X規(guī)則覆蓋y規(guī)則;處理行為一樣的覆蓋規(guī)則為覆蓋冗余,匹配結(jié)果不一樣的覆蓋規(guī)則為覆蓋矛盾;
交叉的定義為:如果規(guī)則X和規(guī)則Y在一維或多維之間存在范圍重疊的現(xiàn)象,而剩余的別的維都是xj=y(tǒng)j,那就定義規(guī)則X和規(guī)則Y重疊。