資源描述:
《基于fpga的遺傳算法在交通控制中的應(yīng)用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于FPGA的遺傳算法在交通控制中的應(yīng)用張麗霞1,唐澤2(1.四川交通職業(yè)技術(shù)學(xué)院信息工程系,四川成都611130;2.西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川成都610000)摘要:智能交通燈是智能交通系統(tǒng)的重要組成部分,它能有效增加道路的通行能力,改善交通狀況。采用道路各相位在一個周期內(nèi)滯留的車輛數(shù)作為識別判據(jù),將遺傳算法應(yīng)用到交通燈控制中,并且利用FPGA的并行計算優(yōu)勢,實現(xiàn)算法的硬件化,減少算法的運行時間。交通燈整體的實現(xiàn)基于NiosⅡ嵌入式處理器。實驗結(jié)果表明,交通燈能根據(jù)車流量實現(xiàn)智能配時,基于FPGA的遺傳算法比基于傳統(tǒng)計算機的遺傳算法在運行速度上有很大的提高,使得
2、一些大規(guī)模、復(fù)雜的問題有了解決的可能性。.jyqkmableGateArray,F(xiàn)PGA)的出現(xiàn)及它的并行計算優(yōu)勢,使得基于FPGA的遺傳算法在運行時間上會有數(shù)量級的提高[3]。這樣不僅提高了系統(tǒng)的性能,也增加了遺傳算法的實用性。交通燈整體基于Altera公司NiosⅡ嵌入式處理器的SoPC(SystemonaProgrammableChip)方案,即把用戶定義的遺傳算法邏輯模塊與NiosⅡ處理器聯(lián)合構(gòu)成SoPC系統(tǒng)。NiosⅡ處理器具有完全可定制和重新配置的特性,可根據(jù)不同的應(yīng)用場合添加制定各種外設(shè)、存儲器和接口等設(shè)備,靈活性強,升級換代的成本低,利于產(chǎn)品的生存[4]。1遺
3、傳算法的硬件實現(xiàn)遺傳算法(GeicAlgorithm)是模擬達爾文生物進化論的自然選擇和遺傳學(xué)機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優(yōu)解的方法。遺傳算法的基本思想是系統(tǒng)維持一個種群,種群由一組染色體構(gòu)成,染色體是一組數(shù)據(jù)結(jié)構(gòu),它表示所求解問題的一個可能解。種群通過競爭和受控變異不斷進化,從而得到越來越優(yōu)的解[5]。遺傳算法的求解過程[6]見圖1。1.1遺傳算法的運行參數(shù)遺傳算法在本文中所用到的參數(shù)見表1。1.2遺傳算法的硬件結(jié)構(gòu)由于采用VHDL語言一次性編寫遺傳算法的工作量太大,工程太復(fù)雜,也容易出錯;所以本文對遺傳算法編寫的主要思想是把遺傳算法看作一
4、個電路,而這個電路由若干的子模塊構(gòu)成。這樣只要確定每個子模塊的工作順序就可以使整個遺傳算法正常工作。這樣把遺傳算法拆解為一個個的子模塊不僅簡化了程序編寫的難度,而且在算法升級改進時只需要更改其中的某一個子模塊,升級的成本更低。從遺傳算法的實現(xiàn)原理著手,基于FPGA的遺傳算法主要包括初始化模塊、隨機數(shù)模塊、適應(yīng)度模塊、存儲模塊、選擇模塊、交叉模塊、變異模塊、地址產(chǎn)生模塊、地址選通模塊、輸出模塊和控制模塊等。硬件框圖如圖2所示。1.3算法的工作原理基于FPGA的遺傳算法的工作流程主要有以下幾步:(1)初始化模塊最先開始工作,它先隨機的產(chǎn)生一個種群和種群對應(yīng)的地址。當(dāng)種群個體達到預(yù)
5、定個數(shù)后,個體選通模塊只選通變異模塊產(chǎn)生的個體,這樣在結(jié)果上看來初始化模塊已停止工作。(2)個體的選通。從圖3的工作流程可以看出,變異模塊也會產(chǎn)生新的個體,為了避免和初始化產(chǎn)生的個體相沖突,個體選擇模塊根據(jù)一定的時序約束,有序的對變異模塊和初始化模塊產(chǎn)生的個體進行選通。(3)地址選通。存儲器中每個存儲的數(shù)據(jù)都有一個對應(yīng)的存儲地址,這樣方便數(shù)據(jù)的讀和寫。首先分析基于FPGA的遺傳算法中都有哪些第一,初始化種群時對初始化個體的存儲地址;第二,變異模塊產(chǎn)生的個體在存儲時的地址;第三,選擇模塊從存儲器中讀取數(shù)據(jù)時的地址。由以上三點可以看出,為了各地址的不沖突,地址選通模塊會根據(jù)工作狀
6、態(tài)有序地選通地址,即當(dāng)其中一個地址工作時,禁用其他兩地址。(4)適應(yīng)度值計算模塊。適應(yīng)度的計算是遺傳算法中的重要部分,它代表所求解問題的數(shù)學(xué)模型。(5)遺傳操作。遺傳操作是遺傳算法的核心部分,它包括選擇、交叉和變異操作。經(jīng)過遺傳操作后會產(chǎn)生全新的適應(yīng)度值更優(yōu)的個體。(6)輸出。當(dāng)達到進化代數(shù)后,輸出最優(yōu)個體。圖3虛框部分表示遺傳算法一次完整的遺傳操作所經(jīng)歷的步驟。1.4算法的實現(xiàn)及測試遺傳算法采用VHDL語言編程,在QuartusⅡ軟件里進行仿真。所用到的器件為Altera公司的CycloneⅢEP3C5E144C8。為了測試算法的正確性,采用下面的測試函數(shù)進行仿真,測試函數(shù)
7、如下所示:選取的函數(shù)是幾個比較基本的、容易驗證的求極值函數(shù),常常用于遺傳算法的性能測試中[3]。表2所示為三個函數(shù)的仿真結(jié)果。軟件實現(xiàn)的遺傳算法采用C語言編寫,運行在主頻為2.4GHz,內(nèi)存1GB的微機上,通過MicrosoftVC++6.0平臺仿真實現(xiàn)。從表2的結(jié)果可以看出,硬件實現(xiàn)的遺傳算法在運行速度上比軟件快3個數(shù)量級,且能得到和軟件相近的結(jié)果。其中f3(x)的仿真截圖見圖4。2交通燈控制系統(tǒng)現(xiàn)在大部分交通信號燈都采用固定周期控制,難以滿足復(fù)雜多變的交通狀況,造成資源浪費[6]。本文提出基于道路飽