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