<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的遺傳算法組合邏輯電路設計

基于FPGA的遺傳算法組合邏輯電路設計

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

(Genetic Algorithm)是模擬達爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機理的生物進(jìn)化過(guò)程的計算模型,是一種通過(guò)模擬過(guò)程搜索最優(yōu)解的方法,它最初是由美國Michigan大學(xué)J.Holland教授于1975年首先提出來(lái)的。隨著(zhù)經(jīng)濟社會(huì )的快速發(fā)展,人類(lèi)科學(xué)研究與生產(chǎn)活動(dòng)的廣度與深度都大大拓展了??蒲信c生產(chǎn)實(shí)踐中涌現出的大量新課題對作為社會(huì )發(fā)展催化劑的信息與控制科學(xué)提出了前所未有的挑戰。傳統信息處理算法在面對各種非線(xiàn)性、不確定、不能精確解析以及建模機理復雜的問(wèn)題時(shí),往往顯得捉襟見(jiàn)肘。正是在這種背景下,各種智能信息處理算法如雨后春筍般涌現出來(lái)。作為智能信息處理算法中的重要一員,近年來(lái)以其獨特而卓越的性能日漸引起了人們的關(guān)注。

組合邏輯電路其特點(diǎn)是功能上無(wú)記憶,結構上無(wú)反饋,即電路在任意時(shí)刻的輸出狀態(tài)只取決于該時(shí)刻各輸入狀態(tài)的組合,而與電路的原狀態(tài)無(wú)關(guān)。本文通過(guò)實(shí)例介紹組合邏輯電路的設計方法,并通過(guò)電子設計自動(dòng)化EDA(Electronic Design Automation)進(jìn)行仿真分析,使組合邏輯電路的設計變得更方便,更實(shí)用。

隨著(zhù)性能的不斷提高,基于的計算加速已經(jīng)逐漸成為提高計算速度和計算效率的重要手段之一。能夠實(shí)現程序的并行化處理,不僅結構簡(jiǎn)單,而且有效地減少了運算時(shí)間、提高了運行效率,為能在一些實(shí)時(shí)、高速的場(chǎng)合得到應用提供了依據。

本文引用地址:http://dyxdggzs.com/article/201706/348976.htm

1 基于FPGA遺傳算法設計

遺傳算法是一種多點(diǎn)并行的迭代搜索算法,它的每一代稱(chēng)為一個(gè)種群,由多個(gè)個(gè)體組成,每個(gè)個(gè)體稱(chēng)為染色體,染色體由一定數目的字符組成。每個(gè)字符稱(chēng)為一個(gè)基因,基因在染色體中的位置決定了基因所表達的特性。

文中基于FPGA的遺傳算法,整個(gè)系統分為4個(gè)單元,4個(gè)單元分別為:選擇單元、交叉單元、變異單元和適應度計算單元。

1.1 選擇單元

選擇單元執行遺傳算法中的選擇操作。選擇策略決定哪些個(gè)體存活并得以繁殖,因其直接關(guān)系到遺傳算法的運行導向問(wèn)題故對遺傳算法的性能有直接并且重大的影響。標準遺傳算法所采用的輪盤(pán)賭選擇策略簡(jiǎn)便直觀(guān),但可能會(huì )產(chǎn)生較大的抽樣誤差。于是,各種改進(jìn)的選擇策略產(chǎn)生了。

最早提出的使用濃度控制的選擇策略可以保證群體的多樣性從而避免了早熟現象并且提高了算法的魯棒性及運算效率。后來(lái)通過(guò)對浮點(diǎn)遺傳算法早熟收斂現象的分析,有人提出了一種新的父代選擇策略,即使用當前代的子代個(gè)體作為下代的父代個(gè)體,可使交叉算子持續地探索和開(kāi)發(fā)新空間。目前,人們又發(fā)現可以通過(guò)選擇策略的改變調控并維持種群多樣性。這類(lèi)研究成果中,文獻中提到的重復串的適應度處理是一個(gè)有益的嘗試。

1.2 交叉單元

交叉模塊執行遺傳算法中的交叉操作。由隨機數模塊產(chǎn)生的隨機數與事先確定的交叉概率相比較,如果隨機數小于交叉概率,則一對個(gè)體進(jìn)行交叉操作,否則該對個(gè)體不變,直接進(jìn)入變異模塊。

