遺傳算法是一種基于自然選擇原理的優(yōu)化算法,在很多領(lǐng)域有著廣泛的應(yīng)用。但是,遺傳算法使用計(jì)算機(jī)軟件實(shí)現(xiàn)時(shí),會(huì)隨著問題復(fù)雜度和求解精度要求的提高,產(chǎn)生很大的計(jì)算延時(shí),這種計(jì)算的延時(shí)限制了遺傳算法在很多實(shí)時(shí)性要求較高場合的應(yīng)用。為了提升運(yùn)行速度,可以使用FPGA作為硬件平臺(tái),設(shè)計(jì)數(shù)字系統(tǒng)完成遺傳算法。和軟件實(shí)現(xiàn)相比,硬件實(shí)現(xiàn)盡管在實(shí)時(shí)性和并行性方面具有很大優(yōu)勢,但同時(shí)會(huì)導(dǎo)致系統(tǒng)的靈活性不足、通用性不強(qiáng)。本文針對(duì)上述矛盾,使用基于功能的模塊化思想,將基于FPGA的遺傳算法硬件平臺(tái)劃分成兩類模塊:系統(tǒng)功能模塊和算子功能模塊。針對(duì)不同問題,可以在保持系統(tǒng)功能模塊不變的前提下,選擇不同的遺傳算子功能模塊完成所需要的優(yōu)化運(yùn)算。本文基于Xilinx公司的Virtex5系列FPGA平臺(tái),使用VerilogHDL語言實(shí)現(xiàn)了偽隨機(jī)數(shù)發(fā)生模塊、隨機(jī)數(shù)接口模塊、存儲(chǔ)器接口/控制模塊和系統(tǒng)控制模塊等系統(tǒng)功能模塊,以及基本位交叉算子模塊、PMX交叉算子模塊、基本位變異算子模塊、交換變異算子模塊和逆轉(zhuǎn)變異算子模塊等遺傳算法功能模塊,構(gòu)建了系統(tǒng)功能構(gòu)架和遺傳算子庫。該設(shè)計(jì)方法不僅使遺傳算法平臺(tái)在解決問題時(shí)具有更高的靈活性和通用性,而且維持了系統(tǒng)架構(gòu)的穩(wěn)定。本文設(shè)計(jì)了多峰值、不連續(xù)、不可導(dǎo)函數(shù)的極值問題和16座城市的旅行商問題 (TSP)對(duì)遺傳算法硬件平臺(tái)進(jìn)行了測試。根據(jù)測試結(jié)果,該硬件平臺(tái)表現(xiàn)良好,所求取的最優(yōu)解誤差均在1%以內(nèi)。相對(duì)于軟件實(shí)現(xiàn),該系統(tǒng)在求解一些復(fù)雜問題時(shí),速度可以提高2個(gè)數(shù)量級(jí)。最后,本文使用FPGA實(shí)現(xiàn)了粗粒度并行遺傳算法模型,并用于 TSP問題的求解。將硬件平臺(tái)的運(yùn)行速度在上述基礎(chǔ)上提高了近1倍,取得了顯著的效果。關(guān)鍵詞:遺傳算法,硬件實(shí)現(xiàn),并行設(shè)計(jì),F(xiàn)PGA,TSP
標(biāo)簽:
FPGA
算法
硬件實(shí)現(xiàn)
上傳時(shí)間:
2013-06-15
上傳用戶:hakim