李增武,姚睿
(南京航空航天大學,江蘇 南京 210016)
自演化系統(tǒng)能夠在演化算法的控制下改變自身結(jié)構(gòu)演化得到目標電路[1-2]?;贔PGA的片上可編程系統(tǒng)(system on a programmable chip,SOPC)設計可以對硬件資源的配置進行反復修改,在保證電路功能不變的情況下改變自身結(jié)構(gòu),實現(xiàn)自演化[3-5]。演化硬件(evolvable hardware,EHW)是實現(xiàn)自演化系統(tǒng)的硬件載體,VRC(vitual reconfigurable circuit)是一種實現(xiàn)EHW技術的虛擬電路結(jié)構(gòu)。VRC結(jié)構(gòu)是由設定的連線連接起來的一組規(guī)則的基本邏輯功能單元[6-8],基本邏輯功能單元能夠根據(jù)配置位串實現(xiàn)自身功能的改變,連線也可以根據(jù)配置位串進行控制,具有很好的靈活性和通用性。本文使用基于FPGA的SOPC設計方法實現(xiàn)基于VRC的自演化系統(tǒng),并以演化2位乘法器電路進行了驗證。
自演化系統(tǒng)采用基于FPGA的SOPC設計方法實現(xiàn),結(jié)構(gòu)如圖1所示。
自演化系統(tǒng)包括MicroBlaze軟核微處理器、通用異步通信接口UART及自定制的可進化IP核等。MicroBlaze是系統(tǒng)的CPU,負責系統(tǒng)控制和指令的發(fā)布。UART負責FPGA和PC機的通信。在演化時系統(tǒng)需要對FPGA的資源進行反復修改,因此需要自定制IP核以滿足該要求。
本文選取遺傳算法(genetic algorithm,GA)作為系統(tǒng)演化算法。EA是理論基礎最為完備的演化算法,在演化算法中應用較為廣泛。EA基于“適者生存”的原則,在每一次迭代過程中計算種群個體的適應度值,并根據(jù)候選個體的適應度值獲取該次迭代過程中的最優(yōu)解。通過競爭選擇機制,獲取適應度值較高的個體,對這些個體的染色體進行交叉、變異操作,產(chǎn)生新的種群。在迭代過程中,種群的部分個體不斷得到改進,越來越靠近系統(tǒng)需要的最優(yōu)解,類似于大自然中的生物進化過程。在搜索全局最優(yōu)解過程中能自動積累搜索空間的知識,并自動控制搜索過程以求得最優(yōu)解[9]。
EA的具體實現(xiàn)過程如下:
1) 初始化種群,編碼基因位串,建立算法和目標問題的關聯(lián)。
2) 配置硬件電路,并計算個體的適應度值。
3) 按照競爭選擇機制挑選適應度值較高的個體,根據(jù)設定變異率對基因位串進行交叉變異操作。
4) 若滿足最大迭代次數(shù)或達到最大適應度值,則停止迭代操作,輸出最優(yōu)解,否則,轉(zhuǎn)到2) 。
VRC電路的結(jié)構(gòu)如圖2所示。圖中VRC電路是由規(guī)則的基本可配置邏輯單元Cell陣列構(gòu)成的。Cell作為演化的基本單位,由Slice實現(xiàn),是執(zhí)行運算與數(shù)據(jù)處理的基本單元,可執(zhí)行與、或、非、同或、異或等操作。每個Cell有2個輸入和1個輸出。其中第一列Cell為輸入級,其輸入外接系統(tǒng)功能區(qū)的輸入;最后一列Cell為輸出級,其輸出作為系統(tǒng)功能區(qū)的輸出。其他每個Cell的輸入可通過多路器在其前相鄰2列Cell的輸出中選擇,輸出可作為其后相鄰2列Cell的輸入。每個Cell單元的功能配置和輸入選擇均由其配置寄存器的值決定。VRC電路可以簡化染色體編碼,具有較好的適用性和可移植性。本文所設計Cell陣列為5×8陣列。每個Cell單元的輸入均為16位,由高8位和低8位組成。第一列Cell單元輸入的高8位是演化機制開啟時的演化輸入,低8位是高8位的取反。2、3、4、5列的16位輸入的高8位為前一列的輸出,低8位由前一列輸入的高8位組成。
圖2 VRC電路結(jié)構(gòu)圖
VRC中的可配置功能單元Cell的內(nèi)部結(jié)構(gòu)如圖3所示。
中醫(yī)制劑能力建設是中醫(yī)院??平ㄔO的重要方面,醫(yī)院從戰(zhàn)略角度,加強對制劑的研發(fā)、保護、推廣使用顯得尤為重要。在??平ㄔO中,醫(yī)院要主動尋求發(fā)展方向和突破點,制定有效的績效激勵機制,鼓勵臨床研究總結(jié)臨床療效好的治療方法,對于醫(yī)藥市場供應缺失品種,有針對性的研發(fā)系列療效好的病種處方,加強中醫(yī)制劑的深入挖掘和保護,從而增強??坪诵母偁幜Γ患訌娭嗅t(yī)制劑的人才隊伍建設,創(chuàng)造良好的用人環(huán)境和氛圍,充分調(diào)動臨床醫(yī)生、藥學研究人員等開發(fā)制劑新品種的積極性,鼓勵運用新劑型、新技術促進中藥特色療法的開展。
圖3 Cell內(nèi)部結(jié)構(gòu)圖
其核心是一個由4bit RAM構(gòu)成的LUT查找表,此外還包括2個16選1多路器。其中LUT查找表用于實現(xiàn)邏輯運算功能,2個16選1多路器分別用于為2個輸入選擇輸入信號。Cell單元邏輯功能配置和2個輸入的選擇均可通過配置寄存器編程配置。
單個Cell的配置共需要16位染色體,其中16選1選擇器需要4位,LUT查找表的輸出選擇需要4位??偟呐渲梦粩?shù)=3×4=12位。圖4所示為單個Cell的染色體分配圖,總共12位,存放染色體寄存器中。文中使用的VRC電路包含40個Cell單元,因此一個VRC電路陣列所需的染色體配置位=40×12=480位。
圖4 Cell染色體分配圖
1) 染色體的編碼方式
染色體是一組配置位串,能夠直接下載到FPGA中。EA能夠根據(jù)配置位串的不同對可演化的電路結(jié)構(gòu)進行實時調(diào)整和評估,搜索得到最優(yōu)解。染色體的編碼方式可分為直接編碼和間接編碼。直接編碼是用一組二進制編碼表示個體解。間接編碼是將電路的配置位串表示成多級,首先把配置位串表示成高層次的表達形式,再根據(jù)設定的對應方式翻譯成可直接配置到FPGA的位串。直接編碼形式易于理解,更為直觀,但是如果電路結(jié)構(gòu)較為復雜,一組配置位串可能過長,不利于軟件的開發(fā)。間接編碼把配置位串分為多級編碼形式,如果電路結(jié)果比較簡單,則會把簡單問題復雜化。本文使用的VRC電路所需的配置位串位數(shù)為480bits ,配置位串不長,因此選擇直接編碼方式。
2) 適應度計算
電路的適應度值計算通過軟件完成。對于每種可能輸入,讀取硬件電路的輸出結(jié)果和期望值比較,根據(jù)兩者匹配的位數(shù),決定個體適應度值fitness增加多少。這樣循環(huán)操作,即可得到個體解對應的適應度值。
3) 種群初始化及個體解配置
4) 遺傳算法種群產(chǎn)生方法
在EA的操作過程中,產(chǎn)生種群的方式有兩種,在系統(tǒng)初始,通過隨機函數(shù)對種群進行初始化,之后的每一代則通過競爭選擇、變異的方式產(chǎn)生新的種群。首先采用競爭選擇的方式,從父代中隨機選擇一定數(shù)量的個體,數(shù)量大小由設定的競爭選擇規(guī)模來確定,然后選擇出適應度值最大的個體,進行變異用于產(chǎn)生下一代種群。一共進行P(種群規(guī)模)次該操作,產(chǎn)生新的種群。
在競爭選擇過程中,被挑選出的最大適應度值個體需要進行變異操作。變異是根據(jù)設定的變異率對個體解位串進行翻轉(zhuǎn)實現(xiàn)的。為了保證變異的公平性,并保持種群發(fā)展的穩(wěn)定性,本文采用均勻隨機變異,設定的變異率較小。
下面以演化2位乘法器電路為例對自演化系統(tǒng)進行驗證。實驗在Xilinx Virtex-6 ML605開發(fā)板上進行。
1) 其他參數(shù)不變,種群規(guī)模N變化
保持變異率M=3/256,競爭選擇規(guī)模S=20,最大適應度值MAX_FITNESS=64,為了兼顧各種情況,設定最大演化代數(shù)MAX_GEN=50 000,種群規(guī)模N的變化范圍為40~150。一共進行13組實驗,每組實驗進行20次,最終每組所得時間為20次實驗花費時間的平均值。統(tǒng)計N在不同值的情況下,在50 000代內(nèi)可達到的最大適應度值max_fitness、對應的演化代數(shù)Gen和對應的時間t,如表1所示。達到最大適應度值所對應演化代數(shù)Gen與種群規(guī)模N的關系曲線如圖5所示。
表1 M=3/256、S=20,N變化時演化情況統(tǒng)計
圖5 找到最優(yōu)解時演化代數(shù)Gen和種群規(guī)模N的變化
由表1和圖5可知,種群規(guī)模N=104時,演化得到最優(yōu)解的平均演化代數(shù)和平均演化時長最小,演化速度最快。由圖5可知,演化速度隨著N的增大呈現(xiàn)先增大后減小的趨勢。種群規(guī)模不宜太大也不宜太小,當N<96或者>128時,演化得到最優(yōu)解的速度明顯變慢很多。因此N的最佳取值在96~128。
2) 其他參數(shù)不變,競爭選擇規(guī)模S變化
保持種群規(guī)模N=104、變異率M=3/256、其他參數(shù)保持不變,競爭選擇規(guī)模S的變化范圍為1~30。共進行10組實驗,每組實驗進行20次,最終每組所得時間為20次實驗花費時間的平均值。統(tǒng)計S在不同值的情況下,在50 000代內(nèi)可達到的最大適應度值max_fitness、對應的演化代數(shù)Gen和對應的時間t,如表2所示。達到最大適應度值所對應演化代數(shù)Gen與競爭選擇規(guī)模S的關系曲線如圖6所示。
表2 N=104、S=20,M變化時演化情況統(tǒng)計
圖6 找到最優(yōu)解時演化代數(shù)Gen和競爭選擇規(guī)模S的變化
由表2和圖6可知,演化速度隨著S的增大逐步加快,當S增大到較強程度后呈現(xiàn)穩(wěn)定的趨勢。由圖6可知,演化得到最優(yōu)解的速度在1~13之間近似成倍增大。但是,S并不是越大越好,當S>13以后,演化得到最優(yōu)解的速度基本穩(wěn)定。
本文采用基于FPGA的SOPC設計方法設計了基于VRC的自演化系統(tǒng)。給出了自演化嵌入式系統(tǒng)的總體結(jié)構(gòu),本文中的嵌入式系統(tǒng)是在Virtex ML605開發(fā)套件上開發(fā)實現(xiàn)的,通過演化 2位乘法器電路驗證了自演化系統(tǒng)的有效性。實驗結(jié)果表明,基于VRC的自演化系統(tǒng)每次演化均可搜索得到目標電路,而且演化速度較快。由于能夠添加自定制IP核,因此該設計方法具有很好的靈活性和通用性,具有進一步的研究價值。