李 玲,杜學(xué)繪,包義保,肖 瑋
(1.信息工程大學(xué)四院,河南 鄭州450004;2.信息工程大學(xué) 數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室,河南 鄭州450004)
為能夠靈活、快速地應(yīng)對多種不同的攻擊與突變的環(huán)境,前人利用可重構(gòu)思想對安全協(xié)議進(jìn)行構(gòu)建的研究已有不少[1-3]。然而,利用構(gòu)件化的思想對安全協(xié)議進(jìn)行重構(gòu)的研究方興未艾,因考慮其應(yīng)對環(huán)境的運(yùn)行效能,以及協(xié)議的規(guī)范化、兼容性、可擴(kuò)展性等方面的優(yōu)勢,故本文借鑒軟件工程中的構(gòu)件化思想[4],將構(gòu)件的思想引入到可重構(gòu)安全協(xié)議系統(tǒng)的構(gòu)建中來,把重構(gòu)構(gòu)件類比軟件工程中的構(gòu)件,通過對不同服務(wù)的支持,裝配或釋放相應(yīng)的構(gòu)件來構(gòu)建新型服務(wù)。然而,在安全協(xié)議重構(gòu)組裝過程中,對于給定的構(gòu)件,如何尋求一條最優(yōu)數(shù)據(jù)通路,從而實(shí)現(xiàn)服務(wù)能力平滑、快速的升級,達(dá)到高效利用系統(tǒng)資源,提高提供多種服務(wù)需求的能力,是研究基于重構(gòu)構(gòu)件的安全協(xié)議必須解決的問題。本文研究發(fā)現(xiàn)重構(gòu)構(gòu)件的調(diào)用存在著一系列約束關(guān)系,尋求重構(gòu)過程中最優(yōu)數(shù)據(jù)通路是一個(gè)復(fù)雜的組合優(yōu)化問題。在可以接受的時(shí)間和空間復(fù)雜度的限制下去尋求最優(yōu)的解,顯然是一種新的探索。禁忌算法[5]、模擬退火算法[6]、遺傳算法[7]、人工神經(jīng)網(wǎng)絡(luò)算法[8]成為現(xiàn)代智能優(yōu)化算法的主要代表,其發(fā)展至今,成果斐然。目前世界上研究復(fù)雜組合優(yōu)問題化時(shí)主要瓶頸就是如何避免陷入局部最優(yōu)以及計(jì)算效率的問題。
為了解決這些難題,新的思想和算法逐漸形成并越加成熟,在實(shí)際應(yīng)用中顯示出優(yōu)越性。其中由群智能行為特性以解決此類問題的蟻群算法 (ant colony algorithm)成為目前研究的熱點(diǎn)。該算法由意大利學(xué)者Dorigo提出,從此出現(xiàn)了諸多對蟻群算法進(jìn)化方法的研究[9],并應(yīng)用于多種領(lǐng)域且取得了較好的成效[10,11]。其基本原理是當(dāng)進(jìn)化趨于穩(wěn)定時(shí),對節(jié)點(diǎn)間的信息量做動態(tài)調(diào)整及選路策略的改進(jìn),并適當(dāng)加大隨機(jī)選擇的概率,以避免算法陷入局部最優(yōu)。
因此,本文提出了改進(jìn)的蟻群算法,將群集智能蟻群算法與個(gè)體智能模擬退火算法相結(jié)合,克服了蟻群算法收斂速度慢、易停滯等缺點(diǎn),以建立優(yōu)質(zhì)高效的算法,來提高算法的計(jì)算效率和對全局最優(yōu)點(diǎn)的獲取能力。實(shí)驗(yàn)結(jié)果表明,本文采用的算法得到優(yōu)化數(shù)據(jù)通路與最優(yōu)解的平均偏差為1.56%,顯示該算法比蟻群算法具有更高的求解質(zhì)量和求解效率。
本文提出重構(gòu)構(gòu)件的概念,重構(gòu)構(gòu)件是事先將服務(wù)或任務(wù)化分成若干模塊,將劃分好的模塊作為獨(dú)立的可重用的功能模塊。它是能為特定應(yīng)用裁剪的,易于實(shí)現(xiàn)新的協(xié)議且能夠快速成形。重構(gòu)構(gòu)件可以重用于不同的環(huán)境中,能滿足應(yīng)用的特定需求。具體操作為:當(dāng)某一服務(wù)或任務(wù)到來時(shí),系統(tǒng)便可以從重構(gòu)構(gòu)件庫中選擇符合需求的構(gòu)件,根據(jù)協(xié)議組裝通過相互關(guān)系合作完成此次的服務(wù)或任務(wù),顯示了極強(qiáng)的靈活性和擴(kuò)展性。重構(gòu)構(gòu)件不同于一般構(gòu)件之處在于重構(gòu)構(gòu)件的可重構(gòu)性,即當(dāng)系統(tǒng)根據(jù)服務(wù)和重構(gòu)性能的需求重構(gòu)出合適的重構(gòu)構(gòu)件存入重構(gòu)構(gòu)件庫中,亦是構(gòu)件本身的可重構(gòu)性。另外,重構(gòu)構(gòu)件能根據(jù)需求而改變,既能維持一定的穩(wěn)定性,又易于擴(kuò)展。
目前,對重構(gòu)構(gòu)件劃分粒度的大小并沒有明確的界定,一般情況下,重構(gòu)構(gòu)件的粒度越小,協(xié)議劃分得越細(xì),協(xié)議重構(gòu)構(gòu)件就越多。反之,亦然。
本文將安全協(xié)議的功能實(shí)現(xiàn)與模塊化的重構(gòu)構(gòu)件抽象成一種特定的 “協(xié)議-重構(gòu)構(gòu)件”模型如圖1所示,即將直接承載一種安全協(xié)議的安全性服務(wù)分解成一組較細(xì)粒度的功能單元,得到的功能單元稱為重構(gòu)構(gòu)件,而根據(jù)系統(tǒng)劃分一個(gè)重構(gòu)構(gòu)件可以提供多種子功能。每一種安全協(xié)議功能F 的實(shí)現(xiàn)都需要多種重構(gòu)構(gòu)件e 的支撐,為完成所需功能提供服務(wù),該集合是封閉的,其中的元素是有限的。系統(tǒng)中所有的重構(gòu)構(gòu)件組成協(xié)議構(gòu)件庫,當(dāng)協(xié)議重構(gòu)操作進(jìn)行時(shí),協(xié)議構(gòu)件庫中的重構(gòu)構(gòu)件則參與運(yùn)作。
圖1 協(xié)議-重構(gòu)構(gòu)件
安全協(xié)議是以密碼學(xué)為基礎(chǔ)的數(shù)據(jù)交換協(xié)議,通過保密技術(shù)、認(rèn)證技術(shù)、數(shù)字簽名、身份認(rèn)證、消息完整性等支撐技術(shù),以在網(wǎng)絡(luò)環(huán)境中提供各種安全服務(wù)為目的來保障系統(tǒng)安全。在現(xiàn)代網(wǎng)絡(luò)環(huán)境中,常用的安全協(xié)議有PPTP、L2TP、IPSec、SSL/TLS、HTTPS、SET 等。目前設(shè)計(jì)的安全協(xié)議大多集中在應(yīng)用層,為大家所熟知并廣泛使用的協(xié)議有SSL協(xié)議和SET 協(xié)議等。本文以SSL (secure sockets layer)協(xié)議和SET (secure electronic transaction)協(xié)議為代表,深入對協(xié)議重構(gòu)的相關(guān)技術(shù)研究。
在研究安全協(xié)議的基礎(chǔ)上,深入分析協(xié)議的功能、流程、要素、結(jié)構(gòu)是重構(gòu)構(gòu)件設(shè)計(jì)的關(guān)鍵所在,繼而將安全協(xié)議進(jìn)行抽象分析,歸納出各個(gè)協(xié)議的共同點(diǎn)、差異點(diǎn),再根據(jù)可重構(gòu)的需求進(jìn)行模塊化分析,設(shè)計(jì)出重構(gòu)構(gòu)件。本文從協(xié)議功能、協(xié)議流程、協(xié)議要素、實(shí)現(xiàn)結(jié)構(gòu)特征等方面出發(fā),從交互模塊、交換消息處理模塊和算法模塊等3個(gè)方面對構(gòu)件進(jìn)行分析設(shè)計(jì)。以目前廣泛使用的安全協(xié)議SSL與SET 協(xié)議為牽引,逐步提取出協(xié)議重構(gòu)構(gòu)件,作如下分析與設(shè)計(jì),如圖2所示。
對協(xié)議交互模塊的設(shè)計(jì)主要有安全能力建立模塊;身份認(rèn)證、密鑰交換模塊;更換密碼組、完成模塊。其中安全能力建立模塊階段是用來初始化邏輯連接,并建立與之相關(guān)的安全能力,包括協(xié)議雙方的協(xié)議版本、請求與響應(yīng)ID、初始隨機(jī)數(shù)、壓縮方法、一個(gè)保證時(shí)限的臨時(shí)值、信用卡品牌等。更換密碼組、完成模塊的主要作用是使前面商定的算法成為當(dāng)前狀態(tài)。
圖2 SSL握手協(xié)議與SET 協(xié)議交互過程的比較
如圖3所示,對協(xié)議交換數(shù)據(jù)處理模塊主要包括:應(yīng)用數(shù)據(jù)的分段、壓縮、雜湊、加密、連接等處理模塊。其中,雜湊函數(shù)是為了防止協(xié)議消息有網(wǎng)絡(luò)傳輸過程中被惡意地篡改而增加的完整性保護(hù)。經(jīng)過雜湊函數(shù)的計(jì)算生成一個(gè)消息摘要,目前主要有基于HASH 算法、加密算法,逐位累加等計(jì)算方法,可根據(jù)系統(tǒng)的要求,靈活使用各種方法。加密處理可采用的方式有對稱加密與非對稱加密,主要有數(shù)據(jù)加密標(biāo)準(zhǔn)RSA、DES及其擴(kuò)展算法,不同的算法運(yùn)行效率與安全強(qiáng)度不盡相同,可根據(jù)系統(tǒng)需求進(jìn)行配置,以確保數(shù)據(jù)的機(jī)密性、真實(shí)性。
對協(xié)議算法模塊的設(shè)計(jì)主要是將不同類型的密碼算法、同一類型不同參數(shù)的密碼算法進(jìn)行劃分。具體模塊層次劃分如圖4所示。
圖3 交換數(shù)據(jù)處理過程
圖4 協(xié)議模塊層次的劃分
由高至低分別為加密技術(shù)層、算法層、算子層。安全協(xié)議一般使用多種加密算法,涉及常用的對稱密鑰加密、公開密鑰加密和消息摘要3類加密技術(shù)。常用的公鑰加密算法有RSA、ECC等,算法運(yùn)算量大過程復(fù)雜,一般使用專用算法進(jìn)行高效實(shí)現(xiàn),此處對其算子就不展開討論;常用的對稱加密方法有DES,還有比DES 更安全的3DES、AES、IDEA,RC2、RC4等,涉及的算子包括:模加/減、模乘、移位、置換、S盒與各類的與或非操作;常用的消息摘要算法有SHA-1、MD5等,涉及的算子包括模加減、移位和與或非操作。
在完成了重構(gòu)構(gòu)件的提取之后,系統(tǒng)就面臨著數(shù)據(jù)通路的選擇問題。而如何快速有效實(shí)現(xiàn)重構(gòu)構(gòu)件的組裝即如何找到最優(yōu)解并構(gòu)造最優(yōu)數(shù)據(jù)通路是當(dāng)前研究的熱點(diǎn)問題。下面對問題進(jìn)行系統(tǒng)描述。
可重構(gòu)安全協(xié)議系統(tǒng)根據(jù)應(yīng)用與環(huán)境的需求,當(dāng)系統(tǒng)目前配置的安全協(xié)議出現(xiàn)缺陷或需要更高的安全防護(hù)時(shí),系統(tǒng)將通過上述生成的重構(gòu)構(gòu)件根據(jù)實(shí)際的安全需求進(jìn)行安全協(xié)議重構(gòu)。在安全協(xié)議重構(gòu)過程中存在尋求最優(yōu)數(shù)據(jù)通路的問題,如圖5所示,對于給定的幾個(gè)目標(biāo)重構(gòu)構(gòu)件,在考慮約束的情況下可以通過不同的途徑以不同的代價(jià)實(shí)現(xiàn),最終得到最優(yōu)的數(shù)據(jù)通路。本節(jié)針對重構(gòu)構(gòu)件間最優(yōu)數(shù)據(jù)通路的選取問題展開討論。
圖5 重構(gòu)時(shí)數(shù)據(jù)通路的不同實(shí)現(xiàn)路徑
數(shù)據(jù)通路優(yōu)化可以看成是一系列重構(gòu)構(gòu)件節(jié)點(diǎn)的訪問順序問題,而節(jié)點(diǎn)之間存在約束關(guān)系,如節(jié)點(diǎn)A 的調(diào)用順序在B 節(jié)點(diǎn)前而B 的調(diào)用順序在C 節(jié)點(diǎn)之前 (表示為A→B→C),我們就說A 的訪問權(quán)限的權(quán)限最高,C 的訪問權(quán)限最低 (表示為RA≥RB≥RC)。數(shù)據(jù)通路的選擇目標(biāo)是要求得的數(shù)據(jù)通路路程為所有數(shù)據(jù)通路之中的最小值,此問題可描述成在一個(gè)權(quán)重圖中找到一條代價(jià)最小的路徑,且權(quán)重圖可由一個(gè)四元組表示G= (X,E,W,F(xiàn)),式 (1)表示元素的約束條件
式中:X——圖中重構(gòu)構(gòu)件節(jié)點(diǎn),E——權(quán)重圖中的兩兩節(jié)點(diǎn)相連而成的邊,W——權(quán)重圖中邊的權(quán)重值,F(xiàn) 屬于U表示選取的重構(gòu)構(gòu)件是滿足系統(tǒng)功能需求的。通過這樣一個(gè)權(quán)重圖可以直觀地表示,那么重構(gòu)過程中的數(shù)據(jù)通路擇優(yōu)問題可描述為
其中,式 (2)表示重構(gòu)構(gòu)件組裝過程的擇優(yōu)目標(biāo),即讓所得到的數(shù)據(jù)通路代價(jià)最小;式 (3)中λ作為存在變量,表示凡代入式 (2)計(jì)算的邊都將是最優(yōu)數(shù)據(jù)通路中邊集合的元素;式 (4)表示邊eij的代價(jià)用wij來表示;式 (5)表示所求得的最小值要小于系統(tǒng)能承受的最大值,式 (6)A→B→C 表示相應(yīng)構(gòu)件的調(diào)用約束?;谏鲜鲫P(guān)于最優(yōu)數(shù)據(jù)通路選擇問題的描述,本文采用將改進(jìn)的蟻群算法與模擬退火算法相結(jié)合的智能算法進(jìn)行研究。
蟻群算法的搜索機(jī)制是在轉(zhuǎn)移概率的基礎(chǔ)上,利用信息素的更新來求得最優(yōu)解的。而信息素的分布取決于螞蟻對數(shù)據(jù)通路的選擇,即螞蟻會在所經(jīng)過的數(shù)據(jù)通路上釋放信息素,越多螞蟻經(jīng)過的數(shù)據(jù)通路上信息素就越多,同時(shí)信息素具有揮發(fā)性,在找路的過程中螞蟻可以感知其強(qiáng)度來判斷和選擇數(shù)據(jù)通路。
蟻群算法雖在各個(gè)領(lǐng)域都有較好的應(yīng)用,但其存在以下缺點(diǎn):①問題規(guī)模較大時(shí),算法無法高效執(zhí)行。②易陷入局部最優(yōu)。故而本文對蟻群算法進(jìn)行研究與改進(jìn),分別從信息素自適應(yīng)調(diào)節(jié)、蟻群移動規(guī)則改進(jìn)、與模擬退火互補(bǔ)的方法進(jìn)行研究。
為了便于理解,首先介紹蟻群算法中幾個(gè)重要的參數(shù):m 表示算法中的節(jié)點(diǎn)個(gè)數(shù);l表示算法中螞蟻的數(shù)量;dij表示兩節(jié)點(diǎn)間的間距;τij(t)表示t時(shí)刻在邊ij 上保留的信息量。對狀態(tài)轉(zhuǎn)移概率,其計(jì)算模型為
式中:α——信息素的相對重要性;β——能見度的相對重要性;allowedk——t時(shí)刻螞蟻可以選擇轉(zhuǎn)移節(jié)點(diǎn)的集合。式中ηij=1/dij,表示可視距越長,參數(shù)ηij的值小。
算法首先將l只螞蟻隨機(jī)地分布在m 個(gè)節(jié)點(diǎn)上,每只螞蟻根據(jù)式 (7)給出的轉(zhuǎn)移概率pkij與可視距dij選擇下一個(gè)訪問的節(jié)點(diǎn)。顯然,螞蟻往往會選擇信息素強(qiáng)烈且可視距短的那些數(shù)據(jù)通路。通過n 次的迭代處理,每只螞蟻都完成了節(jié)點(diǎn)的一次訪問。一次訪問結(jié)束則更新信息素的分布情況,以前留下的信息素會逐漸消逝,更新規(guī)則如下
式 (8)中t表示迭代次數(shù);ρ∈ [0,1]是信息素τij的保留因子;式 (9)中Δτij表示本次循環(huán)中邊ij 上信息素的增量;式 (10)Δτkij就表示第k 只螞蟻在本次循環(huán)中在邊ij 上留下的信息素;Q 為信息素總量,Sk表示螞蟻k走過的通路總長。
式 (8)中保留因子ρ的取值大小決定了算法的搜索能力的強(qiáng)弱。當(dāng)ρ過小,則螞蟻搜索數(shù)據(jù)通路上保留的信息素過低,算法的收斂速度就會變慢;當(dāng)ρ過大時(shí),搜索數(shù)據(jù)通路上的殘留信息素過高,導(dǎo)致全局搜索能力過低。故本文對信息素保留因子ρ的取值控制引入自適應(yīng)調(diào)節(jié)函數(shù),對信息素的取值大小進(jìn)行適當(dāng)?shù)目刂?,以保證算法的搜索能力與收斂速度。在此引入信息素保留因子調(diào)節(jié)函數(shù),如下式
式中:ρmax——算法預(yù)設(shè)置信息素保留因子的最大值即初值,并設(shè)置終止值ρmin表示保留因子的最小值。當(dāng)算法隨著迭代次數(shù)的增加,保留因子逐漸減弱,若其值太小則算法基本失效,故設(shè)置最小值ρmin來保證算法搜索的有效性;函數(shù)引入保留控制參數(shù)h,通過h的取值來決定保留因子的減弱速率。不同h數(shù)值設(shè)置,如h 取值分別為1/2、1、2時(shí),保留因子的變化趨勢如圖6所示。
圖6 保留因子的變化趨勢
由圖6可知h 的不同取值對ρ的變化趨勢有較大的影響,本文通過相關(guān)研究結(jié)果,設(shè)當(dāng)ρ≥ρmin 時(shí)將信息素保留因子調(diào)節(jié)函數(shù)設(shè)置為ρ(t)=ρmax/1+t。
蟻群的移動規(guī)則是在一定的概率下朝向信息素相對多的方向移,為了防止螞蟻原地打轉(zhuǎn),螞蟻會將曾經(jīng)走過的節(jié)點(diǎn)記錄在自己的列表中。如果發(fā)現(xiàn)將要走的節(jié)點(diǎn)已經(jīng)出現(xiàn)在列表中了,那么它就會避開這些節(jié)點(diǎn)。在本算法中,蟻群尋徑過程中具有記憶功能,用visitedk(1,2,…,m)表示螞蟻K 已訪問過的節(jié)點(diǎn),也就是上面說的列表。但是隨著蟻群數(shù)據(jù)通路的選擇會出現(xiàn)一些不可避免的情況:一部分螞蟻通過概率選擇同一條數(shù)據(jù)通路,那么這條數(shù)據(jù)通路上的信息素會越來越多,這將引起更多的螞蟻也選擇這條數(shù)據(jù)通路,但這條數(shù)據(jù)通路并不是最優(yōu)的,所以導(dǎo)致了迭代次數(shù)完成后螞蟻找到的不是最優(yōu)解,算法陷入了僵局。
螞蟻在經(jīng)過幾次迭代之后,在新的一輪循環(huán)中由于受到一定的干擾及選路概率的影響可能會造成當(dāng)前選擇的數(shù)據(jù)通路sk遠(yuǎn)超于已經(jīng)得到的最優(yōu)解Sbest,此時(shí),螞蟻的繼續(xù)搜索將會影響算法的搜索速度,故當(dāng)前螞蟻可以放棄本次迭代,避免盲目搜索,規(guī)定螞蟻就將之前得到的最優(yōu)解做為螞蟻此次循環(huán)的最優(yōu)解。
在許多改進(jìn)的蟻群算法中很容易出現(xiàn)停滯狀態(tài):算法在當(dāng)前的最短數(shù)據(jù)通路附近搜索了很多次,但最優(yōu)解并沒有更新,在這種情況下可以說明全局最優(yōu)解很可能并不在附近,然而算法卻不能及時(shí)跳出。其解決方案就是在此引入模擬退火算法,算法規(guī)定當(dāng)蟻群算法連續(xù)多次迭代最優(yōu)解都沒有改善時(shí),那么運(yùn)行模擬退火算法,模擬退火算法遵循Metropolis準(zhǔn)則,如果新的最短數(shù)據(jù)通路比原先得到的數(shù)據(jù)通路更優(yōu),再將新的最短數(shù)據(jù)通路的信息素作為全局最短數(shù)據(jù)通路來更新。
種種研究表明,基本蟻群算法雖然有收斂速度慢、易陷入局部最優(yōu)的缺點(diǎn),但對其的研究從未間斷,應(yīng)用領(lǐng)域也不斷拓寬。因此,本文將基于群體智能的蟻群算法與基于個(gè)體行為的模擬退火算法相結(jié)合,這兩種算法都是啟發(fā)式智能算法,各有優(yōu)劣,互取所長。模擬退火算法本質(zhì)上是一種概率搜索算法,算法每次迭代都以一定的概率選擇搜索領(lǐng)域外的解,即算法總能以一定的概率跳出局部最優(yōu)解。本文在對蟻群算法信息素自適應(yīng)調(diào)節(jié)、蟻群移動規(guī)則改進(jìn)的基礎(chǔ)上結(jié)合模擬退火算法,提出尋求更好求解效果的優(yōu)化算法。一方面針對蟻群算法收斂速度慢的問題,本文通過控制保留因子的保留強(qiáng)度與蟻群移動規(guī)則的改進(jìn)來提高速度;另一方面,針對蟻群算法易陷入局部最優(yōu)的問題,利用模擬退火算法跳出僵局,尋找更優(yōu)解。
本文將優(yōu)化算法應(yīng)用到最優(yōu)數(shù)據(jù)通路選擇之中,具體實(shí)施方法為:在改進(jìn)蟻群算法的搜索過程中,建立一個(gè)記錄有約束關(guān)系的重構(gòu)構(gòu)件節(jié)點(diǎn)之間權(quán)限信息的禁忌表,每當(dāng)算法在一定的迭代區(qū)間內(nèi)找到一條優(yōu)化路徑時(shí)首先判斷其是否符合禁忌表規(guī)范,若符合則將其記錄下來作為本次迭代的最優(yōu)解。當(dāng)算法連續(xù)5次迭代都沒有獲得更優(yōu)解時(shí),調(diào)用模擬退火算法,并且將此改進(jìn)蟻群算法的最優(yōu)解作為模擬退火算法的初始值,利用模擬退火算法進(jìn)行計(jì)算,比較新解是否比原先算法得到的解更優(yōu),若是則將其轉(zhuǎn)化為信息素增量用于更新蟻群算法的信息素。否則保留原來蟻群算法計(jì)算得到的解,并繼續(xù)直至算法結(jié)束。
算法步驟如下:
1.初始化:Set time=0;Timeend=Tmax;τij =c;Δτij =0;S0=0;Sbest=N;(dij)n*n=matrix(weight(i,j));counter=0;2.For k=1to l S=0;將螞蟻K 隨機(jī)地放置于一個(gè)重構(gòu)構(gòu)件節(jié)點(diǎn)上,并將該節(jié)點(diǎn)加入禁忌表visitedk;While(s<=m){ 根據(jù)概率Pij選擇重構(gòu)構(gòu)件節(jié)點(diǎn); 計(jì)算sk=sk-1+dij;所走數(shù)據(jù)通路長度和 If(sk>N){ sk=N;將之前得到的最優(yōu)解做為螞蟻K此次循環(huán)的最優(yōu)解,第K+1只螞蟻開始搜索 } 移動螞蟻到下一個(gè)重構(gòu)構(gòu)件節(jié)點(diǎn)j; 將該城市加入禁忌表visitedk 中; s=s+1; }3.For k=1to l 查找禁忌表,判斷重構(gòu)構(gòu)件節(jié)點(diǎn)之間的約束關(guān)系,若是則繼續(xù),否則跳出。 比較此次循環(huán)中得到的最短數(shù)據(jù)通路stime; If(stime==N)counter++; 按式 (8)更新edge(i,j)上的信息素; time=time+1;4. if(time<Tmax) if(counter>=5) 將迭代得到的最優(yōu)解作為初值代入模擬退火算法,并對其用下標(biāo)進(jìn)行先后排序 while(T(t)>Tmin){ 任選下標(biāo)位值h<=n; 得到新數(shù)據(jù)通路并計(jì)算Δf 與p(Δf); if(Δf <0) 接受新數(shù)據(jù)通路; 或根據(jù)概率p(Δf)>=random (0,1)選擇新數(shù)據(jù)通路; T(t)= T0 1+t; 比較得到的解是否比蟻群算法的解更優(yōu),若是則將其轉(zhuǎn)化為信息素增量用于更新蟻群算法的信息素矩陣。 } Else if go to step 2;Else stop;
步驟1中,對算法涉及的參數(shù)進(jìn)行初始化。Time表示改進(jìn)算法中運(yùn)算迭代次數(shù);Timeend表示算法迭代最大值;Sbest表示最優(yōu)數(shù)據(jù)通路長度; (dij)n*n表示各節(jié)點(diǎn)之間的權(quán)重矩陣;counter用來記錄當(dāng)算法得到的解沒有改善的情況下繼續(xù)迭代的次數(shù),作為判定算法是否停滯的標(biāo)志;visitedk用來記錄螞蟻訪問過的重構(gòu)構(gòu)件節(jié)點(diǎn),避免對節(jié)點(diǎn)的重復(fù)訪問。在步驟4 中,T0表示初始溫度,Tmin表示模擬退火算法終止溫度。當(dāng)蟻群算法循環(huán)迭代5次均無果時(shí),表明算法陷入僵局,此時(shí)引入模擬退火算法對解進(jìn)行改進(jìn),將改進(jìn)蟻群算法得到的最優(yōu)解作為模擬退火算法的初值。設(shè)為 (k1,k2,…,km),在溫度下降的過程中,任選相異下標(biāo)位值h<n,得到新數(shù)據(jù)通路(, …,kh-1,kn,kh-1, …,kh+1,kh,kn+1, …,),如圖7所示,即可計(jì)算目標(biāo)函數(shù)差Δf,此處Δf =
圖7 模擬退火算法中數(shù)據(jù)通路調(diào)整
在本系統(tǒng)中假定dij=dji,則Δf=(dkh-1kn+dkhkn+1)-(dkh-1kh+dknkn+1)。模擬退火算法遵循Metropolis準(zhǔn)則:如果Δf≤0,(i為新狀態(tài),j為舊狀態(tài))則接受新狀態(tài),否則求概率p(Δf)=exp(-Δf/T),產(chǎn)生一個(gè)0~1間隨機(jī)數(shù)δ,若p≥δ則接受新狀態(tài),否則繼續(xù)迭代。T 為退火過程中的溫度,是一隨時(shí)間t增加而下降的參數(shù),在模擬退火算法中,降溫過快或過慢都將影響效率與求解的質(zhì)量。故本文采用其退火算法中的快速退火方式,降溫表達(dá)式為T(t)=T0/ (1+t),這種退火算法的特點(diǎn)是在高溫區(qū)溫度下降比較快,而在低溫區(qū),降溫的速率較慢。
為了客觀地評價(jià)模擬退火-蟻群算法的性能,本文采用MATLAB 2012b仿真軟件平臺,所使用的PC 機(jī)主頻為2.5GHz,內(nèi)存為4GB,對改進(jìn)算法進(jìn)行仿真實(shí)驗(yàn)。
假設(shè),重構(gòu)構(gòu)件節(jié)點(diǎn)間的距離矩陣取為:
對上述10個(gè)重構(gòu)構(gòu)件節(jié)點(diǎn)訪問權(quán)限如下:R1≥R2≥R6、R8≥R9、R5≥R3。改進(jìn)蟻群算法的參數(shù)設(shè)置如下:螞蟻個(gè)數(shù)l=10,信息素因子α=1,能見度因子β=5,信息素保留因子最大值ρmax=1,信息素保留因子最小值ρmin=0.1,信息素最大值τmax=50,信息素最小值τmin=1,螞蟻循環(huán)一周所釋放的總信息量Q=60,最大迭代次數(shù)Nc=30,初始溫度T0=180,最低溫度Tmin=20。實(shí)驗(yàn)結(jié)果如圖8所示,通過實(shí)驗(yàn)結(jié)果可以看出改進(jìn)的蟻群算法收斂速度與最優(yōu)解相比有所改善。
圖8 基本蟻群算法與改進(jìn)蟻群算法的比較
本文進(jìn)行20次上述仿真實(shí)驗(yàn),求解結(jié)果如圖9 所示?;鞠伻核惴ㄅc改進(jìn)的蟻群算法得到的平均數(shù)據(jù)通路長度分別為172.65、179.75。由實(shí)驗(yàn)結(jié)果可知,本文提出的優(yōu)化算法求解速度快,而優(yōu)化的數(shù)據(jù)通路與最優(yōu)解的平均偏差為1.56%,得到計(jì)算效率和對全局最優(yōu)點(diǎn)的獲取能力都有所改善的優(yōu)質(zhì)高效算法。
本文在安全協(xié)議重構(gòu)研究的基礎(chǔ)上提出從交互模塊、消息處理模塊和算法模塊對協(xié)議進(jìn)行建模的方法,提取出的協(xié)議操作模塊作為安全協(xié)議的重構(gòu)構(gòu)件,為今后可重構(gòu)系統(tǒng)的功能完善與系統(tǒng)優(yōu)化提供了依據(jù)與支撐。此外,對數(shù)據(jù)通路優(yōu)化問題提出改進(jìn)蟻群算法與模擬退火算法相結(jié)合的算法進(jìn)行解決,由仿真實(shí)驗(yàn)結(jié)果可以看出,本文提出的改進(jìn)算法具有更好的求解質(zhì)量和求解效率,更利于解決安全協(xié)議重構(gòu)最優(yōu)數(shù)據(jù)通路選擇方面的問題。
圖9 結(jié)果比較
[1]Isobe T,Tsutsumi S.10Gbps implementation of TLS/SSL accelerator on FPGA [C]//IEEE 18th International Workshop on Quality of Service,2010:1-6.
[2]Ahmad Salman,Marcin Rogawski,Jens-Peter Kaps.Efficient hardware accelerator for IPSEC based on partial reconfiguration on Xilinx FPGAs [C]//In Proceedings of the International Conference on Reconfigurable Computing and FPGAs,2012:242-248.
[3]YU Hongli,BAI Hong,XI Yong.A reconfigurable MAC protocol design based on ARM and FPGA [J].Modern Electronics Technique,2012,35 (11):8-10 (in Chinese).[余泓利,白紅,習(xí)勇.一種基于ARM 和FPGA 的可重構(gòu)MAC 協(xié)議設(shè)計(jì) [J].現(xiàn)代電子技術(shù),2012,35 (11):8-10.]
[4]LIU Zhongshuang.A study of software engineering methods based on bionic component[D].Wuhan:Huazhong University of Science and Technology,2010 (in Chinese). [劉中雙.一種基于仿生構(gòu)件的軟件工程方法研究 [D].武漢:華中科技大學(xué),2010.]
[5]YE Xuemei,TIAN Tian,CHEN Baisong.GTSPA hybrid algorithm for solving multi-objective optimization problem [J].Microelectronics &Computer,2010,27 (6):167-169 (in Chinese).[葉雪梅,田甜,陳柏松.求解多目標(biāo)優(yōu)化問題的GTSPA混合算法[J].微電子學(xué)與計(jì)算機(jī),2010,27(6):167-169.]
[6]He Junqi,Dai Huiya,Song Xueli.The combination stretching function technique with simulated annealing algorithm for global optimization [J].Optimization Methods and Software,2014,29 (3):629-645.
[7]Saber M Elsayed,Ruhul A Sarker,Daryl L Essam.A new genetic algorithm for solving optimization problems[J].Engineering Applications of Artificial Intelligence,2014 (27):57-69
[8]GENG Xiaolong,LI Changjiang.Application of parallel reinforcement learning based on artificial neural network to adaptive path planning [J].Science Technology and Engineering,2011,11 (4):756-759 (in Chinese).[耿曉龍,李長江.基于人工神經(jīng)網(wǎng)絡(luò)的并行強(qiáng)化學(xué)習(xí)自適應(yīng)路徑規(guī)劃 [J].科學(xué)技術(shù)與工程,2011,11 (4):756-759.]
[9]MA Jun,ZHANG Jianpei,YANG Jing.Improved ant colony algorithm for travel Agent problem [J].Beijing University of Posts and Telecommunications,2008,31 (6):46-49 (in Chinese). [馬駿,張健沛,楊靜.改進(jìn)型蟻群算法求解旅行Agent問題 [J].北京郵電大學(xué)學(xué)報(bào),2008,31 (6):46-49.]
[10]GUO Tiantai,HONG Bo,KONG Ming,et al.Application of ant colony algorithm in plant leaves classification based on infrared spectroscopy [J].AIP Conference Proceedings,2014,1592 (1):378-385.
[11]ZHANG Qiaoxian,LI Ming.Improved ant colony algorithm for bilateral assembly line balancing problem [J].Journal of Electronics,2014,42 (5):841-845 (in Chinese). [鄭巧仙,李明.求解雙邊裝配線平衡問題的改進(jìn)蟻群算法 [J].電子學(xué)報(bào),2014,42 (5):841-845.]