文中一對個(gè)體進(jìn)行交叉操作的基因位由隨機數決定。隨機數模塊產(chǎn)生一個(gè)與個(gè)體等長(cháng)的隨機二進(jìn)制串,若隨機二進(jìn)制串中的某一位為1,則該對個(gè)體中該位置的基因相互交叉;否則,該對個(gè)體中該位置的基因保持不變。

1.3 變異單元

變異模塊執行遺傳算法中的變異操作。與交叉模塊相似,變異模塊也是將隨機數模塊產(chǎn)生的隨機數與事先確定的變異概率相比較,決定是否進(jìn)行變異操作。同時(shí)個(gè)體中進(jìn)行變異操作的基因位也是由一個(gè)與個(gè)體等長(cháng)的隨機二進(jìn)制字符串決定的。對個(gè)體而言,執行變異操作的基因位不宜過(guò)多,否則容易對個(gè)體造成較大的破壞,影響種群的穩定性。本文將兩個(gè)隨機二進(jìn)制字符串(每一位0、1等概率)進(jìn)行相與操作,這樣得到的新的隨機二進(jìn)制字符串中每一位為1的概率將降低到25%,用這個(gè)新的隨機二進(jìn)制串來(lái)決定個(gè)體變異的基因位。這樣執行變異操作的個(gè)體中,每一位基因變異的概率也會(huì )降低到25%。

1.4 適應度計算單元

適應度計算模塊執行遺傳算法中的適應度計算比較操作,它根據適應度計算函數來(lái)計算種群中每一個(gè)個(gè)體的適應度,包括遺傳算法開(kāi)始時(shí)初始化產(chǎn)生的種群和后來(lái)遺傳變異后產(chǎn)生的種群,并把每個(gè)個(gè)體的適應度大小保存到存儲器中。同時(shí),適應度計算模塊還需要記錄每一代種群中適應度最高的個(gè)體。適應度計算模塊有一個(gè)內置的計數器,計數器隨適應度計算模塊的啟動(dòng)而啟動(dòng),從0開(kāi)始計數,每個(gè)時(shí)鐘周期加1。計數器數值表示當前個(gè)體及其適應度在存儲器模塊當中的存放地址。適應度計算模塊停止工作時(shí),計數器會(huì )重新歸零,等待新一輪的啟動(dòng)信號。

2 遺傳算法的過(guò)程設計

遺傳算法通過(guò)對當前種群施加選擇、交叉、變異等一系列遺傳操作,產(chǎn)生出新一代的種群,通過(guò)多次迭代,使種群逐步進(jìn)化到包含或接近最優(yōu)解的狀態(tài),如圖1所示。一般來(lái)說(shuō),一個(gè)完整的遺傳算法包括編碼、初始種群的生成、用于進(jìn)行個(gè)體評估的適應度函數的設計、遺傳算子(選擇、交叉和變異)以及控制參數(終止準則)的設定5個(gè)方面。

1)系統由外部給出reset信號:隨機數模塊開(kāi)始產(chǎn)生隨機數種子;控制模塊重啟,重新啟動(dòng)后,由該模塊控制系統運行。

2)控制模塊給出相應信號,初始化模塊運行,初始化種群。

3)當初始化完畢后,有控制模塊發(fā)出相應信號,系統進(jìn)入進(jìn)化計算階段,進(jìn)行遺傳算法的具體操作。

4)各個(gè)遺傳算法功能模塊進(jìn)行算子操作,經(jīng)由交叉、變異、選擇操作產(chǎn)生新的種群,同時(shí)記錄系統的運行信息。如未完成本代進(jìn)化計算,則重復本步驟。

5)完成一代計算后,由控制模塊發(fā)出相應指令,存儲相關(guān)運行參數、轉換存儲器的工作狀態(tài)。如果以完成計算,則發(fā)出完成信號,如果未完成,重復步驟4)。

2.1 遺傳算法編碼

把一個(gè)問(wèn)題的可行解從其解空間轉化到遺傳算法所能處理的搜索空間的轉化方法叫做編碼。編碼方式應具有如下性質(zhì):完備性、封閉性、健全性和非冗余性。

