基于演化硬件的實(shí)時容錯系統(tǒng)設(shè)計(jì)方法
【專利摘要】本發(fā)明公開了一種基于演化硬件的實(shí)時容錯系統(tǒng)設(shè)計(jì)方法,屬于演化硬件領(lǐng)域。該方法從電路編碼和系統(tǒng)容錯機(jī)制進(jìn)行分析,并在FPGA平臺上實(shí)現(xiàn)了一套實(shí)時容錯系統(tǒng)。采用動態(tài)自適應(yīng)CGP編碼方法,挖掘編碼矩陣的潛能,減少演化耗時,提高演化成功率;采用多種機(jī)制保證容錯系統(tǒng)的實(shí)時性和容錯性。以系統(tǒng)故障容錯時間為約束條件,保證系統(tǒng)的實(shí)時性;利用靜態(tài)故障配置庫加速對故障的修復(fù)過程;當(dāng)靜態(tài)配置庫溢出時,采用補(bǔ)償修復(fù)模式重構(gòu)系統(tǒng),提高系統(tǒng)長期運(yùn)行能力;采用虛擬可重構(gòu)技術(shù)在FPGA平臺上構(gòu)建了一套實(shí)時容錯系統(tǒng)原型,驗(yàn)證該設(shè)計(jì)方法的可行性和有效性。該方法兼顧系統(tǒng)的容錯性和實(shí)時性,充分發(fā)揮演化硬件在容錯系統(tǒng)設(shè)計(jì)領(lǐng)域的優(yōu)勢。
【專利說明】
基于演化硬件的實(shí)時容錯系統(tǒng)設(shè)計(jì)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于演化硬件領(lǐng)域,涉及一種基于演化硬件的實(shí)時容錯系統(tǒng)設(shè)計(jì)方法。
【背景技術(shù)】
[0002] 隨著信息時代的來臨,各類電子產(chǎn)品層出不窮,人們的工作和生活方式正在發(fā)生 巨大改變。日益豐富的電子產(chǎn)品在給人們生活帶來便捷的同時,也對電子系統(tǒng)的設(shè)計(jì)水平 提出了更高的要求。電子系統(tǒng)的功能不斷增強(qiáng),規(guī)模不斷擴(kuò)大,電子系統(tǒng)設(shè)計(jì)的復(fù)雜度呈指 數(shù)增長,僅僅依靠經(jīng)驗(yàn)將無法設(shè)計(jì)出符合需求的電子系統(tǒng)。對于一些工作在特殊環(huán)境中的 電子設(shè)備,如太空飛船,深海探測器等,對系統(tǒng)的可靠性要求極其嚴(yán)格,一旦系統(tǒng)出現(xiàn)故障, 將會對這些設(shè)備造成致命的損害,帶來巨大的經(jīng)濟(jì)損失。由于傳統(tǒng)的設(shè)計(jì)方法是靜態(tài)的,系 統(tǒng)結(jié)構(gòu)一旦被設(shè)計(jì)好就很難再被更改,僅僅依靠設(shè)計(jì)人員的經(jīng)驗(yàn),無法預(yù)測系統(tǒng)會遭遇何 種故障,也無法進(jìn)行提前預(yù)防,這就給系統(tǒng)的安全性和可靠性帶來了極大的隱患。為了能夠 突破人工設(shè)計(jì)電路的局限性,增強(qiáng)系統(tǒng)對抗外部環(huán)境變化的適應(yīng)能力,提高系統(tǒng)可靠性,迫 切需要一種能夠提高系統(tǒng)容錯能力的設(shè)計(jì)方法。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明要解決的技術(shù)問題是提供一種基于演化硬件的實(shí)時容錯系統(tǒng)設(shè)計(jì)方法,結(jié) 合演化硬件的自組織,自適應(yīng)和自修復(fù)的特性,提出了一種動態(tài)自適應(yīng)笛卡爾遺傳編碼 (Cartesian Genetic Programming,CGP)方法和實(shí)時容錯機(jī)制,并在FPGA平臺上實(shí)現(xiàn)了一 套實(shí)時容錯系統(tǒng)原型,其總體架構(gòu)如圖1所示。其中,演化算法采用C代碼編寫,運(yùn)行在FPGA 平臺內(nèi)嵌的Microblaze處理器軟核上;其他模塊則采用Verilog代碼編寫,運(yùn)行在FPGA平臺 上。
[0004] -種基于演化硬件的實(shí)時容錯系統(tǒng)設(shè)計(jì)方法,步驟如下:
[0005] (1)動態(tài)自適應(yīng)CGP編碼方法
[0006] 傳統(tǒng)的CGP編碼隨機(jī)選擇一個固定節(jié)點(diǎn)作為最終輸出節(jié)點(diǎn),動態(tài)自適應(yīng)CGP編碼方 法輸出節(jié)點(diǎn)不固定,采用一種動態(tài)隨機(jī)采樣模型從CGP編碼矩陣中選擇不同節(jié)點(diǎn)作為輸出 節(jié)點(diǎn),分別計(jì)算CGP編碼矩陣的適應(yīng)度值,并選擇適應(yīng)度值最大的矩陣作為最優(yōu)解;節(jié)點(diǎn)的 采樣概率隨著種群整體適應(yīng)度變化情況動態(tài)調(diào)整,當(dāng)前種群的適應(yīng)度分布情況采用以下公 式計(jì)算:
[0008] 其中,fd(t)表示種群中個體適應(yīng)度分布或多樣性;.萬7)表示種群中個體的平均適 應(yīng)度值;fmax(t)表示種群中個體的最大適應(yīng)度值;f min(t)表示種群中個體的最小適應(yīng)度值; 隨著迭代次數(shù)的增加,個體之間的適應(yīng)度差值越來越小,平均適應(yīng)度值增加,fd(t)的值也 逐漸變大;
[0009] 采樣概率分為兩部分,在演化初期,種群適應(yīng)度值較低,采用固定的較高采樣概率 加塊收斂速度;當(dāng)種群平均適應(yīng)度值或迭代次數(shù)達(dá)到預(yù)定的閾值時,根據(jù)種群平均適應(yīng)度 值動態(tài)調(diào)整采樣概率;演化過程中采樣概率的計(jì)算公式為:
[0011] 其中,PsQ是設(shè)定的初始采樣概率,初始采樣概率的設(shè)定綜合考慮種群規(guī)模和染色 體長度;如果初始采樣概率設(shè)為1,則此時遍歷所有的節(jié)點(diǎn),并計(jì)算適應(yīng)度值;如果初始采樣 概率設(shè)置過小,則隨機(jī)選擇,初始采樣概率不低于〇. 5; to是采樣概率調(diào)整的臨界迭代次數(shù), to的取值為0.3tmax; a是自定義的參數(shù)調(diào)節(jié)因子,設(shè)定為2,tmax是演化算法的最大迭代次數(shù);
[0012] (2)基于演化硬件的實(shí)時容錯機(jī)制
[0013]容錯系統(tǒng)本質(zhì)上是一種實(shí)時系統(tǒng),實(shí)時性是容錯系統(tǒng)的一個重要約束條件;基于 演化硬件的實(shí)時容錯機(jī)制,以系統(tǒng)容錯時間為約束條件,利用靜態(tài)配置庫加速修復(fù)過程,兼 顧容錯系統(tǒng)的實(shí)時性和容錯性;整個實(shí)時容錯機(jī)制主要包括以下幾個方面:
[0014] ①計(jì)算演化算法最大迭代次數(shù)
[0015] 將系統(tǒng)可容忍的故障時間定義為修復(fù)娜艮Tmax;Tmax通過故障分析樹技術(shù)得到;為 了保證系統(tǒng)在修復(fù)期限內(nèi)修復(fù)系統(tǒng)故障,在演化過程中將修復(fù)期限作為演化算法的約束條 件;首選通過公式(3)計(jì)算出演化算法迭代一次需要的時間T g;
[0016] Tg = A(Tcfg+Tfit)+Tea (3)
[0017] 其中,Tcfg是演化平臺的配置時間,Tflt是適應(yīng)度評估時間,Tea是演化算法的執(zhí)行時 間,A是每次迭代過程中產(chǎn)生的子代個體的數(shù)量;則根據(jù)公式(4)得到最大的迭代次數(shù);
[0019]②運(yùn)行時故障檢測
[0020]在系統(tǒng)運(yùn)行階段,當(dāng)系統(tǒng)出現(xiàn)故障時,需要在最短的時間內(nèi)檢測到錯誤;故障最終 導(dǎo)致系統(tǒng)輸出錯誤,比較系統(tǒng)的實(shí)際輸出和期望輸出,判斷系統(tǒng)是否有故障發(fā)生;故障檢測 的結(jié)果用公式(5)表示
[0022]其中R表示實(shí)際輸出和期望輸出的異或,如果期望輸出和實(shí)際輸出一致,則R為0, 否則R不為零,通過檢測R的值,得到檢測系統(tǒng)是否出錯;
[0023]③利用靜態(tài)配置庫修復(fù)故障
[0024]靜態(tài)配置庫主要用來加速故障的修復(fù)時間;在系統(tǒng)設(shè)計(jì)階段,通過FTA技術(shù)挖掘系 統(tǒng)潛在的故障,并將這些故障的補(bǔ)償電路存儲在靜態(tài)配置庫中;在系統(tǒng)運(yùn)行時,如果發(fā)生故 障,則以向量(In,CWi)為索引到靜態(tài)配置庫中查找對應(yīng)的補(bǔ)償電路;
[0025]如果查找對應(yīng)的補(bǔ)償電路,則說明發(fā)生了已知故障,直接從配置庫中查找對應(yīng)的 補(bǔ)償電路,完成對系統(tǒng)故障的修復(fù);
[0026] 如果沒有查到對應(yīng)的修復(fù)電路,則說明發(fā)生了未知故障,啟動演化算法來演化補(bǔ) 償電路;
[0027] 在演化未知故障的補(bǔ)償電路時,采用一種基于相似性的演化算法來加速演化過 程;首先,采用海明距離來計(jì)算期望補(bǔ)償輸出和配置庫中已有電路的補(bǔ)償輸出的相似性,表 示為Dis(R,R'),其中R是期望補(bǔ)償電路的輸出,R'是配置庫中已有電路的補(bǔ)償輸出;如果 D/.V(疋云,尺'),則用R'對應(yīng)的補(bǔ)償電路來產(chǎn)生演化算法的初始種群,并演化出R; 反之,則根據(jù)R'對應(yīng)的補(bǔ)償電路來演化出萬,然后在補(bǔ)償輸出上加上反相器;
[0028] 靜態(tài)配置庫的大小取決于系統(tǒng)規(guī)模和硬件資源,靜態(tài)配置庫的空間越大占用的存 儲資源越多,查庫的時間遞增;配置庫中的修復(fù)電路和故障索引是一對多的關(guān)系,即一個修 復(fù)電路對應(yīng)多個故障索引;
[0029] ④利用演化與補(bǔ)償?shù)姆绞街貥?gòu)系統(tǒng)
[0030] 每修復(fù)一個故障,將對應(yīng)的補(bǔ)償電路存儲在配置庫中,但是配置庫的存儲空間有 限,不能存儲所有的補(bǔ)償電路;當(dāng)配置庫內(nèi)存溢出時,配置庫將無法存儲新的補(bǔ)償電路,而 且隨著系統(tǒng)長時間的運(yùn)行,出現(xiàn)更多的未知故障,配置庫的作用逐漸降低,最終影響系統(tǒng)的 容錯能力;為了提高系統(tǒng)長期運(yùn)行的可靠性,當(dāng)配置庫內(nèi)存溢出時,將采用基于補(bǔ)償修復(fù)技 術(shù)重構(gòu)系統(tǒng);
[0031] 在重構(gòu)目標(biāo)系統(tǒng)時,采用基于補(bǔ)償修復(fù)技術(shù)的演化方式;演化過程中如果檢測到 停滯效應(yīng)則停止演化,假設(shè)當(dāng)前迭代次數(shù)為匕,如果G s,多Gmax,則表明不能在規(guī)定的迭代次 數(shù)內(nèi)演化出目標(biāo)系統(tǒng);如果Gs〈G max,則啟動修復(fù)進(jìn)程對已經(jīng)演化出的部分正確系統(tǒng)進(jìn)行修 正,修復(fù)進(jìn)程必須在Gmax_G s次迭代次數(shù)內(nèi)完成。
[0032] 本發(fā)明的有益效果:(1)通過采用動態(tài)自適應(yīng)CGP編碼方式能夠減少演化耗時,提 高演化成功率;(2)以系統(tǒng)容錯時間為約束條件,結(jié)合配置庫和補(bǔ)償容錯模式,能夠提高系 統(tǒng)的容錯性和實(shí)時性;(3)在FPGA平臺上構(gòu)建虛擬可重構(gòu)框架,并在該框架上實(shí)現(xiàn)一套實(shí)時 容錯系統(tǒng),為容錯系統(tǒng)的設(shè)計(jì)提供一種可行的參考模型。
【附圖說明】
[0033]圖1是系統(tǒng)的整體結(jié)構(gòu)框圖。
[0034] 圖2是CGP編碼矩陣不例圖。
[0035]圖3是靜態(tài)配置庫工作原理圖。
【具體實(shí)施方式】
[0036]以下結(jié)合附圖和技術(shù)方案,進(jìn)一步說明本發(fā)明的【具體實(shí)施方式】。
[0037] -種基于演化硬件的實(shí)時容錯系統(tǒng)設(shè)計(jì)方法,步驟如下:
[0038]動態(tài)自適應(yīng)CGP編碼方法和實(shí)時容錯機(jī)制的主要原理如下:
[0039] (1)動態(tài)自適應(yīng)CGP編碼方法
[0040] CGP是演化硬件領(lǐng)域是最為常用的編碼方式,其原理如圖2所示。傳統(tǒng)的CGP編碼隨 機(jī)選擇一個固定節(jié)點(diǎn)作為最終輸出節(jié)點(diǎn),動態(tài)自適應(yīng)CGP編碼方法輸出節(jié)點(diǎn)不固定,采用一 種動態(tài)隨機(jī)采樣模型從CGP編碼矩陣中選擇不同節(jié)點(diǎn)作為輸出節(jié)點(diǎn),分別計(jì)算CGP編碼矩陣 的適應(yīng)度值,并選擇適應(yīng)度值最大的矩陣作為最優(yōu)解。節(jié)點(diǎn)的采樣概率隨著種群整體適應(yīng) 度變化情況動態(tài)調(diào)整,當(dāng)前種群的適應(yīng)度分布情況可以采用以下公式計(jì)算:
[0042]其中,fd(t)表示種群中個體適應(yīng)度分布或多樣性;/拓表示種群中個體的平均適 應(yīng)度值;fmax( t )表示種群中個體的最大適應(yīng)度值;fmin ( t)是最小適應(yīng)度值。隨著迭代次數(shù)的 增加,個體之間的適應(yīng)度差值越來越小,平均適應(yīng)度增加,fd(t)的值也逐漸變大。采樣概率 主要分為兩部分,在演化初期,種群適應(yīng)度較低,采用固定的較高采樣概率加塊收斂速度; 當(dāng)種群平均適應(yīng)度或迭代次數(shù)達(dá)到預(yù)定的閾值時,根據(jù)種群平均適應(yīng)度值動態(tài)調(diào)整采樣概 率。演化過程中采樣概率的計(jì)算公式為:
[0044]其中,PsQ是設(shè)定的初始采樣概率,初始采樣概率值的設(shè)定需要綜合考慮種群規(guī)模 和染色體長度。如果初始采樣概率設(shè)為1,則此時需要遍歷所有的節(jié)點(diǎn)計(jì)算適應(yīng)度值;如果 初始采樣概率設(shè)置過小,則變成了隨機(jī)選擇,可能會影響迭代次數(shù)。因此,初始采樣概率一 般不低于〇 . 5。to是采樣概率調(diào)整的臨界迭代次數(shù),to的取值不能太大,取值過大會影響算法 的加速效果,一般取〇. 3tmax3是自定義的參數(shù)調(diào)節(jié)因子,一般設(shè)定為2,1_是演化算法的最 大迭代次數(shù)。在演化前期,種群整體適應(yīng)度較低,采樣概率較大,有利于加快演化算法收斂 速度;在演化后期,種群整體較優(yōu),采樣概率變小,減少對電路結(jié)構(gòu)的調(diào)整有利于優(yōu)良基因 的積累,提尚演化算法的成功率。
[0045] (2)基于演化硬件的實(shí)時容錯機(jī)制
[0046]傳統(tǒng)的容錯系統(tǒng)設(shè)計(jì)方法主要考慮系統(tǒng)的容錯能力,忽略了容錯系統(tǒng)的實(shí)時性, 而容錯系統(tǒng)本質(zhì)上是一種實(shí)時系統(tǒng),實(shí)時性是容錯系統(tǒng)的一個重要約束條件?;谘莼?件的實(shí)時容錯機(jī)制,以系統(tǒng)容錯時間為約束條件,利用靜態(tài)配置庫加速修復(fù)過程,能夠兼顧 容錯系統(tǒng)的實(shí)時性和容錯性。整個實(shí)時容錯機(jī)制主要包括以下幾個方面:
[0047]①計(jì)算演化算法最大迭代次數(shù)
[0048] 將系統(tǒng)可容忍的故障時間定義為修復(fù)期限,定義為Tmax<3Tmax可以通過故障分析樹 (Fault Tree Analysis,F(xiàn)TA)技術(shù)分析得到。為了保證系統(tǒng)能夠在修復(fù)期限內(nèi)修復(fù)系統(tǒng)故 障,在演化過程中將修復(fù)期限作為演化算法的約束條件。首選通過公式(3)可以計(jì)算出演化 算法迭代一次需要的時間T g。
[0049] Tg = A(Tcfg+Tfit)+Tea (3)
[0050] 其中,Trfg是演化平臺的配置時間,Tflt是適應(yīng)度評估時間,Tea是演化算法的執(zhí)行時 間,A是每次迭代過程中產(chǎn)生的子代個體的數(shù)量。則根據(jù)公式(4)可以得到最大的迭代次數(shù)。
[0052]②運(yùn)行時故障檢測
[0053]在系統(tǒng)運(yùn)行階段,當(dāng)系統(tǒng)出現(xiàn)故障時,需要能夠在最短的時間內(nèi)檢測到錯誤。故障 最終會導(dǎo)致系統(tǒng)輸出錯誤,只需要比較系統(tǒng)的實(shí)際輸出和期望輸出就可以檢測是否有故障 發(fā)生。故障檢測的結(jié)果可以用公式(5)表示。
[0055]其中R表示實(shí)際輸出和期望輸出的異或,如果期望輸出和實(shí)際輸出一致,則R為0, 否則R不為零,通過檢測R的值就可以檢測系統(tǒng)是否出錯。
[0056]③利用靜態(tài)配置庫修復(fù)故障
[0057]靜態(tài)配置庫主要用來加速故障的修復(fù)時間。在系統(tǒng)設(shè)計(jì)階段,可以通過FTA技術(shù)挖 掘系統(tǒng)潛在的故障,并將這些故障的補(bǔ)償電路存儲在靜態(tài)配置庫中。在系統(tǒng)運(yùn)行時,如果發(fā) 生故障,則以向量(In,CWi)為索引到靜態(tài)配置庫中查找對應(yīng)的補(bǔ)償電路。
[0058]如果查找對應(yīng)的補(bǔ)償電路,則說明發(fā)生了已知故障,直接從配置庫中查找對應(yīng)的 補(bǔ)償電路,完成對系統(tǒng)故障的修復(fù)。
[0059] 如果沒有查到對應(yīng)的修復(fù)電路,則說明發(fā)生了未知故障,需要啟動演化算法來演 化補(bǔ)償電路。在演化未知故障的補(bǔ)償電路時,采用一種基于相似性的演化算法來加速演化 過程。首先,采用海明距離來計(jì)算期望補(bǔ)償輸出和配置庫中已有電路的補(bǔ)償輸出的相似性, 表示為Dis(R,R'),其中R是期望補(bǔ)償電路的輸出,R'是配置庫中已有電路的補(bǔ)償輸出。如果 云,/?';),則用R '對應(yīng)的補(bǔ)償電路來產(chǎn)生演化算法的初始種群,并演化出R; 反之,則根據(jù)R'對應(yīng)的補(bǔ)償電路來演化出然后在補(bǔ)償輸出上加上反相器?;谙嗨菩缘?演化修復(fù)機(jī)制能夠充分利用已有補(bǔ)償電路的結(jié)構(gòu)特點(diǎn),加快演化算法的收斂速度,減少演 化耗時,適用于實(shí)時性容錯系統(tǒng)。
[0060] 靜態(tài)配置庫的大小取決于系統(tǒng)規(guī)模和硬件資源,靜態(tài)配置庫的空間越大占用的存 儲資源也越多,同時查庫的時間也會遞增。圖3給出了用靜態(tài)配置庫修復(fù)三位奇偶校驗(yàn)器電 路中故障的示例。圖中的計(jì)算單元矩陣(Function Element Array,F(xiàn)EA)包含四個計(jì)算單 元,每個計(jì)算單元由兩個多路選擇器和一個函數(shù)模塊組成,每個功能函數(shù)模塊包含八個函 數(shù)功能。計(jì)算單元的輸入數(shù)據(jù)由cfgl和cfg2信號決定,計(jì)算單元的功能由cfg3信號決定。假 設(shè)在線路f Q出現(xiàn)短路的故障,當(dāng)輸入I n = (〇 1 〇)時,系統(tǒng)的實(shí)際輸出是〇reai = 〇,期望輸出〇exp =1,根據(jù)公式(5)可以得到R=l,則可以判斷系統(tǒng)出現(xiàn)故障。這時選擇向量(In,0real) = (010,0)作為查庫的索引,如果在庫中能夠查到匹配的修復(fù)電路,則說明該故障是已知故 障,直接用庫中的配置信息重構(gòu)VRC。在該示例中,VRC被重配置成一個異或電路,故障電路 被補(bǔ)修正,最終得到正確輸出。配置庫中的修復(fù)電路和故障索引是一對多的關(guān)系,即一個修 復(fù)電路可能對應(yīng)多個故障索引。例如故障向量(Oil,1 ),(100,〇)和(101,1)都對應(yīng)著同一個 修復(fù)電路。
[0061] ④利用演化與補(bǔ)償?shù)姆绞街貥?gòu)系統(tǒng)
[0062] 每修復(fù)一個故障,都會將對應(yīng)的補(bǔ)償電路存儲在配置庫中,但是配置庫的存儲空 間有限,不可能存儲所有的補(bǔ)償電路。當(dāng)配置庫內(nèi)存溢出時,配置庫將無法存儲新的補(bǔ)償電 路,而且隨著系統(tǒng)長時間的運(yùn)行,可能會出現(xiàn)更多的未知故障,配置庫的作用逐漸降低,最 終會影響系統(tǒng)的容錯能力。為了提高系統(tǒng)長期運(yùn)行的可靠性,當(dāng)配置庫內(nèi)存溢出時,將采用 基于補(bǔ)償修復(fù)技術(shù)重構(gòu)系統(tǒng)。
[0063] 在重構(gòu)系統(tǒng)時,考慮停滯效應(yīng)對演化算法的影響。停滯效應(yīng)是指種群的適應(yīng)度在 演化初期增加很快,但是當(dāng)種群的適應(yīng)度接近目標(biāo)值時,適應(yīng)度值停滯,大量的迭代次數(shù)都 花費(fèi)在了停滯階段,但種群的適應(yīng)度值卻并沒有增加,顯然,演化一個部分正確的系統(tǒng)要比 演化完整的目標(biāo)系統(tǒng)要簡單的多。在重構(gòu)目標(biāo)系統(tǒng)時,采用基于補(bǔ)償修復(fù)技術(shù)的演化方式。 演化過程中如果檢測到停滯效應(yīng)則停止演化,假設(shè)當(dāng)前迭代次數(shù)為匕,如果Gs,多Gmax,則表 明不可能在規(guī)定的迭代次數(shù)內(nèi)演化出目標(biāo)系統(tǒng),由于停滯效應(yīng)一般出現(xiàn)在演化初期,這種 情況一般不會發(fā)生。如果G s〈Gmax,則啟動修復(fù)進(jìn)程對已經(jīng)演化出的部分正確系統(tǒng)進(jìn)行修正, 修復(fù)進(jìn)程必須在G max-Gs次迭代次數(shù)內(nèi)完成。由于修復(fù)電路的規(guī)模一般比較小,比較容易得 到。
【主權(quán)項(xiàng)】
1. 一種基于演化硬件的實(shí)時容錯系統(tǒng)設(shè)計(jì)方法,其特征在于,步驟如下: (1) 動態(tài)自適應(yīng)CGP編碼方法 傳統(tǒng)的CGP編碼隨機(jī)選擇一個固定節(jié)點(diǎn)作為最終輸出節(jié)點(diǎn),動態(tài)自適應(yīng)CGP編碼方法輸 出節(jié)點(diǎn)不固定,采用一種動態(tài)隨機(jī)采樣模型從CGP編碼矩陣中選擇不同節(jié)點(diǎn)作為輸出節(jié)點(diǎn), 分別計(jì)算CGP編碼矩陣的適應(yīng)度值,并選擇適應(yīng)度值最大的矩陣作為最優(yōu)解;節(jié)點(diǎn)的采樣概 率隨著種群整體適應(yīng)度變化情況動態(tài)調(diào)整,當(dāng)前種群的適應(yīng)度分布情況采用以下公式計(jì) 算:其中,fd(t)表示種群中個體適應(yīng)度分布或多樣性;%表示種群中個體的平均適應(yīng)度 值;fmax(t)表示種群中個體的最大適應(yīng)度值;fmin(t)表示種群中個體的最小適應(yīng)度值;隨著 迭代次數(shù)的增加,個體之間的適應(yīng)度差值越來越小,平均適應(yīng)度值增加,fd(t)的值也逐漸 變大; 采樣概率分為兩部分,在演化初期,種群適應(yīng)度值較低,采用固定的較高采樣概率加塊 收斂速度;當(dāng)種群平均適應(yīng)度值或迭代次數(shù)達(dá)到預(yù)定的閾值時,根據(jù)種群平均適應(yīng)度值動 態(tài)調(diào)整采樣概率;演化過程中采樣概率的計(jì)算公式為:其中,Ps〇是設(shè)定的初始采樣概率,初始采樣概率的設(shè)定綜合考慮種群規(guī)模和染色體長 度;如果初始采樣概率設(shè)為1,則此時遍歷所有的節(jié)點(diǎn),并計(jì)算適應(yīng)度值;如果初始采樣概率 設(shè)置過小,則隨機(jī)選擇,初始采樣概率不低于〇. 5; to是采樣概率調(diào)整的臨界迭代次數(shù),to的 取值為0.3tmax;a是自定義的參數(shù)調(diào)節(jié)因子,設(shè)定為2,^^是演化算法的最大迭代次數(shù); (2) 基于演化硬件的實(shí)時容錯機(jī)制 容錯系統(tǒng)本質(zhì)上是一種實(shí)時系統(tǒng),實(shí)時性是容錯系統(tǒng)的一個重要約束條件;基于演化 硬件的實(shí)時容錯機(jī)制,以系統(tǒng)容錯時間為約束條件,利用靜態(tài)配置庫加速修復(fù)過程,兼顧容 錯系統(tǒng)的實(shí)時性和容錯性;整個實(shí)時容錯機(jī)制主要包括以下幾個方面: ① 計(jì)算演化算法最大迭代次數(shù) 將系統(tǒng)可容忍的故障時間定義為修復(fù)期限Tmax;Tmax通過故障分析樹技術(shù)得到;為了保 證系統(tǒng)在修復(fù)期限內(nèi)修復(fù)系統(tǒng)故障,在演化過程中將修復(fù)期限作為演化算法的約束條件; 首選通過公式(3)計(jì)算出演化算法迭代一次需要的時間T g; Tg = ^(Tcfg+Tfit)+Tea (3) 其中,Trfg是演化平臺的配置時間,Tflt是適應(yīng)度評估時間,Tea是演化算法的執(zhí)行時間,A 是每次迭代過程中產(chǎn)生的子代個體的數(shù)量;則根據(jù)公式(4)得到最大的迭代次數(shù);② 運(yùn)行時故障檢測 在系統(tǒng)運(yùn)行階段,當(dāng)系統(tǒng)出現(xiàn)故障時,需要在最短的時間內(nèi)檢測到錯誤;故障最終導(dǎo)致 系統(tǒng)輸出錯誤,比較系統(tǒng)的實(shí)際輸出和期望輸出,判斷系統(tǒng)是否有故障發(fā)生;故障檢測的結(jié) 果用公式(5)表示其中R表示實(shí)際輸出和期望輸出的異或,如果期望輸出和實(shí)際輸出一致,則R為〇,否則R 不為零,通過檢測R的值,得到檢測系統(tǒng)是否出錯; ③ 利用靜態(tài)配置庫修復(fù)故障 靜態(tài)配置庫主要用來加速故障的修復(fù)時間;在系統(tǒng)設(shè)計(jì)階段,通過FTA技術(shù)挖掘系統(tǒng)潛 在的故障,并將這些故障的補(bǔ)償電路存儲在靜態(tài)配置庫中;在系統(tǒng)運(yùn)行時,如果發(fā)生故障, 貝1J以向量(In,CWi)為索引到靜態(tài)配置庫中查找對應(yīng)的補(bǔ)償電路; 如果查找對應(yīng)的補(bǔ)償電路,則說明發(fā)生了已知故障,直接從配置庫中查找對應(yīng)的補(bǔ)償 電路,完成對系統(tǒng)故障的修復(fù); 如果沒有查到對應(yīng)的修復(fù)電路,則說明發(fā)生了未知故障,啟動演化算法來演化補(bǔ)償電 路; 在演化未知故障的補(bǔ)償電路時,采用一種基于相似性的演化算法來加速演化過程;首 先,采用海明距離來計(jì)算期望補(bǔ)償輸出和配置庫中已有電路的補(bǔ)償輸出的相似性,表示為 Dis(R,R'),其中R是期望補(bǔ)償電路的輸出,R'是配置庫中已有電路的補(bǔ)償輸出;如果 2>貧(見及>:£)蚵云,,則用R '對應(yīng)的補(bǔ)償電路來產(chǎn)生演化算法的初始種群,并演化出R; 反之,則根據(jù)R'對應(yīng)的補(bǔ)償電路來演化出R,然后在補(bǔ)償輸出上加上反相器; 靜態(tài)配置庫的大小取決于系統(tǒng)規(guī)模和硬件資源,靜態(tài)配置庫的空間越大占用的存儲資 源越多,查庫的時間遞增;配置庫中的修復(fù)電路和故障索引是一對多的關(guān)系,即一個修復(fù)電 路對應(yīng)多個故障索引; ④ 利用演化與補(bǔ)償?shù)姆绞街貥?gòu)系統(tǒng) 每修復(fù)一個故障,將對應(yīng)的補(bǔ)償電路存儲在配置庫中,但是配置庫的存儲空間有限,不 能存儲所有的補(bǔ)償電路;當(dāng)配置庫內(nèi)存溢出時,配置庫將無法存儲新的補(bǔ)償電路,而且隨著 系統(tǒng)長時間的運(yùn)行,出現(xiàn)更多的未知故障,配置庫的作用逐漸降低,最終影響系統(tǒng)的容錯能 力;為了提高系統(tǒng)長期運(yùn)行的可靠性,當(dāng)配置庫內(nèi)存溢出時,將采用基于補(bǔ)償修復(fù)技術(shù)重構(gòu) 系統(tǒng); 在重構(gòu)目標(biāo)系統(tǒng)時,采用基于補(bǔ)償修復(fù)技術(shù)的演化方式;演化過程中如果檢測到停滯 效應(yīng)則停止演化,假設(shè)當(dāng)前迭代次數(shù)為匕,如果Gs,多Gmax,則表明不能在規(guī)定的迭代次數(shù)內(nèi) 演化出目標(biāo)系統(tǒng);如果G s〈Gmax,則啟動修復(fù)進(jìn)程對已經(jīng)演化出的部分正確系統(tǒng)進(jìn)行修正,修 復(fù)進(jìn)程必須在G max-Gs次迭代次數(shù)內(nèi)完成。
【文檔編號】G06F11/14GK106055426SQ201610341467
【公開日】2016年10月26日
【申請日】2016年5月21日
【發(fā)明人】王潔, 柳繼委
【申請人】大連理工大學(xué)