在每個子目標函數(shù)上的取值,并根據(jù)種群的整體狀態(tài)更新種群中每個個體 的狀態(tài); S6從種群中獲取滿足限制條件的有效解作為優(yōu)秀個體保留; S7使用帶海明距離檢測的均勻兩點交叉算子對種群進行交叉運算; S8使用考慮等位基因的多樣性的變異算子對種群進行變異運算; S9按照步驟S5對每個個體的狀態(tài)進行更新,調整每一位的等位基因濃度,并根據(jù)種群 特性更新自我集; SlO判斷是否達到最大進化代數(shù),如果是,則退出;否則將當前進化代數(shù)加1并返回步驟 S2開始下一代進化,以尋找更好的解。2. 根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,所述步驟 Sl的具體方法如下: 1.1) 設置自我集更新長度aSelf為編碼長度的二分之一; 1.2) 設置自我集最小匹配長度bSelf為編碼長度的五分之一; 1.3) 設置各個基因位0和1的濃度默認值為5000; 1.4) 初始化自我集,把每一位都設置為2,當某一位為2時表示該位為空; 1.5) 設置交叉概率Pc和變異概率Pm。3. 根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,步驟S2 中,具體按下式對自我集最小匹配長度bSelf進行更新:其中L為編碼長度,gen為當前進化代數(shù),Maxgen為最大進化代數(shù),η為一個用于調整的 參數(shù)。4. 根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,步驟S3的 具體方法如下: 3.1) 產生一個新的種群,其中包括2L個新個體,L為編碼長度,并初始化所有個體的每 一位為空; 3.2) 對于步驟3.1)中所得種群的所有個體,循環(huán)處理其中的每一位;其中,單個個體的 處理過程如下: 3.2.1)對于當前位,產生一個隨機數(shù)rd; 3.2.2) 計算該位上O的濃度除以O和1濃度之和的值proportion; 3.2.3) 如果在步驟3.2.1)中所得的rd小于在步驟3.2.3)計算所得的proportion,則設 置該位為0;否則設置該位為1; 3.2.4) 判斷是否所有位均被處理完畢,如果是,則結束當前個體的處理,并轉至處理下 一個個體,否則轉至下一位,并返回至步驟3.2.1); 3.3)所有個體均按照步驟3.2.1 )-3.2.4)的方法進行處理后,轉至執(zhí)行步驟S4。5. 根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,步驟S4中 的具體方法如下: 4.1) 對于步驟S3最終得到的種群,將其中的每一個個體分別與自我集進行按位比較, 得到每個個體中與自我集不相同的位的個數(shù),即海明距離的d; 4.2) 對于每個個體,如果d小于自我集最小匹配長度bSelf,則把該個體從種群中剔除, 否則保留該個體; 4.3) 所有個體處理完畢后,將上一代保留的優(yōu)秀個體加當前的種群中。6. 根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,步驟S5 中,每個個體的狀態(tài)具體為個體在每個子目標函數(shù)上的值,以及根據(jù)對這些子目標函數(shù)值 進行排序后得到的等級而計算出的適應度值,所述子目標函數(shù)包括面積函數(shù)、成本函數(shù)和 功耗函數(shù);所述步驟S5的具體方法如下: 5.1) 按下式計算并更新每個個體的面積:其中N為種群中個體的數(shù)量,對于種群中任意一個節(jié)點i,wi為節(jié)點i的實現(xiàn)方式,值為0 代表軟件實現(xiàn),值為1代表硬件實現(xiàn),AH1R表節(jié)點i用硬件實現(xiàn)時所占用的芯片面積,用軟 件實現(xiàn)時占用芯片面積為〇; 5.2) 按下式計算并更新每個個體的成本:其中Wi為節(jié)點i的實現(xiàn)方式,值為0代表軟件實現(xiàn),值為1代表硬件實現(xiàn),CHi和CSi分別代 表節(jié)點i用硬件實現(xiàn)和用軟件實現(xiàn)時的成本; 5.3) 對于每個個體,按如下公式計算并更新功耗:其中,Wi為節(jié)點i的實現(xiàn)方式,值為0代表軟件實現(xiàn),值為1代表硬件實現(xiàn),PHi和PSi分別 代表節(jié)點i用硬件實現(xiàn)和用軟件實現(xiàn)時的功耗,CPHjPCSH1分別為節(jié)點i用硬件實現(xiàn)時與所 有前驅節(jié)點和所有后繼節(jié)點之間的通信功耗,CPS i和CSSi分別為節(jié)點i用軟件實現(xiàn)時與所有 前驅節(jié)點和所有后繼節(jié)點之間的通信功耗; 5.4) 將種群中的個體根據(jù)子目標函數(shù)值進行排序并標記等級,排序依據(jù)為:對任意兩 個個體,記為a,b,如果a在每個子目標函數(shù)上的值都小于或等于b在每個相應子目標函數(shù)上 的值,且a至少在一個子目標函數(shù)上的值小于b在相應子目標函數(shù)上的值,則稱a可以支配k 排序步驟如下: 5.4.1) 挑選出種群中所有不能被其他任何個體支配的個體,將它們的等級標記為m,m 的初始值設置為1; 5.4.2) 將步驟5.4.1)中被標記為等級m的個體從種群中暫時移出,放到臨時空間中; 5.4.3) 將m的值加1;如果種群中還存在沒有被標記等級的個體,則返回步驟5.4.1),否 則轉至執(zhí)行步驟5.5); 5.5)按如下公式計算并更新每一個個體的適應度值:其中對于任意一個個體i,Ri為步驟5.4)中得到的個體i的等級。7. 根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,步驟S6的 具體方法如下: 對于每個個體,將步驟S5中計算得到的其在子目標函數(shù)上的取值與用戶給出的相應限 制條件進行比較,如果其在所有目標函數(shù)值都在限制條件之內,則該個體為有效個體,將其 保留,否則淘汰。8. 根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,所述步驟 S7的具體方法如下: 7.1) 按如下公式計算交叉閾值:其中CL為發(fā)生交叉操作的兩個個體間的最小海明距離,g為當前代數(shù),G為總的進化代 數(shù),L為編碼長度; 7.2) 將個體的順序打亂; 7.3) 按打亂后的順序每次選取兩個個體并計算其海明距離; 7.4) 如果計算所得的海明距離小于閾值CL,則對應的兩個個體不進行交叉,并返回到 步驟7.3)進行下兩個個體的判斷,否則轉到步驟7.5); 7.5) 產生一個隨機數(shù)rd,如果rd小于交叉概率Pc,則轉至步驟7.6),否則返回步驟7.3) 進行下兩個個體的判斷; 7.6) 在O、1、2中隨機選擇一個數(shù)字記為c,并隨機產生兩個交叉點c 1和c2,其中,c l〈c2; 7.7) 如果c是O,則將兩個個體的編碼的從O到cl之間的部分交換;如果c是1,則將兩個 個體的編碼的從cl到c2之間的部分交換;如果c是2,則將兩個個體的編碼的從c2到L之間的 部分交換,其中,L為編碼長度; 7.8) 判斷是否所有個體都被處理過,如果是,則繼續(xù)執(zhí)行步驟S8,否則返回步驟7.3)繼 續(xù)處理。9. 根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,步驟S8 中,需要對所有個體分別進行處理,而對于每一個個體,循環(huán)處理其每一位;單個個體的處 理方法具體如下: 8.1) 對于當前位,生成一個隨機數(shù)rd; 8.2) 如果步驟8.1)中的隨機數(shù)rd大于變異概率Pm,則不對該位進行變異,并轉至步驟 8.3),否則轉至步驟8.4); 8.3) 判斷是否所有位均被處理完畢,如果是,結束該個體的處理,并轉至處理下一個個 體,否則轉至下一位并返回執(zhí)行步驟8.1); 8.4) 按如下公式求出該位的等位基因多樣度:其中S1(J)表示個體i的基因在第j位上的值,V1(J)表示個體i的第j位的等位基因多樣 度;PopSize為種群規(guī)模,即所有等位基因的個數(shù);某一位上的等位基因多樣度即為在該位 上的數(shù)值與該位相同的個體個數(shù)在種群中所占比例; 8.5) 如果步驟8.4)計算得到的等位基因多樣度大于閾值,則對該位進行變異,即用1減 去該位上的值,并用得到的值替換原有值; 8.6) 判斷是否所有位均被處理完畢,如果是,結束該個體的處理,并轉至處理下一個個 體,否則轉至下一位并返回執(zhí)行步驟8.1)。10.根據(jù)權利要求1所述的一種保證質量的快速軟硬件劃分方法,其特征在于,步驟S9 的具體步驟如下: 9.1) 按步驟S5的方法更新每個個體的狀態(tài),并計算所有個體的平均適應度值avg; 9.2) 設置兩個數(shù)組1111111_0和1111111_1,分別存儲每個基因位上取0和取1的適應度值小于 a vg的個體的個數(shù); 9.3) 清空保存優(yōu)秀個體的數(shù)組GoodOnes; 9.4) 循環(huán)處理所有個體,單個個體i的處理方法如下: 9.4.1) 將其適應度值與平均適應度值avg進行比較,如果個體i適應度值大于avg,則轉 步驟9.4.2),否則轉至步驟9.4.4); 9.4.2) 對個體i每一位進行判斷,如果該位是1,則將記錄等位基因濃度的數(shù)組 consistence」在這一位上的值加上該個體的適應度值;如果該位是0,則將記錄等位基因 濃度的數(shù)組cons istence_0在這一位上的值加上該個體的適應度值; 9.4.3) 將個體i放入步驟9.3)中被清空的優(yōu)秀個體數(shù)組GoodOnes中并結束個體i的處 理; 9.4.4) 對個體i每一位進行判斷,如果該位是1,則將記錄等位基因濃度的數(shù)組 consistence」在這一位上的值減去該個體的適應度值,并將num_l在這一位上的值加1;如 果該位是〇,則將記錄等位基因濃度的數(shù)組consistence_0在這一位上的值減去該個體的適 應度值,并將num_0在這一位上的值加1; 9.5)循環(huán)比較num_0和num_ 1的每一位,其中每一位的比較方法如下: 9.5.1)求num_0和num_l在這一位上的差的絕對值,如果該絕對值大于自我集更新長度 aSelf,則自我集的這一位需要更新,否則轉至步驟9.5.2);更新方法如下: 如果num_0在當前位上的值大于numj在當前位上的值,則設置自我集的當前位為0;否 則置自我集的當前位為I; 9.5.2)判斷是否所有位均被處理完畢,如果是,則轉至下一位并返回步驟9.5.1 ),否則 結束處理。
【專利摘要】本發(fā)明公開了一種保證質量的快速軟硬件劃分方法,保留遺傳算法的交叉運算和變異運算,并引入陰性選擇算法的陰性選擇過程和基于等位基因濃度來指導產生新個體的策略,采取一種新型的進化方法來加速進化的過程并保證個體的質量,從而克服傳統(tǒng)遺傳算法耗時長以及陰性選擇算法結果隨機性大、容易陷入局部最優(yōu)的缺點。
【IPC分類】G06N3/12, G06F9/44
【公開號】CN105487873
【申請?zhí)枴緾N201510884819
【發(fā)明人】段振華, 李炳巖, 張南, 黃伯虎, 田聰, 王小兵
【申請人】西安電子科技大學
【公開日】2016年4月13日
【申請日】2015年12月4日