專利名稱:演化硬件適應度動態評估的方法
技術領域:
本發明涉及的是一種硬件演化方法,更明確地說涉及一種實現演化硬件適應度動態評估的方法。
背景技術:
演化硬件屬于仿生硬件研究的一個分支,其概念最初是由日本的Hugode Garis和瑞士聯邦工學院于1992年提出的。根據地球上生命的起源,從種群發生學(phylogeny)、個體發生學(ontogeny)以及后天遺傳學(epigenesis)三個層次的演化過程出發,可以建立仿生硬件體系的POE模型。以P(phylogeny)軸代表像遺傳算法這類群體演化為基礎的仿生硬件系統,以O(Ontogeny)軸代表像細胞分裂這類多細胞組織的生長過程的仿生硬件系統,以E(Epigenesis)軸代表像神經系統、免疫系統和內分泌系統這類能集成與外部環境相互作用的大量信息的仿生硬件系統(學習硬件)。
演化硬件主要由演化算法及可重構模擬或數字陣列組成,例如由遺傳算法(GA,Genetic Algorithm)與現場可編程門陣列(FPGA,FieldProgrammable Gate Array)構成。目前,在利用FPGA和GA進行電路的演化設計這一方面,演化設計的流程與常規的遺傳算法流程相似,也包括染色體編碼、種群初始化、適應度評估、遺傳操作(選擇、交叉、變異)等步驟地迭代。
演化硬件是演化計算技術在系統內部結構的設計、調節、實時自適應等方面的應用,即以演化算法特別是遺傳算法作為組合優化和全局搜索的主要工具,以可編程器件作為主要的評估手段和實現載體,尋求在不依賴先驗知識和外力推動(如人工干預)的條件下,通過演化來獲得滿足給定要求的電路和系統結構,甚至使系統自動地、實時地調整(重新配置)其內部結構,以適應內部條件(如局部故障)和外部環境(功能要求或物理條件)的變化。對于給定的電路功能描述,演化算法將自動搜索到實現該功能的電路,有時甚至會獲得比手工設計更優方案。
演化硬件技術能根據外界環境變化而自適應地改變自身硬件結構,在自主移動機器人控制器、無線傳感器網絡節點等領域都有重要的應用價值。在電子設計自動化領域,將模擬生物群體進化過程的演化算法與可重構硬件相結合,可以實現數字系統的綜合甚至自動設計。
制約演化硬件發展的主要瓶頸是演化速度問題,解決這一問題的關鍵之一是加快適應度評估速度。
發明內容本發明的目的在于提供一種能使應用遺傳算法進行演化硬件計算時能夠快速有效地進行生成種群的適應度評估,并將評估結果反饋回PC機,以決定是否繼續運算的演化硬件適應度動態評估的方法。
本發明的目的是這樣實現的(1)由PC機向可重構FPGA下載演化計算生成的種群;生成的種群為硬件電路編碼,在FPGA中可以還原為電路;(2)將FPGA中的資源分為三個部分種群下載部分、功能驗證部分和結果反饋部分,這三個部分采用流水策略,并發執行;(3)采用黑盒測試進行功能驗證;(4)向PC機反饋驗證結果。
經過FPGA驗證的種群,向PC機返回適應度信息,判定是否繼續進行演化計算,并為生成下一代種群提供依據。
本發明是通過將個體(配置位串)實際加載到FPGA上,再按照測試集逐項實際測試得到適應度值,而演化的目標是找到一個完全符合要求的個體(適應度等于100%)。在演化成功之后,將成熟染色體作為FPGA的配置位串,下載到FPGA的配置寄存器中,即可得到具有所需功能的硬件電路。本發明將每一代種群中的每個染色體位串作為可編程電路的配置信息,通過實際測試電路的輸入/輸出形成個體適應度值,從而實現適應度的實時在線評估。
圖1為本發明結構圖;圖2為FPGA邏輯單元陣列;圖3為包含微處理器核的FPGA;圖4為四選一數據選擇器和最小項編碼方式的電路結構采用最小項方式編碼產生的染色體種群片斷。
具體實施方式
下面結合附圖舉例對本發明做更詳細地描述
結合圖1,本發明的步驟包括(1)由PC機向可重構FPGA下載演化計算生成的種群;生成的種群為硬件電路編碼,在FPGA中可以還原為電路;(2)PC機產生迭代結果輸入FPGA功能實現電路1,將FPGA中的資源分為三個部分種群下載部分、功能驗證部分和結果反饋部分,這三個部分采用流水策略,并發執行;(3)由功能驗證電路2對功能實現電路1采用黑盒測試進行功能驗證。經過FPGA驗證的種群,向PC機返回適應度信息,判定是否繼續進行演化計算,并為生成下一代種群提供依據。
結合圖4,以四選一數據選擇器和最小項編碼方式為例闡述本發明,圖4給出了對該器件的電路結構采用最小項方式編碼產生的染色體種群片斷。該種群是由初始種群經選擇、交叉、變異數次迭代后產生,所使用的遺傳算子為單點交叉最優個體直接進入下一代和輪盤賭選擇策略相結合的方法。用軟件仿真時,適應度評估是將染色體翻譯成電路結構,以所有可能的輸入組合作為測試向量,計算電路輸出與預期目標進行比較。這種方法有兩個缺點1.適應度計算速度慢,當電路規模較大時,輸入向量呈指數增長,計算量大,軟件仿真時間長。2.在目標函數未知的時候無從下手。在只知道器件行為級描述而不了解器件編碼的情況下這一缺點將使演化硬件喪失優勢。
結合圖1,理想情況下,應用演化硬件技術,只需將目標器件的行為級描述輸入PC機,即幾位輸入幾位輸出、輸入輸出的數據符合的具體規則等。然后由PC機進行編碼,生成初始種群。初始種群為隨機生成,種群中的個體與目標編碼長度一致,沒有其他要求。PC機對初始種群應用遺傳算法。在遺傳進入下一代時,需進行適應度評估。本發明將上一代生成的種群下載到高速FPGA中,在1中生成實時動態更新的電路,并在2中對該電路的功能進行評判。
由圖4中所示,每一代種群中的個體差別并不大,通常只是1~2位的不同,所以本發明在種群下載到FPGA時采取直接變換的方式。即,首次下載為全新,以后各次下載均在FPGA現有編碼基礎上進行改動,按位修改。
由于本發明采用支持動態可重構技術的FPGA設備,充分利用已有的電路配置和重定位技術,采用基于位流文件差異的動態部分重構方法,可以加快系統重構速度。通過深入分析配置位流文件的結構,利用相關接口工具直接生成位流及進行位流修改。
同時結合圖2,圖中3為動態可重構FPGA中下載種群代碼的部分。在此區域內下載種群代碼,每次下載將原有內容覆蓋。固定部分4為功能驗證電路,采用黑盒測試的方法為3生成的電路提供測試,評判電路是否符合初始的行為級描述。再將結果真或假傳遞給5,觸發5向PC反饋,5主要負責與PC機的通訊。若4中結果為真則反饋PC機終止計算,否則繼續演化硬件的計算PC機以此為依據分析適應度并生成下一代種群向3下載覆蓋原有代碼。
按上述順序反復運行直至4中結果為真,向PC機反饋信息,結束演化計算。并標記該種群為最終值。
結合圖3,它是本發明的第二種具體實時方式有些芯片包含微處理器核例如,在支持動態可重構的FPGA上利用片上的微處理器硬核實現遺傳算法,在同一片FPGA上演化生成電路。如圖3所示6為動態部分,7、8為固化在FPGA上的電路。
6為動態可重構FPGA中下載種群代碼的部分。在此區域內下載種群代碼,每次下載將原有內容覆蓋。固定部分7為功能驗證電路,采用黑盒測試的方法為6生成的電路提供測試,評判電路是否符合初始的行為級描述。
再將結果真或假傳遞給8,觸發8向PC反饋,8主要負責與微處理器核通訊。若7中結果為真則反饋微處理器核終止計算,否則繼續演化硬件的計算微處理器核以此為依據分析適應度并生成下一代種群向6下載覆蓋原有代碼。
按上述順序反復運行直至7中結果為真,向PC機反饋信息,結束演化計算。并標記該種群為最終值。
權利要求
1.一種演化硬件適應度動態評估的方法,其特征是(1)由PC機向可重構FPGA下載演化計算生成的種群;生成的種群為硬件電路編碼,在FPGA中可以還原為電路;(2)將FPGA中的資源分為三個部分種群下載部分、功能驗證部分和結果反饋部分,這三個部分采用流水策略,并發執行;(3)采用黑盒測試進行功能驗證;(4)向PC機反饋驗證結果。
2.根據權利要求1所述的演化硬件適應度動態評估的方法,其特征是經過FPGA驗證的種群,向PC機返回適應度信息,判定是否繼續進行演化計算,并為生成下一代種群提供依據。
全文摘要
本發明提供的是一種演化硬件適應度動態評估的方法。(1)由PC機向可重構FPGA下載演化計算生成的種群;生成的種群為硬件電路編碼,在FPGA中可以還原為電路;(2)將FPGA中的資源分為三個部分種群下載部分、功能驗證部分和結果反饋部分,這三個部分采用流水策略,并發執行;(3)采用黑盒測試進行功能驗證。本發明將每一代種群中的每個染色體位串作為可編程電路的配置信息,通過實際測試電路的輸入/輸出形成個體適應度值,從而實現適應度的實時在線評估。
文檔編號G06N3/00GK101082965SQ20071007249
公開日2007年12月5日 申請日期2007年7月11日 優先權日2007年7月11日
發明者張國印, 姚愛紅, 關琳 申請人:哈爾濱工程大學