一種嵌套式的動(dòng)態(tài)環(huán)境變化檢測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種動(dòng)態(tài)環(huán)境變化檢測方法。特別是涉及一種嵌套式的動(dòng)態(tài)環(huán)境變化 檢測方法。
【背景技術(shù)】
[0002] 動(dòng)態(tài)軟硬件劃分問題是指在解決軟硬件劃分問題時(shí),系統(tǒng)所面對的待劃分的任務(wù) 集是不確定的,優(yōu)化算法必須檢測任務(wù)集的結(jié)構(gòu)才能確定采用什么策略進(jìn)行劃分以適應(yīng)最 新的環(huán)境。在動(dòng)態(tài)環(huán)境中,非常注重劃分算法的實(shí)時(shí)性,要求劃分算法有處理動(dòng)態(tài)軟硬件劃 分的能力。因此,劃分算法需要針對動(dòng)態(tài)環(huán)境的特性,設(shè)計(jì)自適應(yīng)算法,以滿足實(shí)際系統(tǒng)對 性能及可靠性的要求。
[0003] 動(dòng)態(tài)軟硬件劃分的數(shù)學(xué)模型:軟硬件劃分問題的模型通常用一個(gè)任務(wù)流圖(Task Graph)來描述,整個(gè)任務(wù)流圖是一個(gè)有向無環(huán)圖(DAG圖),可以用一個(gè)二元組表示:G= (V,E)。其中V= {V。,Vi,…,VJ是整個(gè)系統(tǒng)中任務(wù)單元的集合,Vi表示第i個(gè)任務(wù)節(jié)點(diǎn),E ={(H)lueV}表示兩個(gè)任務(wù)節(jié)點(diǎn)之間的數(shù)據(jù)依賴關(guān)系或流程控制,ei= (VJ,) 表示第i個(gè)節(jié)點(diǎn)和第j個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)依賴關(guān)系或流程控制。t稱為V,的前驅(qū)節(jié)點(diǎn),V, 稱為t的后繼節(jié)點(diǎn),兩者產(chǎn)生了單向的依存關(guān)系。圖1為一個(gè)DAG圖表示的軟硬件劃分系 統(tǒng)模型圖。
[0004] 每個(gè)節(jié)點(diǎn)詳細(xì)的屬性特征描述:
[0005] 隊(duì)={Tsw,Thw,Asw,AhwCsw,Chw,Psw,Phw,Ssw,Shw,…,X⑴}
[0006] 其中,Tsw和Thw分別表示任務(wù)節(jié)點(diǎn)用軟件和硬件實(shí)現(xiàn)的任務(wù)執(zhí)行時(shí)間,Asw和Ahw分 別表示任務(wù)節(jié)點(diǎn)用軟件和硬件實(shí)現(xiàn)時(shí)所需的硬件面積,Csw和Chw分別表示任務(wù)節(jié)點(diǎn)用軟件 和硬件實(shí)現(xiàn)時(shí)的成本,Psw和Phw分別表示任務(wù)節(jié)點(diǎn)用軟件和硬件實(shí)現(xiàn)時(shí)的功耗,Ssw和Shw分 別表示任務(wù)節(jié)點(diǎn)用軟件和硬件實(shí)現(xiàn)時(shí)的存儲開銷。x(i)表示該節(jié)點(diǎn)所選定的映射模式,表 示任務(wù)所選擇的軟硬件實(shí)現(xiàn)方式。邊集E是任務(wù)調(diào)度需要考慮的范疇,為了簡化系統(tǒng)描述 和增強(qiáng)對劃分問題的針對性,在劃分問題中不引入任務(wù)調(diào)度帶來的對實(shí)際總執(zhí)行時(shí)間的增 益。因此對調(diào)度參數(shù)E的取值考慮為理想情況下的0。根據(jù)上述對系統(tǒng)任務(wù)屬性的定義,將 軟硬件劃分問題的適應(yīng)度函數(shù)與約束函數(shù)定義為:
[0007]
[0008] 在動(dòng)態(tài)軟硬件劃分問題中,可以描述為如下數(shù)學(xué)模型。
[0009]
[0010] 處理動(dòng)態(tài)軟硬件劃分的優(yōu)化問題,首先對環(huán)境變化的準(zhǔn)確探測是非常關(guān)鍵的一 步,這是進(jìn)化算法及時(shí)對環(huán)境變化做出相關(guān)反應(yīng)的必要前提。檢測方法的好壞會(huì)直接影響 到劃分算法整體的時(shí)間效率和系統(tǒng)可靠性。然而,在現(xiàn)有的大多數(shù)科學(xué)研究中,基本上都 是預(yù)先假設(shè)算法己經(jīng)知道環(huán)境的變化情況,比如環(huán)境變化的準(zhǔn)確時(shí)間點(diǎn)和任務(wù)集變化的情 況,但實(shí)際情況并非如此。例如,在動(dòng)態(tài)調(diào)度的問題中,調(diào)度任務(wù)隨時(shí)都有可能發(fā)生變化。那 么,問題就來了。如何對外部環(huán)境進(jìn)行有效、準(zhǔn)確地探測是動(dòng)態(tài)進(jìn)化計(jì)算研究的首要任務(wù)。
[0011] 進(jìn)化算法作為一種盲優(yōu)化算法,即沒有直接使用目標(biāo)函數(shù)的變量和計(jì)算公式對尋 優(yōu)過程進(jìn)行引導(dǎo),而是將目標(biāo)函數(shù)視為黑盒,通過對目標(biāo)函數(shù)輸入和輸出的迭代性測試來 尋找最優(yōu)解。由于目標(biāo)函數(shù)的計(jì)算過程對于盲優(yōu)化算法來說是不可見的,因此這種優(yōu)化稱 為盲優(yōu)化。通常情況下,進(jìn)化算法是不能感知外界環(huán)境的變化,需要借助一些外在的輔助方 法,幫助進(jìn)化算法檢測環(huán)境的變化,這種檢測是非常重要的。如果檢測算法復(fù)雜度高,實(shí)現(xiàn) 起來困難,會(huì)占用寶貴的計(jì)算資源,不利于任務(wù)的劃分;如果檢測算法準(zhǔn)確率低,常常出現(xiàn) 對環(huán)境變化的誤判,這會(huì)嚴(yán)重影響到系統(tǒng)的可靠性。如果檢測算法的反應(yīng)速度很慢,實(shí)際環(huán) 境變化后很長時(shí)間后才能被檢測出來,這會(huì)浪費(fèi)一部分計(jì)算資源在無用功上,也會(huì)使系統(tǒng) 可靠性降低。因此,好的檢測方法能快速檢測到環(huán)境的變化,為劃分算法騰出更多的時(shí)間和 準(zhǔn)備進(jìn)行任務(wù)的劃分,提高劃分的效率能準(zhǔn)確地預(yù)測到環(huán)境的變化,提高系統(tǒng)的可靠性,避 免耗費(fèi)寶貴的計(jì)算資源。最后,好的檢測算法實(shí)現(xiàn)起來的復(fù)雜度要低,耗費(fèi)的計(jì)算資源少。
[0012] 常用的動(dòng)態(tài)環(huán)境檢測方法有:
[0013] 1、采樣評估法。
[0014] 在可行域的搜索空間中隨機(jī)采樣幾個(gè)點(diǎn),記錄這些采樣點(diǎn)并進(jìn)行適應(yīng)度評估,如 果其中只要有一個(gè)個(gè)體的適應(yīng)度值發(fā)生了變化,那么就認(rèn)為環(huán)境發(fā)生了變化。這種方法的 性能依賴于采樣點(diǎn)的數(shù)量。如果采樣點(diǎn)過多,采樣和評估都可能會(huì)占用寶貴的計(jì)算資源。如 果采樣點(diǎn)過少,采樣點(diǎn)所在的解空間并沒有發(fā)生變化,則也無法檢測出環(huán)境的變化,影響算 法的判斷的準(zhǔn)確率。
[0015] 2、最優(yōu)評估法。
[0016] 在下一代進(jìn)化發(fā)生之前,把目前最好的個(gè)體最優(yōu)解進(jìn)行重新評價(jià),如果適應(yīng)度值 在此刻發(fā)生了改變,那么就認(rèn)為環(huán)境發(fā)生了變化。這種方法能檢測最優(yōu)解位置發(fā)生改變的 動(dòng)態(tài)環(huán)境取得較好的檢測效果,但是對最優(yōu)解位置沒有發(fā)生變化的環(huán)境變化是無效的。在 大多數(shù)情況下,環(huán)境的變化會(huì)帶來最優(yōu)解位置的改變。但是,在有些情況下,單一的最優(yōu)解 采樣點(diǎn)無法準(zhǔn)確地判斷環(huán)境的變化。
[0017] 3、統(tǒng)計(jì)評估法。
[0018] 把種群性能的退化(deterioration),或者最好個(gè)體平均性能的降低作為環(huán)境是 否發(fā)生變化的指示器,通常用平均適應(yīng)度和適應(yīng)度方差作為種群性能退化的衡量標(biāo)準(zhǔn)。這 種方法是假設(shè)環(huán)境的變化引起原來解的性能降低作為前提的。一般來說,環(huán)境的變化會(huì)引 起種群性能的退化,所以它適應(yīng)于大多數(shù)情況。然而,在一些情況下,種群的性能可能會(huì)提 高,這種方法就不能適用。
[0019] 總之,如果檢測的采樣點(diǎn)較多,則勢必占用大量有限的、寶貴的計(jì)算資源,花在環(huán) 境變化的檢測上的代價(jià)較高,不利于算法對變化的最優(yōu)解的跟蹤??紤]到現(xiàn)實(shí)世界中環(huán)境 的變化是間隔一段時(shí)間才發(fā)生的,有的算法則采用了間隔若干代再進(jìn)行環(huán)境檢測的方法。
[0020] 然而,這些檢測方法都存在片面性,只能針對特殊情況對做出正確反應(yīng),不能對大 多數(shù)情況適用。對于一個(gè)可靠性要求非常高的系統(tǒng)而言,這將引起災(zāi)難性后果。
【發(fā)明內(nèi)容】
[0021] 本發(fā)明所要解決的技術(shù)問題是,提供一種嵌套式的動(dòng)態(tài)環(huán)境變化檢測方法。
[0022] 本發(fā)明所采用的技術(shù)方案是:一種嵌套式的動(dòng)態(tài)環(huán)境變化檢測方法,包括如下步 驟:
[0023] 1)提取和當(dāng)前劃分任務(wù)集有關(guān)的特征參數(shù),設(shè)置環(huán)境變化標(biāo)志位flag= 0,并規(guī) 定當(dāng)環(huán)境變化標(biāo)志位flag為1時(shí),表示環(huán)境發(fā)生變化;當(dāng)環(huán)境變化標(biāo)志位flag為0時(shí),表 示環(huán)境未發(fā)生變化;
[0024] 2)設(shè)置采樣數(shù)目為Μ;
[0025] 3)判斷當(dāng)前環(huán)境劃分規(guī)模η_和之前的環(huán)境劃分規(guī)模η_是否相等;
[0026] 4)在當(dāng)前環(huán)境下評估Μ個(gè)采樣個(gè)體的適應(yīng)度,判斷所述適應(yīng)度和之前的環(huán)境評估 下的適應(yīng)度是否相同,以此來判斷當(dāng)前環(huán)境適應(yīng)度函數(shù)和上一次環(huán)境適應(yīng)度函數(shù)f 是否相等;
[0027] 5)依次判斷當(dāng)前環(huán)境性能約束組中的每一個(gè)分量和之前的環(huán)境性能約束組 中的每一個(gè)相對應(yīng)的分量是否相等;
[0028] 6)依次判斷當(dāng)前環(huán)境鄰接矩陣UP之前的環(huán)境鄰接矩陣E中的Μ個(gè)對應(yīng)位置 上的值是否相等;
[0029] 7)依次判斷當(dāng)前環(huán)境節(jié)點(diǎn)屬性NodemjP之前的環(huán)境節(jié)點(diǎn)屬性Node中的Μ個(gè)對 應(yīng)位置上的值是否相等;
[0030] 8)結(jié)束檢測。
[0031] 步驟1)所述的特征參數(shù)包括:節(jié)點(diǎn)個(gè)數(shù)η,適應(yīng)度函數(shù)f,鄰接矩陣ΕηΧη,性能約束 向量LnX1,節(jié)點(diǎn)屬性矩陣NodenX2。
[0032] 步驟3)中如果不相等,將環(huán)境變化標(biāo)志位flag置1,表示環(huán)境發(fā)生變化,轉(zhuǎn)到步驟 8);否則,轉(zhuǎn)到步驟4)。
[0033] 步驟4)中如果Μ個(gè)采樣個(gè)體的適應(yīng)度和之前環(huán)境評估下的適應(yīng)度不全