遺傳算法的編碼方式有很多種,二進(jìn)制編碼方式是最常用的編碼方式之一,最早由Holland提出。但是二進(jìn)制編碼的遺傳算法進(jìn)行數值優(yōu)化時(shí),存在連續到離散的映射誤差、精度不高,最優(yōu)解附近搜索較慢等缺點(diǎn)。雖然提高個(gè)體編碼串長(cháng)度可以提高精度,但是會(huì )使遺傳算法的搜索空間增加,從而使得搜索變得異常緩慢。

本文中遺傳算法主要解決的問(wèn)題是組合邏輯電路的自動(dòng)設計,組合邏輯電路由與門(mén)、或門(mén)、非門(mén)、同或門(mén)、異或門(mén)五種基本的門(mén)電路組成。在FPGA上進(jìn)行遺傳算法的編碼,本文采用二進(jìn)制字符串編碼的方法,每個(gè)個(gè)體都有64位二進(jìn)制數組成,由64位二進(jìn)制數解碼出一個(gè)組合邏輯電路。

2.2 隨機數產(chǎn)生模塊

隨機數控制模塊的作用是根據外部信號控制隨機數內部模塊,發(fā)出相應的使能、重啟信號,產(chǎn)生隨機數種子,從而產(chǎn)生隨機數。

本系統中隨機數模塊所產(chǎn)生的隨機序列由線(xiàn)性反饋移位寄存器(Linear Feedback Shift Registers,LFSR)生成。LFSR在FPGA上易于實(shí)現,且所產(chǎn)生的隨機序列具有周期長(cháng)、隨機性好的特點(diǎn)。隨機數模塊需要向選擇模塊提供隨機序列,作為存儲器單元的地址,同時(shí)隨機數模塊還要向交叉模塊和變異模塊提供隨機序列,用于確定是否執行交叉和變異操作,以及執行交叉和變異操作的位置。

2.3 存儲器模塊

存儲器模塊用來(lái)存儲種群中的個(gè)體及其適應度。在本系統中,個(gè)體和適應度是分開(kāi)存儲的,因而對整個(gè)種群而言,其存儲區可分為4個(gè)部分:父代個(gè)體存儲區,父代適應度存儲區,子代個(gè)體存儲區以及子代適應度存儲區。

由于本系統中的遺傳算法采用完全流水線(xiàn)實(shí)現,因而必然會(huì )涉及到對存儲器模塊的同時(shí)讀寫(xiě)操作,比如在選擇模塊從存儲器模塊中讀取父代種群中的個(gè)體及其適應度的同時(shí),適應度模塊則在向存儲器模塊中寫(xiě)入子代種群中的新個(gè)體及其適應度。

3 實(shí)驗結果

系統在A(yíng)ltera公司的Cyclone系列EPIC6Q240C8型號芯片上進(jìn)行了實(shí)現。系統采用Verilog語(yǔ)言編寫(xiě),開(kāi)發(fā)平臺為Altera公司自帶的Quart usII 6.0集成環(huán)境。為驗證系統的正確性和測試系統的性能,本文,對系統進(jìn)行了測試,即給出一個(gè)三輸入一輸出的組合邏輯電路的真值表,測試真值表如表1所示。

遺傳算法參數設置如下:種群規模為100,交叉概率為0.6,變異概率為0.1,基因長(cháng)度為16,遺傳代數為100。其中針對給出的真值表,通過(guò)代碼輸入、編譯、綜合、布局布線(xiàn)后,得到結果如圖2所示。

即最優(yōu)解為:C3bFC396。經(jīng)過(guò)解碼,得到電路圖如圖3所示。所得到的電路圖滿(mǎn)足真值表的要求。


4 結束語(yǔ)


本文在FPGA上實(shí)現了基于遺傳算法的組合邏輯電路的自動(dòng)設計。對整個(gè)系統結構進(jìn)行了自頂而下的設計,對模塊功能進(jìn)了劃分。硬件實(shí)現遺傳算法能有效地縮短運行時(shí)間,為實(shí)時(shí)應用提供了可能。隨著(zhù)FPGA芯片技術(shù)的進(jìn)一步發(fā)展,大規模并行遺傳算法的實(shí)現也將成為可能。



關(guān)鍵詞: 遺傳算法 自然進(jìn)化 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>