遺傳算法是基于自然選擇的一種魯棒性很強的解決問題方法。遺傳算法已經成功地應用于許多難優化問題,現已成為尋求滿意解的最佳工具之一。然而,較慢的運行速度也制約了其在一些實時性要求較高場合的應用。利用硬件實現遺傳算法能夠充分發揮硬件的并行性和流水線的特點,從而在很大程度上提高算法的運行速度。 本文對遺傳算法進行了理論介紹和分析,結合硬件自身的特點,選用了適合硬件化的遺傳算子,設計了標準遺傳算法硬件框架;為了進一步利用硬件自身的并行特性,同時提高算法的綜合性能,本文還對現有的一些遺傳算法的并行模型進行了研究,討論了其各自的優缺點及研究現狀,并在此基礎上提出一種適合硬件實現的粗粒度并行遺傳算法。 我們構建的基于FPGA構架的標準遺傳算法硬件框架,包括初始化群體、適應度計算、選擇、交叉、變異、群體存儲和控制等功能模塊。文中詳細分析了各模塊的功能和端口連接,并利用硬件描述語言編寫源代碼實現各模塊功能。經過功能仿真、綜合、布局布線、時序仿真和下載等一系列步驟,實現在Altera的Cyclone系列FPGA上。并且用它嘗試解決一些函數的優化問題,給出了實驗結果。這些硬件模塊可以被進一步綜合映射到ASIC或做成IP核方便其他研究者調用。 最后,本文對硬件遺傳算法及其在函數優化中的一些尚待解決的問題進行了討論,并對本課題未來的研究進行了展望。
上傳時間: 2013-07-22
上傳用戶:誰偷了我的麥兜
遺傳算法是一種基于自然選擇原理的優化算法,在很多領域有著廣泛的應用。但是,遺傳算法使用計算機軟件實現時,會隨著問題復雜度和求解精度要求的提高,產生很大的計算延時,這種計算的延時限制了遺傳算法在很多實時性要求較高場合的應用。為了提升運行速度,可以使用FPGA作為硬件平臺,設計數字系統完成遺傳算法。和軟件實現相比,硬件實現盡管在實時性和并行性方面具有很大優勢,但同時會導致系統的靈活性不足、通用性不強。本文針對上述矛盾,使用基于功能的模塊化思想,將基于FPGA的遺傳算法硬件平臺劃分成兩類模塊:系統功能模塊和算子功能模塊。針對不同問題,可以在保持系統功能模塊不變的前提下,選擇不同的遺傳算子功能模塊完成所需要的優化運算。本文基于Xilinx公司的Virtex5系列FPGA平臺,使用VerilogHDL語言實現了偽隨機數發生模塊、隨機數接口模塊、存儲器接口/控制模塊和系統控制模塊等系統功能模塊,以及基本位交叉算子模塊、PMX交叉算子模塊、基本位變異算子模塊、交換變異算子模塊和逆轉變異算子模塊等遺傳算法功能模塊,構建了系統功能構架和遺傳算子庫。該設計方法不僅使遺傳算法平臺在解決問題時具有更高的靈活性和通用性,而且維持了系統架構的穩定。本文設計了多峰值、不連續、不可導函數的極值問題和16座城市的旅行商問題 (TSP)對遺傳算法硬件平臺進行了測試。根據測試結果,該硬件平臺表現良好,所求取的最優解誤差均在1%以內。相對于軟件實現,該系統在求解一些復雜問題時,速度可以提高2個數量級。最后,本文使用FPGA實現了粗粒度并行遺傳算法模型,并用于 TSP問題的求解。將硬件平臺的運行速度在上述基礎上提高了近1倍,取得了顯著的效果。關鍵詞:遺傳算法,硬件實現,并行設計,FPGA,TSP
上傳時間: 2013-06-15
上傳用戶:hakim
艦船電力系統網絡重構可以看作為一個多目標、多約束、多時段、離散化的非線性規劃最優問題。根據艦船電力系統特點,提出了一種改進的粒子群優化算法。在傳統粒子群算法的基礎上,運用混沌優化理論進行初始化粒子的初始種群,提升初始解質量;同時,引進遺傳操作以改進粒子群算法易陷入局部極值的缺點。通過對典型的模型仿真表明,該算法具有更好的尋優性能,并且有效地提高了故障恢復的速度與精度。
上傳時間: 2014-12-23
上傳用戶:AbuGe
針對基本蟻群算法在機器人路徑規劃問題中容易陷入局部最優的問題,提出了一種改進的蟻群算法,利用遺傳算法加入了變異因子使最優路徑產生變異,從而降低了蟻群算法陷入局部極小的可能性,同時改善了基本蟻群算法不收斂或收斂速度比較慢的缺點,加快了收斂速度,增加了最優解的多樣性。
上傳時間: 2013-11-11
上傳用戶:zuozuo1215
Verilog_HDL的基本語法詳解(夏宇聞版):Verilog HDL是一種用于數字邏輯電路設計的語言。用Verilog HDL描述的電路設計就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語言也是一種結構描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設計電路的Verilog HDL模型。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種: 系統級(system):用高級語言結構實現設計模塊的外部性能的模型。 算法級(algorithm):用高級語言結構實現設計算法的模型。 RTL級(Register Transfer Level):描述數據在寄存器之間流動和如何處理這些數據的模型。 門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。 開關級(switch-level):描述器件中三極管和儲存節點以及它們之間連接的模型。 一個復雜電路系統的完整Verilog HDL模型是由若干個Verilog HDL模塊構成的,每一個模塊又可以由若干個子模塊構成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設計的模塊交互的現存電路或激勵信號源。利用Verilog HDL語言結構所提供的這種功能就可以構造一個模塊間的清晰層次結構來描述極其復雜的大型設計,并對所作設計的邏輯電路進行嚴格的驗證。 Verilog HDL行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合于算法級和RTL級的模型設計。這種行為描述語言具有以下功能: · 可描述順序執行或并行執行的程序結構。 · 用延遲表達式或事件表達式來明確地控制過程的啟動時間。 · 通過命名的事件來觸發其它過程里的激活行為或停止行為。 · 提供了條件、if-else、case、循環程序結構。 · 提供了可帶參數且非零延續時間的任務(task)程序結構。 · 提供了可定義新的操作符的函數結構(function)。 · 提供了用于建立表達式的算術運算符、邏輯運算符、位運算符。 · Verilog HDL語言作為一種結構化的語言也非常適合于門級和開關級的模型設計。因其結構化的特點又使它具有以下功能: - 提供了完整的一套組合型原語(primitive); - 提供了雙向通路和電阻器件的原語; - 可建立MOS器件的電荷分享和電荷衰減動態模型。 Verilog HDL的構造性語句可以精確地建立信號的模型。這是因為在Verilog HDL中,提供了延遲和輸出強度的原語來建立精確程度很高的信號模型。信號值可以有不同的的強度,可以通過設定寬范圍的模糊值來降低不確定條件的影響。 Verilog HDL作為一種高級的硬件描述編程語言,有著類似C語言的風格。其中有許多語句如:if語句、case語句等和C語言中的對應語句十分相似。如果讀者已經掌握C語言編程的基礎,那么學習Verilog HDL并不困難,我們只要對Verilog HDL某些語句的特殊方面著重理解,并加強上機練習就能很好地掌握它,利用它的強大功能來設計復雜的數字邏輯電路。下面我們將對Verilog HDL中的基本語法逐一加以介紹。
標簽: Verilog_HDL
上傳時間: 2013-11-23
上傳用戶:青春給了作業95
粒子群算法是在遺傳算法基礎上發展起來的一種新的并行優化方法,可用于解決大量非線性、不可微和多峰值的復雜問題。與遺傳算法不同的是,粒子群算法中的粒子有記憶功能,整個搜索過程是跟隨當前最優粒子的過程,因此在大多數情況下,所有的粒子可能更快的收斂于最優解。而且粒子群算法理論簡單,參數少,因此其應用更為廣泛。文中把粒子群算法用于陣列天線的波束賦形,結果表明粒子群算法在對天線形狀進行設計方面有很好的發展前景。
上傳時間: 2013-11-14
上傳用戶:lz4v4
提出一種新的組合優化方法。先通過遺傳算法得到一個初步的優化結果,再用直接搜索算法進行二次優化,這樣既突出了遺傳算法全局尋優的特點,又避免了它在接近最優解時出現的小幅度隨機波動。以低副瓣平
上傳時間: 2013-12-24
上傳用戶:李哈哈哈
Verilog_HDL的基本語法詳解(夏宇聞版):Verilog HDL是一種用于數字邏輯電路設計的語言。用Verilog HDL描述的電路設計就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語言也是一種結構描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設計電路的Verilog HDL模型。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種: 系統級(system):用高級語言結構實現設計模塊的外部性能的模型。 算法級(algorithm):用高級語言結構實現設計算法的模型。 RTL級(Register Transfer Level):描述數據在寄存器之間流動和如何處理這些數據的模型。 門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。 開關級(switch-level):描述器件中三極管和儲存節點以及它們之間連接的模型。 一個復雜電路系統的完整Verilog HDL模型是由若干個Verilog HDL模塊構成的,每一個模塊又可以由若干個子模塊構成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設計的模塊交互的現存電路或激勵信號源。利用Verilog HDL語言結構所提供的這種功能就可以構造一個模塊間的清晰層次結構來描述極其復雜的大型設計,并對所作設計的邏輯電路進行嚴格的驗證。 Verilog HDL行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合于算法級和RTL級的模型設計。這種行為描述語言具有以下功能: · 可描述順序執行或并行執行的程序結構。 · 用延遲表達式或事件表達式來明確地控制過程的啟動時間。 · 通過命名的事件來觸發其它過程里的激活行為或停止行為。 · 提供了條件、if-else、case、循環程序結構。 · 提供了可帶參數且非零延續時間的任務(task)程序結構。 · 提供了可定義新的操作符的函數結構(function)。 · 提供了用于建立表達式的算術運算符、邏輯運算符、位運算符。 · Verilog HDL語言作為一種結構化的語言也非常適合于門級和開關級的模型設計。因其結構化的特點又使它具有以下功能: - 提供了完整的一套組合型原語(primitive); - 提供了雙向通路和電阻器件的原語; - 可建立MOS器件的電荷分享和電荷衰減動態模型。 Verilog HDL的構造性語句可以精確地建立信號的模型。這是因為在Verilog HDL中,提供了延遲和輸出強度的原語來建立精確程度很高的信號模型。信號值可以有不同的的強度,可以通過設定寬范圍的模糊值來降低不確定條件的影響。 Verilog HDL作為一種高級的硬件描述編程語言,有著類似C語言的風格。其中有許多語句如:if語句、case語句等和C語言中的對應語句十分相似。如果讀者已經掌握C語言編程的基礎,那么學習Verilog HDL并不困難,我們只要對Verilog HDL某些語句的特殊方面著重理解,并加強上機練習就能很好地掌握它,利用它的強大功能來設計復雜的數字邏輯電路。下面我們將對Verilog HDL中的基本語法逐一加以介紹。
標簽: Verilog_HDL
上傳時間: 2014-12-04
上傳用戶:cppersonal
科學工程C源程序范例解,里面不止給出了程序,算法,還有很多的相關知識的說明,很有用。
上傳時間: 2015-02-02
上傳用戶:ouyangtongze
超強的八后算法,只有十幾行代碼完全求出所有解,速度超快
標簽: 算法
上傳時間: 2013-11-27
上傳用戶:王小奇