專利名稱:一種基于貪心模擬退火算法的軟硬件劃分的方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及到嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域,特指一種基于貪心模擬退火算法的軟硬件劃分的方法。
背景技術(shù):
軟硬件劃分是指在系統(tǒng)設(shè)計(jì)時(shí)確定各個(gè)模塊的實(shí)現(xiàn)方式,以解決系統(tǒng)功能模塊的映射問題。軟硬件劃分是嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)的關(guān)鍵步驟,劃分結(jié)果直接決定系統(tǒng)設(shè)計(jì)的優(yōu)劣。其基本目標(biāo)是在滿足設(shè)計(jì)約束的條件下,將任務(wù)合理地劃分到軟件或者硬件處理單元上執(zhí)行,以實(shí)現(xiàn)系統(tǒng)目標(biāo)最優(yōu)化,具體包括硬件實(shí)現(xiàn)面積最小或功能模塊運(yùn)行時(shí)間最小等。根據(jù)目標(biāo)體系結(jié)構(gòu)的不同,軟硬件劃分問題可分為雙路劃分和多路劃分。其中雙路劃分應(yīng)用最廣泛,也是軟硬件劃分問題的基礎(chǔ)。軟硬件劃分被證明是一個(gè)NP完全問題,隨著任務(wù)規(guī)模的增加,解空間成指數(shù)增長?,F(xiàn)有的軟硬件劃分主要是基于啟發(fā)式算法,包括遺傳算法、模擬退火、禁忌搜索、免疫算法等。遺傳算法有較強(qiáng)的全局搜索性能,但它的爬山能力弱,在進(jìn)化后期收斂速度較慢, 在實(shí)際應(yīng)用中容易出現(xiàn)早熟現(xiàn)象;模擬退火算法具有擺脫局部最優(yōu)解的能力,能抑制遺傳算法的早熟現(xiàn)象,但它的進(jìn)化速度慢,特別是前期的退火效率低,需要較長時(shí)間才能趨向于系統(tǒng)最優(yōu)解;禁忌搜索法通過引入靈活的存儲結(jié)構(gòu)和相應(yīng)禁忌準(zhǔn)則來避免迂回搜索,并通過赦免一些被禁忌的優(yōu)良狀態(tài),具有較好的爬山能力,但數(shù)據(jù)存取操作頻繁,影響了搜索速度;免疫算法是基于免疫系統(tǒng)的學(xué)習(xí)算法,具有良好的系統(tǒng)應(yīng)答性和自平衡能力,但機(jī)理復(fù)雜、系統(tǒng)龐大,可以借鑒的研究成果不多,在算法理論基礎(chǔ)、建模方法等方面都存在問題。國內(nèi)外諸多學(xué)者也嘗試將不同劃分算法相結(jié)合,比較典型的是遺傳和禁忌搜索融合算法、遺傳和螞蟻算法融合算法以及遺傳粒子群優(yōu)化算法等。這些算法在各自的領(lǐng)域都取得了一定的效果,但已有的方法大都結(jié)合兩種啟發(fā)式算法用于軟硬件劃分,難以避免啟發(fā)式算法所存在的初始化參數(shù)難以確定以及初始訓(xùn)練過程漫長等問題。這些問題處理不當(dāng)可能導(dǎo)致算法運(yùn)行時(shí)間過長,并降低找到近似最優(yōu)解的可能性。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就在于針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種能夠減少算法運(yùn)行時(shí)間、提高搜索質(zhì)量、減少計(jì)算復(fù)雜度的基于貪心模擬退火算法的軟硬件劃分的方法。為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案—種基于貪心模擬退火算法的軟硬件劃分的方法,其流程為(1)、將軟硬件劃分問題規(guī)約為0-1背包問題,使用時(shí)間復(fù)雜度較低的貪心算法對任務(wù)集進(jìn)行初始劃分,然后將此劃分結(jié)果作為模擬退火算法的初始值;(2)、模擬退火算法主要由兩層循環(huán)構(gòu)成,內(nèi)層循環(huán)根據(jù)擾動(dòng)模型產(chǎn)生新劃分并采用接收準(zhǔn)則對其進(jìn)行判斷接收;外層循環(huán)根據(jù)溫度閾值以及連續(xù)未接受新劃分的次數(shù)來
3判斷是否退出循環(huán)過程。作為本發(fā)明的進(jìn)一步改進(jìn)所述步驟(1)中對任務(wù)集進(jìn)行初始劃分的流程為首先計(jì)算每個(gè)任務(wù)的收益質(zhì)量比,然后按照非升序進(jìn)行排序,將其壓入隊(duì)列Q ;接下來進(jìn)行初始化操作,將任務(wù)全部劃分到軟件上執(zhí)行;每次循環(huán)尋找未劃分到硬件任務(wù)隊(duì)列Q中最大收益比任務(wù)\到硬件上實(shí)現(xiàn),如果該任務(wù)\需要硬件A^的大小小于剩余硬件Kes大小,就把任務(wù)\劃分到硬件上執(zhí)行,剩余可用硬件Ares大小為KJi ;否則,任務(wù)\不能劃分到硬件執(zhí)行,只能劃分到軟件上執(zhí)行;再把任務(wù)\從任務(wù)隊(duì)列Q中刪除,直到Q為空或硬件資源分配完成為止,最后輸出貪心算法的初始劃分結(jié)果,將該初始劃分結(jié)果作為模擬退火算法的初始值。所述步驟O)中,內(nèi)層循環(huán)所采用接收準(zhǔn)則的執(zhí)行流程為(2.1.1)以當(dāng)前劃分X為原點(diǎn),系統(tǒng)時(shí)間的增量ΔΤ為橫軸,硬件面積的增量 ΔΑ為縱軸,建立系統(tǒng)擾動(dòng)示意圖;用直線1平分第二象限和第四象限,將第二象限分為 Regionl (區(qū)域1)和Region2 (區(qū)域2),將第四象限分為Region3 (區(qū)域3)和Region4 (區(qū)域4);(2. 1. 2)在第一象限中的新劃分不是理想的解,采用梅特羅波利斯(Metropolis) 準(zhǔn)則對其進(jìn)行接收;對于第四象限中的Region4(區(qū)域4)中的劃分,采用梅特羅波利斯 (Metropolis)準(zhǔn)則對其進(jìn)行接收;(2. 1. 3)位于第三象限的新劃分是較理想的劃分,直接接收該解;第二象限中的 Region2中的新劃分在增加較少硬件面積的同時(shí)降低了較多系統(tǒng)時(shí)間,直接接收該區(qū)域的解;(2. 1.4)對于第二象限中的Regionl (區(qū)域1),采用傳統(tǒng)接收準(zhǔn)則將直接接收該解;(2. 1. 5)對于第四象限中的Regi0n3(區(qū)域3),采用傳統(tǒng)接收準(zhǔn)則接收該解。所述步驟O)中,外層循環(huán)的執(zhí)行流程為首先采用貪心算法的求解結(jié)果對模擬退火進(jìn)行初始化,然后進(jìn)行模擬退火操作;對每個(gè)溫度進(jìn)行K次循環(huán),每次循環(huán)根據(jù)擾動(dòng)模型產(chǎn)生新的軟硬件劃分,采用改進(jìn)的模擬退火接收準(zhǔn)則對新劃分進(jìn)行判斷,決定是否接受新解;如果更新,則連續(xù)未接受新的劃分次數(shù)NuselessW 1,否則,連續(xù)未接受新的劃分次數(shù)Nus&ssS新賦值O ;再降低當(dāng)前溫度值,直循環(huán)直至算法滿足退出條件,即當(dāng)前溫度Tcot 小于等于閾值Tted或連續(xù)未接受新劃分的次數(shù)Nuseless大于等于M ;最后輸出劃分結(jié)果,算法結(jié)束。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于本發(fā)明首先采用數(shù)學(xué)規(guī)約的方法,將雙路軟硬件劃分問題映射成一個(gè)0-1背包問題,然后使用時(shí)間復(fù)雜度較低的貪心算法對任務(wù)集進(jìn)行初始劃分,得到位于全局近似最優(yōu)解附近的解空間;在此基礎(chǔ)上,采用貪心算法的求解結(jié)果對模擬退火算法進(jìn)行初始化,解決了初始化參數(shù)難以確定以及初始訓(xùn)練過程漫長等問題。本發(fā)明進(jìn)一步根據(jù)解空間的擾動(dòng)特征通過改進(jìn)模擬退火算法的接收準(zhǔn)則,在選擇新解的過程中,對解空間進(jìn)行引導(dǎo),增加算法在近似最優(yōu)解區(qū)域的搜索概率,從而在加快算法收斂速度的同時(shí)提高了軟硬件劃分的質(zhì)量。本發(fā)明中的模擬退火算法屬于一種啟發(fā)式算法, 在運(yùn)行前,采用接近全局最優(yōu)解的劃分對算法進(jìn)行初始化,這樣就可以加快啟發(fā)式算法的收斂速度,增大其搜索近似最優(yōu)解的概率。綜上所述,本發(fā)明通過將貪心算法和模擬退火算法相結(jié)合,從運(yùn)行時(shí)間和劃分質(zhì)量兩個(gè)方面對軟硬件劃分問題進(jìn)行綜合優(yōu)化。
圖1是本發(fā)明的流程示意圖;圖2是本發(fā)明中基于貪心算法的軟硬件初始劃分的流程示意圖;圖3是本發(fā)明中模擬退火在軟硬件劃分的系統(tǒng)擾動(dòng)示意圖;圖4是本發(fā)明中接收準(zhǔn)則的流程示意圖;圖5是本發(fā)明中利用模擬退火算法進(jìn)行軟硬件劃分的流程示意圖。
具體實(shí)施例方式以下將結(jié)合說明書附圖和具體實(shí)施例對本發(fā)明做進(jìn)一步詳細(xì)說明。如圖1所示,本發(fā)明基于貪心模擬退火算法的軟硬件劃分的方法,其流程為(1)、將軟硬件劃分問題規(guī)約為0-1背包問題,使用時(shí)間復(fù)雜度較低的貪心算法對任務(wù)集進(jìn)行初始劃分,然后將此劃分結(jié)果作為模擬退火算法的初始值,使得模擬退火算法在開始搜索時(shí)就能夠接近全局近似最優(yōu)解所在區(qū)域,減少算法運(yùn)行時(shí)間。(2)、模擬退火算法主要由兩層循環(huán)構(gòu)成,內(nèi)層循環(huán)根據(jù)擾動(dòng)模型產(chǎn)生新劃分并采用改進(jìn)接收準(zhǔn)則對其進(jìn)行判斷接收;外層循環(huán)根據(jù)溫度閾值以及連續(xù)未接受新劃分的次數(shù)來判斷是否退出循環(huán)過程。本發(fā)明通過采用貪心算法的求解結(jié)果對模擬退火算法進(jìn)行初始化,通過模擬退火算法的接收準(zhǔn)則,在全局范圍內(nèi)快速搜索近似最優(yōu)解。算法通過將貪心算法和模擬退火算法相結(jié)合,從運(yùn)行時(shí)間和劃分質(zhì)量兩個(gè)方面對軟硬件劃分問題進(jìn)行了綜合優(yōu)化。由于0-1背包問題是典型的組合優(yōu)化問題,軟硬件劃分也是組合優(yōu)化問題。因此, 本發(fā)明在步驟(1)中將軟硬件劃分問題規(guī)約為0-1背包問題,然后采用背包問題的經(jīng)典方法對其進(jìn)行求解。軟硬件劃分問題是給定一個(gè)任務(wù)集,找到一個(gè)最優(yōu)可行解X= (Xl,X2,…,xn)。其中Xi e {0,1},i = 1,2, -,n,X1 = 1表示任務(wù)vi劃分到硬件執(zhí)行,Xi = 0表示劃分到軟件,Taw表示第i個(gè)任務(wù)劃分到硬件(hw)執(zhí)行的時(shí)間,7廣表示第i個(gè)任務(wù)劃分到軟件(sw) 上執(zhí)行的時(shí)間。定義硬件執(zhí)行代價(jià)H(X)及軟件執(zhí)行代價(jià)S(X)如式(1)和式( 所示
權(quán)利要求
1.一種基于貪心模擬退火算法的軟硬件劃分的方法,其特征在于,流程為(1)、將軟硬件劃分問題規(guī)約為0-1背包問題,使用時(shí)間復(fù)雜度較低的貪心算法對任務(wù)集進(jìn)行初始劃分,然后將此劃分結(jié)果作為模擬退火算法的初始值;(2)、模擬退火算法主要由兩層循環(huán)構(gòu)成,內(nèi)層循環(huán)根據(jù)擾動(dòng)模型產(chǎn)生新劃分并采用接收準(zhǔn)則對其進(jìn)行判斷接收;外層循環(huán)根據(jù)溫度閾值以及連續(xù)未接受新劃分的次數(shù)來判斷是否退出循環(huán)過程。
2.根據(jù)權(quán)利要求1所述的基于貪心模擬退火算法的軟硬件劃分的方法,其特征在于, 所述步驟(1)中對任務(wù)集進(jìn)行初始劃分的流程為首先計(jì)算每個(gè)任務(wù)的收益質(zhì)量比,然后按照非升序進(jìn)行排序,將其壓入隊(duì)列Q ;接下來進(jìn)行初始化操作,將任務(wù)全部劃分到軟件上執(zhí)行;每次循環(huán)尋找未劃分到硬件任務(wù)隊(duì)列Q中最大收益比任務(wù)、到硬件上實(shí)現(xiàn),如果該任務(wù)\需要硬件Ki的大小小于剩余硬件Ares大小,就把任務(wù)\劃分到硬件上執(zhí)行,剩余可用硬件Ares大小為KJi ;否則,任務(wù)\不能劃分到硬件執(zhí)行,只能劃分到軟件上執(zhí)行;再把任務(wù)^從任務(wù)隊(duì)列Q中刪除,直到Q為空或硬件資源分配完成為止,最后輸出貪心算法的初始劃分結(jié)果,將該初始劃分結(jié)果作為模擬退火算法的初始值。
3.根據(jù)權(quán)利要求1所述的基于貪心模擬退火算法的軟硬件劃分的方法,其特征在于, 所述步驟O)中,內(nèi)層循環(huán)所采用接收準(zhǔn)則的執(zhí)行流程為(2. 1. 1)以當(dāng)前劃分X為原點(diǎn),系統(tǒng)時(shí)間的增量ΔΤ為橫軸,硬件面積的增量ΔΑ為縱軸,建立系統(tǒng)擾動(dòng)示意圖;用直線1平分第二象限和第四象限,將第二象限分為Regionl和 Region2,將第四象限分為Region3和Region4 ;(2. 1. 2)在第一象限中的新劃分不是理想的解,采用梅特羅波利斯準(zhǔn)則對其進(jìn)行接收; 對于第四象限中的Region4中的劃分,采用梅特羅波利斯準(zhǔn)則對其進(jìn)行接收;(2. 1.3)位于第三象限的新劃分是較理想的劃分,直接接收該解;第二象限中的 Regi0n2中的新劃分在增加較少硬件面積的同時(shí)降低了較多系統(tǒng)時(shí)間,直接接收該區(qū)域的解;(2. 1. 4)對于第二象限中的Regionl,采用傳統(tǒng)接收準(zhǔn)則將直接接收該解;(2. 1. 5)對于第四象限中的Regi0n3,采用傳統(tǒng)接收準(zhǔn)則接收該解。
4.根據(jù)權(quán)利要求1所述的基于貪心模擬退火算法的軟硬件劃分的方法,其特征在于, 所述步驟O)中,外層循環(huán)的執(zhí)行流程為首先采用貪心算法的求解結(jié)果對模擬退火進(jìn)行初始化,然后進(jìn)行模擬退火操作;對每個(gè)溫度進(jìn)行K次循環(huán),每次循環(huán)根據(jù)擾動(dòng)模型產(chǎn)生新的軟硬件劃分,采用改進(jìn)的模擬退火接收準(zhǔn)則對新劃分進(jìn)行判斷,決定是否接受新解;如果 Xbest未更新,則連續(xù)未接受新的劃分次數(shù)Nuseless加1,否則,連續(xù)未接受新的劃分次數(shù)Nuseless 重新賦值O ;再降低當(dāng)前溫度值,直循環(huán)直至算法滿足退出條件,即當(dāng)前溫度Tcot小于等于閾值Tted或連續(xù)未接受新劃分的次數(shù)Nuseless大于等于M ;最后輸出劃分結(jié)果,算法結(jié)束。
全文摘要
一種基于貪心模擬退火算法的軟硬件劃分的方法,其流程為(1)、將軟硬件劃分問題規(guī)約為0-1背包問題,使用時(shí)間復(fù)雜度較低的貪心算法對任務(wù)集進(jìn)行初始劃分,然后將此劃分結(jié)果作為模擬退火算法的初始值;(2)、模擬退火算法主要由兩層循環(huán)構(gòu)成,內(nèi)層循環(huán)根據(jù)擾動(dòng)模型產(chǎn)生新劃分并采用接收準(zhǔn)則對其進(jìn)行判斷接收;外層循環(huán)根據(jù)溫度閾值以及連續(xù)未接受新劃分的次數(shù)來判斷是否退出循環(huán)過程。本發(fā)明能夠減少算法運(yùn)行時(shí)間、提高搜索質(zhì)量、減少計(jì)算復(fù)雜度。
文檔編號G06F9/50GK102508721SQ20111039100
公開日2012年6月20日 申請日期2011年11月30日 優(yōu)先權(quán)日2011年11月30日
發(fā)明者劉彥, 張婷, 徐成, 李蕊, 楊志邦, 王奕, 王輝, 駱偉, 黃兵 申請人:湖南大學(xué)