專(zhuān)利名稱(chēng):一種基于現(xiàn)場(chǎng)可編程門(mén)陣列的蟻群算法仿生硬件的制作方法
一種基于現(xiàn)場(chǎng)可編程門(mén)陣列的蟻群算法仿生硬件(一) 技術(shù)領(lǐng)域本專(zhuān)利涉及一種基于現(xiàn)場(chǎng)可編程門(mén)陣列(Field' programmable gate array, FPGA)的蟻群算法仿生硬件(Bio-inspired hardware, BHW),屬于電子技術(shù)領(lǐng)域。(二) 背景技術(shù)仿生硬件是一種能根據(jù)外部環(huán)境的變化而自主地、動(dòng)態(tài)地改變自身的 結(jié)構(gòu)和行為以適應(yīng)其生存環(huán)境的硬件電路,它可以像生物一樣具有硬件 自適應(yīng)、自組織和自修復(fù)特性。仿生硬件是通過(guò)進(jìn)化機(jī)制來(lái)實(shí)現(xiàn)電子電路 系統(tǒng)的實(shí)時(shí)自身重構(gòu);廣義上,仿生硬件包括各種形式的硬件,從傳感器 到能夠適應(yīng)變化的環(huán)境,且在運(yùn)行期間增強(qiáng)其性能的整個(gè)電子系統(tǒng)、微機(jī) 電系統(tǒng)。除了自組織生成具有新功能的電路外,仿生硬件還可用于保持現(xiàn) 有功能、獲得生物性容錯(cuò)以及實(shí)現(xiàn)硬件的實(shí)時(shí)"康復(fù)"。早在20世紀(jì)60年代,計(jì)算機(jī)之父Neumann J Von就提出了研制具有 自繁殖與自修復(fù)能力通用機(jī)器的偉大構(gòu)想。1992年,日本學(xué)者GarisHde 和瑞士聯(lián)邦工學(xué)院的科學(xué)家們同時(shí)提出了將FPGA的結(jié)構(gòu)可重配置特性 與進(jìn)化算法相結(jié)合的方案,標(biāo)志著仿生硬件這一新興研究領(lǐng)域的正式誕 生。隨后仿生硬件的研究得到了迅猛發(fā)展,很多國(guó)內(nèi)外學(xué)者投身其中,并 于1995年10月在瑞士洛桑召開(kāi)了仿生硬件國(guó)際專(zhuān)題會(huì)議(Towards Evolvable Hardware), 1996年10月在日本召開(kāi)了首屆進(jìn)化系統(tǒng)國(guó)際大會(huì) ,(ICES96),以后該會(huì)議每隔兩年舉行一次。同時(shí),鑒于這一新興研究領(lǐng)域 可望在空間探索和國(guó)防應(yīng)用中產(chǎn)生巨大影響,美國(guó)航空航天局(National Aeronautics and Space Administration, NASA)禾口國(guó)防部(Department of defense, DoD)對(duì)仿生硬件也表現(xiàn)出極大的興趣,并于1999年召開(kāi)了首屆 NASA/DoD仿生硬件專(zhuān)題討論會(huì),之后每年都要舉行一次類(lèi)似的討論會(huì), 以促進(jìn)仿生硬件的理論研究和應(yīng)用開(kāi)發(fā),其研究目標(biāo)是研制用于航天飛 機(jī)、宇宙飛船、空間探測(cè)器、人造衛(wèi)星、戰(zhàn)略飛機(jī)、核潛艇的自適應(yīng)與自 修復(fù)電子系統(tǒng)和測(cè)控系統(tǒng)。 .仿生硬件模擬自然進(jìn)化過(guò)程,將仿生優(yōu)化算法的思想用于硬件物理 結(jié)構(gòu)的設(shè)計(jì),特別是電子系統(tǒng)的設(shè)計(jì)。仿生優(yōu)化算法的發(fā)展和快速可重配 置硬件的出現(xiàn)極大地推動(dòng)和促進(jìn)了仿生硬件的發(fā)展。所以有學(xué)者對(duì)仿生硬 件提出了這樣一個(gè)公式性的描述仿生硬件=仿生算法+可編程邏輯器件' (1)仿生硬件的硬件基礎(chǔ)是可編程邏輯器件(Progmmmable logic device, PLD)。由于仿生進(jìn)化過(guò)程具有隨機(jī)性且要進(jìn)行很多次,因此要求相應(yīng)的 硬件能夠被多次反復(fù)配置,所以更嚴(yán)格地說(shuō),可重配置硬件(Reconfigurable hardware)是仿生硬件的硬件基礎(chǔ),而可無(wú)窮次重復(fù)配置的靜態(tài)隨機(jī)存儲(chǔ)器 (Static random access memory, SRAM)型FPGA是比較理想的實(shí)現(xiàn)設(shè)備。傳統(tǒng)的基于FPGA的硬件設(shè)計(jì)是一種自頂向下的設(shè)計(jì)流程,這其中 還要在各個(gè)不同層次進(jìn)行仿真模擬,以保證設(shè)計(jì)的正確性。將PLD能夠 形成的所有功能電路的集合作為一個(gè)空間,利用仿生優(yōu)化算法在這個(gè)空間 內(nèi)對(duì)問(wèn)題進(jìn)行求解,以找到滿足預(yù)定功能的硬件結(jié)構(gòu),此即仿生硬件的基 本原理。對(duì)仿生硬件設(shè)計(jì)個(gè)體的評(píng)價(jià)往往是比較費(fèi)時(shí)的,隨著輸入變量的增 加,評(píng)價(jià)的輸入所有的可能組合數(shù)是成指數(shù)增長(zhǎng)的,另一方面由于不當(dāng)?shù)?輸入可能會(huì)造成硬件的物理?yè)p壞,所以這就要求硬件本身具有較強(qiáng)的容錯(cuò) 性和魯棒性,同時(shí)也要求從算法上保證生成的個(gè)體都是合理的。因此,可 以將仿生硬件的實(shí)現(xiàn)條件歸結(jié)為(1) 硬件支持運(yùn)行時(shí)間的動(dòng)態(tài)重配置,包括結(jié)構(gòu)、連線等;(2) 硬件結(jié)構(gòu)要公開(kāi),能夠知道硬件內(nèi)部結(jié)構(gòu)的配置方法和配置位串 的信息; (3)硬件要有一定的容錯(cuò)性和魯棒性;(4)要有快速的硬件設(shè)計(jì)流程,包括工藝映射、布局、布線及下載等。 Isaacs J C等將遺傳算法和蟻群算法結(jié)合,提出了一種嵌入式硬件隨 機(jī)數(shù)據(jù)發(fā)生器設(shè)計(jì)的新思路,但是他們只是做了離線仿真,并沒(méi)有在硬件 上給予實(shí)現(xiàn)。Scheuermann B等提出了一種基于群體-蟻群優(yōu)化算法的仿生 硬件實(shí)現(xiàn)方案,并詳細(xì)給出了蟻群算法的FPGA硬件總體結(jié)構(gòu);Xiong Z H 等提出了遺傳算法與蟻群算法動(dòng)態(tài)融合的軟硬件劃分算法。上述系列仿生 硬件均存在實(shí)時(shí)性不高、魯棒性不強(qiáng)、應(yīng)用范圍不廣等缺點(diǎn)。本發(fā)明在基于現(xiàn)場(chǎng)可編程門(mén)陣列的蟻群算法仿生硬件實(shí)現(xiàn)過(guò)程中采 用了蟻群智能的如下特點(diǎn)(1) 在螞蟻不斷散布生物信息激素的加強(qiáng)作用下,新的信息會(huì)很快被 加入到環(huán)境中。而由于生物信息激素的蒸發(fā)更新,舊的信息會(huì)不斷被丟失, 體現(xiàn)出一種動(dòng)態(tài)特性; '(2) 由于許多螞蟻在環(huán)境中感受散布的生物信息激素同時(shí)自身也散 發(fā)生物信息激素,這使得不同的螞^(會(huì)有不同的選擇策略,具有分布性;(3) 最優(yōu)路線是通過(guò)眾多螞蟻的合作被搜索得到的,并成為大多數(shù)螞 蟻所選擇的路線,這一過(guò)程具有協(xié)同性;(4) 螞蟻個(gè)體之間、群體之間以及與環(huán)境之間的相互作用、相互影響、 相互協(xié)作,可以完成的復(fù)雜的任務(wù),這種適應(yīng)性表現(xiàn)為蟻群算法的魯棒性;(5) 自組織使得螞蟻群體的行為趨向結(jié)構(gòu)化,其原因在于包含了一個(gè) 正反饋的過(guò)程。這個(gè)過(guò)程利用了全局信息作為反饋,正反饋使系統(tǒng)演化過(guò) 程中較優(yōu)解的自增強(qiáng)作用,使得問(wèn)題的解向著全局最優(yōu)化的方向不斷變 化,最終能有效地獲得相對(duì)較優(yōu)解。蟻群算法尋優(yōu)過(guò)程中所體現(xiàn)出的并行性、協(xié)同性、自組織性、動(dòng)態(tài)性、 強(qiáng)魯棒性等特點(diǎn)與蟻群算法仿生硬件的許多要求是相符的。用現(xiàn)場(chǎng)可編程 門(mén)陣列設(shè)計(jì)實(shí)現(xiàn)的蟻群算法仿生硬件,具有自組織、自適應(yīng)、自修復(fù)、執(zhí) 行速度快等優(yōu)點(diǎn),可廣泛應(yīng)用于電路設(shè)計(jì)、自適應(yīng)控制、機(jī)器人技術(shù)、模 式識(shí)別、容錯(cuò)系統(tǒng)、航空航天等領(lǐng)域。
發(fā)明內(nèi)容蟻群算法是一種最新發(fā)展的仿生智能優(yōu)化算法,該算法模擬了自然界 '螞蟻的群體覓食行為。自然界中,螞蟻通過(guò)相互協(xié)調(diào)完成相對(duì)其本身來(lái)說(shuō) 比較艱巨的任務(wù),科學(xué)家發(fā)現(xiàn)螞蟻總能在較短的時(shí)間尋找到其巢穴與食物 源之間最短的路徑。蟻群算法最早用來(lái)成功地解決了著名的TSP。目前人 們對(duì)蟻群算法的研究己經(jīng)由當(dāng)初單一的旅行商問(wèn)題領(lǐng)域滲透到了多個(gè)應(yīng) 用領(lǐng)域,由解決一維靜態(tài)優(yōu)化問(wèn)題發(fā)展到解決多維動(dòng)態(tài)組合優(yōu)化問(wèn)題,由 離散域范圍內(nèi)的研究逐漸拓展到了連續(xù)域范圍內(nèi)的研究,而且在蟻群算法 的硬件實(shí)現(xiàn)上也取得了很多突破性進(jìn)展,從而使這種新興的仿生優(yōu)化算法 展現(xiàn)出勃勃生機(jī)和廣闊的發(fā)展前景。 一蟻群算法的主要特點(diǎn)是正反饋、并行性及分布式計(jì)算。正反饋過(guò)程 使得該方法能較快地發(fā)現(xiàn)問(wèn)題的較好解;分布式易于并行實(shí)現(xiàn),與啟發(fā)式 算法相結(jié)合,使得該方法易于發(fā)現(xiàn)更好的解。經(jīng)過(guò)生物學(xué)家研究,發(fā)現(xiàn)螞蟻之間是通過(guò)一種稱(chēng)為信息激素的化學(xué)物 質(zhì)來(lái)互相通信,并互相影響,真實(shí)的螞蟻外出覓食的日舍候會(huì)不斷地在經(jīng)過(guò) 的路徑上分泌信息素,記錄自己經(jīng)過(guò)的路線,路徑上的信息素濃度將影響 后續(xù)螞蟻的行進(jìn)路線。對(duì)于較短的路徑,在單位時(shí)間內(nèi)經(jīng)過(guò)的螞蟻數(shù)量較 多,路徑上的信息素濃度較高,吸引著較多的螞蟻沿該路徑搜索;對(duì)于距 離較長(zhǎng)的路徑,由于單位時(shí)間內(nèi)經(jīng)過(guò)的螞蟻數(shù)量較少,路徑上的信息素濃 度較低;而且信息素會(huì)隨著時(shí)間而揮發(fā),從而較長(zhǎng)的路徑的信息素濃度弱 化就會(huì)比較明顯,而對(duì)于較短路徑則由于經(jīng)過(guò)的螞蟻數(shù)量較多,信息素濃 度的衰減作用就顯得次要,主要體現(xiàn)為信息素濃度被經(jīng)過(guò)的螞蟻增強(qiáng),從 而形成了一種正反饋。這種正反饋機(jī)制為蟻群尋找最優(yōu)路徑提供了可行 性。螞蟻?zhàn)哌^(guò)的路徑越短,信息激素濃度越高,而信息激素濃度越高,吸引的 螞蟻越多,最后所有的螞蟻都集中到信息激素濃度最高的一條路徑上,這條 路徑就是從巢穴到食物源的最短路徑。
圖1為真實(shí)螞蟻的覓食過(guò)程。蟻群算法實(shí)際上是一類(lèi)智能多主體系統(tǒng),其自組織機(jī)制使得蟻群算法 不需要對(duì)所求問(wèn)題的每一方面都有詳盡的認(rèn)識(shí)。自組織本質(zhì)上是蚊群算法 機(jī)制在沒(méi)有外界作用下使系統(tǒng)熵增加的動(dòng)態(tài)過(guò)程,體現(xiàn)了從無(wú)序到有序的 動(dòng)態(tài)演化,其邏輯結(jié)構(gòu)如圖2所示。 ,蟻群算法的數(shù)學(xué)模型為設(shè)^仍表示f時(shí)刻位于元素Z的螞蟻數(shù)目, 、(0為^時(shí)刻路徑(/,力上的信息量,"表示TSP規(guī)模,m為蟻群中螞蟻的 總數(shù)目,則附=|>,(0; r = {ry(0k,,。 cQ是f時(shí)刻集合C中元素(城 '市)兩兩連接^ffe留信息量的集合。在初始時(shí)刻各條路徑上信息量相等, 并設(shè)、(0) = com,,基本蟻群算法的尋優(yōu)是通過(guò)有向圖g = (C,r)實(shí)現(xiàn)的。 .螞蟻^(^ = 1,2, — ,附)在運(yùn)動(dòng)過(guò)程中,根據(jù)各條路徑上的信息量決定其轉(zhuǎn)移方向。這里用禁忌表fa^^(A-l,2,…,m)來(lái)記錄螞蟻&當(dāng)前所走過(guò) 的城市,集合隨著to6^進(jìn)化過(guò)程作動(dòng)態(tài)調(diào)整。在搜索過(guò)程中,螞蟻根據(jù)各 條路徑上的信息量及路徑的啟發(fā)信息來(lái)計(jì)算狀態(tài)轉(zhuǎn)移概率。^W表示在^ 時(shí)刻螞蟻/c由元素(城市)/轉(zhuǎn)移到元素(城市)/'的狀態(tài)轉(zhuǎn)移概率'[,"化(0〗々n ——7,若J. ea〃o潔《 0, 否則式中,a〃owe《={C-to6wj表示螞蟻A:下一步允許選擇的城市。a為 信息啟發(fā)式因子,表示軌跡的相對(duì)重要性,反映了螞蟻在運(yùn)動(dòng)過(guò)程中所積 累的信息在螞蟻運(yùn)動(dòng)時(shí)所起的作用,其值越大,則該螞蟻越傾向于選擇其 它螞蟻經(jīng)過(guò)的路徑,螞蟻之間協(xié)作性越強(qiáng);P為期望啟發(fā)式因子,表示能 見(jiàn)度的相對(duì)重要性,反映了螞蟻在運(yùn)動(dòng)過(guò)程中啟發(fā)信息在螞蟻選擇路徑中 的受重視程度,其值越大,則該狀態(tài)轉(zhuǎn)移概率越接近于貪心規(guī)則。W《) 為啟發(fā)函數(shù),其表達(dá)式如下7y(0 = + (2) 《式中,4表示相鄰兩個(gè)城市之間的距離。對(duì)螞蟻&而言, 越小,則 ^")越大,"W也就越大。顯然,該啟發(fā)函數(shù)表示螞蟻從元素(城市)z'轉(zhuǎn) 移到元素(城市"的期望程度。為了避免殘留信息素過(guò)多引起殘留信息淹沒(méi)啟發(fā)信息,在每只螞蟻?zhàn)?完一步或者完成對(duì)所有w個(gè)城市的遍歷(也即一個(gè)循環(huán)結(jié)束)后,要對(duì)殘留 信息進(jìn)行更新處理。這種更新策略模仿了人類(lèi)大腦記憶的特點(diǎn),在新信息 不斷存入大腦的同時(shí),存貯在大腦中的舊信息隨著時(shí)間的推移逐漸淡化,甚至忘記。由此,h^z時(shí)刻在路徑(/,y)上的信息量可按如下規(guī)則進(jìn)行調(diào)整、("")二(1-/ )., + ^(0 (3)
= (4)式中,y9表示信息素?fù)]發(fā)系數(shù),則l-p表示信息素殘留因子,為了防 止信息的無(wú)限積累,p的取值范圍為pc
-l。同時(shí), S-陣列可被其包含的內(nèi)容所訪問(wèn)。當(dāng)它從蟻群模塊接收到傳送項(xiàng)^時(shí),可 將&,與S中的剩余項(xiàng)進(jìn)行比較。若存在某項(xiàng)&e51,且&=^,則S-陣 列返回地址",,其中"/是S-陣列中s,的地址,且將a,保存于匹配緩沖區(qū) 內(nèi)。選擇器用來(lái)建立狀態(tài)轉(zhuǎn)移概率分布并隨機(jī)選擇^eS,隨后將其送至評(píng)價(jià)模塊。解發(fā)生器的處理流程如圖7所示。由圖7可見(jiàn),處理流程開(kāi)始后,解 發(fā)生器使可選集5=(0,...,"-1),且初始化S-計(jì)數(shù)器c^"-l。該S-計(jì)數(shù)器是 由控制模塊中的外圍邏輯實(shí)現(xiàn),對(duì)于所有的解發(fā)生器而言,當(dāng)前的S-計(jì) 數(shù)器值都是可用的;匹配計(jì)數(shù)器M用來(lái)表示存于匹配緩沖區(qū)中匹配地址 的數(shù)目。該循環(huán)初始化完成之后,群體/行中的所有項(xiàng)^(" {0,1,一,"1}) 都傳送到S-陣列,當(dāng)S-陣列中某項(xiàng)A被匹配后,艮卩^^w則將與其相對(duì)
應(yīng)的匹配地址保存于匹配緩沖區(qū)內(nèi)。當(dāng)該循環(huán)周期的最后一次迭代結(jié)束 后,匹配緩沖區(qū)將包含群體和可選集/行中的所有項(xiàng)。螞蟻(解發(fā)生器)可 作出解向量中第Z'個(gè)位置的決策,它隨機(jī)選擇地址C^,并將其傳送到S-陣列中,隨后將被選項(xiàng)^存于地址A沖,且將^傳送到對(duì)應(yīng)的評(píng)價(jià)模塊 中,然后將印從選擇集S中移走,該過(guò)程不斷對(duì)解向量中剩余的"-C個(gè)位 置作出決策。s-陣列的操作包含三個(gè)基本階段,即傳送階段、選擇階段和壓縮階段。在傳送階段,群矩陣/行中的A:個(gè)項(xiàng)被傳送到S-單元;S-單元中的比較器 把傳送項(xiàng)與其已存有的s項(xiàng)進(jìn)行比較。若相等,則當(dāng)各自的S-單元活躍時(shí) (AF=1), S-單元將去除地址a。 -當(dāng)選擇器隨機(jī)選擇被選項(xiàng)^后,S-陣列即進(jìn)入了選擇階段。將被選地 址",*傳送到S-單元,每一個(gè)S-單元用其比較器將傳送來(lái)的地址與其a地 址進(jìn)行比較。S-單元/*將其所存的印項(xiàng)作為查詢(xún)結(jié)果傳送到評(píng)價(jià)模塊。每一個(gè)S-單 元_/也會(huì)利用其自身的比較器檢查是否為被選S-單元的前繼,即",^^。 所有的前繼S-單元設(shè)置其匹配標(biāo)志(Match flag, MF)為MF=1 ,而其它的則 設(shè)置]VKM)。在S-陣列的壓縮階段,每一個(gè)S-單元將其活躍標(biāo)志(AF)及其存儲(chǔ)項(xiàng)送 至后續(xù)S-單元。如果選擇階段的匹配標(biāo)志MF-1,則S-單元鎖存來(lái)自前繼 S-單元的相應(yīng)數(shù)據(jù),且邏輯數(shù)O被設(shè)置到第一個(gè)S-單元的AF標(biāo)志中。最 終結(jié)果是被選項(xiàng)印被覆蓋,被選單元(即力</*)的左邊所有項(xiàng)均向右移動(dòng) 一個(gè)單元。 一次迭代完成之后,通過(guò)將S-單元地址值調(diào)入到s-寄存器的 方式將S-陣列中數(shù)據(jù)寄存器的原始值再次初始化。選擇器結(jié)構(gòu)如圖8所示。選擇器用來(lái)接收來(lái)自匹配緩沖區(qū)內(nèi)匹配項(xiàng)M 的數(shù)目。 一旦隨機(jī)數(shù)r產(chǎn)生之后,可將其與c相比較,以決定S-陣列或匹 配緩沖區(qū)內(nèi)緩沖地址中的某項(xiàng)是否被選中。評(píng)價(jià)模塊用來(lái)評(píng)價(jià)由解發(fā)生器所產(chǎn)生解的質(zhì)量,該模塊的核心即為比 較模塊。每一個(gè)需要用蟻群算法解決的優(yōu)化問(wèn)題均需特定的評(píng)價(jià)模塊,該 評(píng)價(jià)模塊包含著特定問(wèn)題的評(píng)價(jià)參數(shù),并可計(jì)算來(lái)自解發(fā)生器的目標(biāo)函數(shù) 值。比較模塊用來(lái)評(píng)價(jià)算法迭代中所產(chǎn)生的最好解和新的精靈解(如果已
經(jīng)發(fā)現(xiàn)),并將其存于群體中。這里所設(shè)計(jì)的比較模塊如圖9所示。圖9 中,比較樹(shù)可減少比較模塊的邏輯延時(shí),用來(lái)構(gòu)造最好解的解發(fā)生器標(biāo)志 (best-index),并將其傳送到蟻群模塊。 一個(gè)附加比較器將目前迭代中最好 解與已發(fā)現(xiàn)最好解進(jìn)行比較,如果當(dāng)前最好解優(yōu)于已發(fā)現(xiàn)的最好解,則設(shè) 置精靈標(biāo)志"is-elite"。
權(quán)利要求
1、 一種基于現(xiàn)場(chǎng)nj編程門(mén)陣列的蟻群算法仿生硬件,其特征在于 它采用了從頂向下層次化的設(shè)計(jì)方法,該蟻群算法仿生硬件結(jié)構(gòu)主要 包括蟻群模塊、發(fā)生器模塊、評(píng)價(jià)模塊、控制模塊、輸入模塊和輸出模塊 六大基本模塊;其核心模塊是蟻群模塊、發(fā)生器模塊、評(píng)價(jià)模塊;該蟻 群模塊包括群矩陣2=[^|^,該矩陣由戶(hù)0列的精靈解和y e (1,2,…,"1}列 中的FIFO-序列構(gòu)成;蟻群模塊負(fù)責(zé)將群矩陣中第/行的 ^(/z"0,l,"a-1})傳送到發(fā)生器模塊,當(dāng)?shù)Y(jié)束時(shí),該蟻群模塊可從評(píng) 價(jià)模塊中接收最優(yōu)解,然后將其加入到序列中;發(fā)生器模塊可使m個(gè)解 發(fā)生器同時(shí)工作,其中一個(gè)解發(fā)生器對(duì)應(yīng)一只螞蟻,所有的解均由解發(fā)生 器傳送到評(píng)價(jià)模塊中的w個(gè)并行評(píng)價(jià)框內(nèi);m個(gè)解的評(píng)價(jià)結(jié)果將集中于 比較框中,由此來(lái)確定當(dāng)前迭代中的最好解;如果所得最好解優(yōu)于當(dāng)前最 好解,則將當(dāng)前最好解置換;該發(fā)生器模塊包含m個(gè)相同的解發(fā)生器,每一個(gè)解發(fā)生器模擬一只螞 蟻利用蟻群算法機(jī)制構(gòu)造解的行為;該解發(fā)生器包含三個(gè)基本單元,即 S-陣列、匹配緩沖區(qū)和選擇器;S-陣列用來(lái)存儲(chǔ)和保持s,eS中的選擇集 {&...,"-1},其中/s隊(duì).、小且f問(wèn)-l;同時(shí),S-陣列可被其包含的內(nèi)容所 訪問(wèn);當(dāng)它從蟻群模塊接收到傳送項(xiàng)^時(shí),可將^與S中的剩余項(xiàng)進(jìn)行比 較;若存在某項(xiàng)^eS,且^=^,則S-陣列返回地址a,,其中a,是S-陣列中&的地址,且將^保存于匹配緩沖區(qū)內(nèi);選擇器用來(lái)建立狀態(tài)轉(zhuǎn)移 概率分布并隨機(jī)選擇、.e S ,隨后將其送至評(píng)價(jià)模塊;該解發(fā)生器的處理流程處理流程開(kāi)始后,解發(fā)生器使可選集5K0, w-l),且初始化S-計(jì)數(shù)器e"-l;該S4十?dāng)?shù)器是由控制模塊中的外圍邏輯 實(shí)現(xiàn),對(duì)于所有的解發(fā)生器而言,當(dāng)前的S-計(jì)數(shù)器值都是可用的;匹配 計(jì)數(shù)器M用來(lái)表示存于匹配緩沖區(qū)中匹配地址的數(shù)目;該循環(huán)初始化完成之后,群體/行中的所有項(xiàng)^("(o,i,…,"i〉)都傳送到s-陣列,當(dāng)s-陣列中某項(xiàng)s/被匹配后,艮口s尸^,則將與其相對(duì)應(yīng)的匹配地址保存于匹配緩沖區(qū)內(nèi);當(dāng)該循環(huán)周期的最后一次迭代結(jié)束后,匹配緩沖區(qū)將包含群 體和可選集"于中的所有項(xiàng);螞蟻即解發(fā)生器可作出解向量中第/個(gè)位置 的決策,它隨機(jī)選擇地址一,并將其傳送到S-陣列中,隨后將被選項(xiàng)印 存于地址^中,且將印傳送到對(duì)應(yīng)的評(píng)價(jià)模塊中,然后將印從選擇集S 中移走,該過(guò)程不斷對(duì)解向量中剩余的"-c個(gè)位置作出決策;S-陣列的操作包含三個(gè)基本階段,即傳送階段、選擇階段和壓縮階段; 在傳送階段,群矩陣/行中的/t個(gè)項(xiàng)被傳送到S-單元,S-單元中的比較器 把傳送項(xiàng)與其已存有的s項(xiàng)進(jìn)行比較;若相等,則當(dāng)各自的S-單元活躍時(shí) (AF=1), S-單元將去除地址a;當(dāng)選擇器隨機(jī)選擇被選項(xiàng)^后,S-陣列即進(jìn)入了選擇階段;將被選地 址",*傳送到S-單元,每一個(gè)S-單元用其比較器將傳逢來(lái)的地址與其a地 址進(jìn)行比較;S-單元/*將其所存的印項(xiàng)作為查詢(xún)結(jié)果傳送到評(píng)價(jià)模塊;每一個(gè)S-單 元/也會(huì)利用其自身的比較器檢查是否為被選S-單元的前繼,即巧^^ ;所有的前繼S-單元設(shè)置其匹配標(biāo)志(Match flag, MF)為MF=1,而其它的則 設(shè)置MF二0;在S-陣列的壓縮階段,每一個(gè)S-單元將其活躍標(biāo)志AF及其存儲(chǔ)項(xiàng)送 至后續(xù)S-單元;如果選擇階段的匹配標(biāo)志MF-1,則S-單元鎖存來(lái)自前繼 S-單元的相應(yīng)數(shù)據(jù),且邏輯數(shù)O被設(shè)置到第一個(gè)S-單元的AF標(biāo)志中;最 終結(jié)果是被選項(xiàng)印被覆蓋,被選單元即"產(chǎn)/*的左邊所有項(xiàng)均向右移動(dòng)一 個(gè)單元; 一次迭代完成之后,通過(guò)將S-單元地址值調(diào)入到s-寄存器的方式將S-陣列中數(shù)據(jù)寄存器的原始值再次初始化;該選擇器用來(lái)接收來(lái)自匹配緩沖區(qū)內(nèi)匹配項(xiàng)M的數(shù)目; 一旦隨機(jī)數(shù)r 產(chǎn)生之后,可將其與c相比較,以決定S-陣列或匹配緩沖區(qū)內(nèi)緩沖地址中 的某項(xiàng)是否被選中;評(píng)價(jià)模塊用來(lái)評(píng)價(jià)由解發(fā)生器所產(chǎn)生解的質(zhì)量,該模塊的核心即為比 較模塊;每一個(gè)需要用蟻群算法解決的優(yōu)化問(wèn)題均需特定的評(píng)價(jià)模塊,該 評(píng)價(jià)模塊包含著特定問(wèn)題的評(píng)價(jià)參數(shù),并可計(jì)算來(lái)自解發(fā)生器的目標(biāo)函數(shù) 值;比較模塊用來(lái)評(píng)價(jià)算法迭代中所產(chǎn)生的最好解和新的精靈解,并將其 存于群體中;這里所設(shè)計(jì)的比較模塊中,比較樹(shù)可減少比較模塊的邏輯延 時(shí),用來(lái)構(gòu)造最好解的解發(fā)生器標(biāo)志即best-index,并將其傳送到蟻群模 塊;二個(gè)附加比較器將目前迭代中最好解與已發(fā)現(xiàn)最好解進(jìn)行比較,如果 當(dāng)前最好解優(yōu)于已發(fā)現(xiàn)的最好解,則設(shè)置精靈標(biāo)志"is-dite"。
全文摘要
本發(fā)明提供了一種基于現(xiàn)場(chǎng)可編程門(mén)陣列的蟻群算法仿生硬件。蟻群算法尋優(yōu)過(guò)程中所體現(xiàn)出的并行性、協(xié)同性、自組織性、動(dòng)態(tài)性、強(qiáng)魯棒性等特點(diǎn)與蟻群算法仿生硬件的許多要求是相符的。該蟻群算法仿生硬件結(jié)構(gòu)主要包括蟻群模塊、發(fā)生器模塊、評(píng)價(jià)模塊、控制模塊、輸入模塊和輸出模塊六個(gè)基本模塊。其中發(fā)生器模塊包含m個(gè)相同的解發(fā)生器,每一個(gè)解發(fā)生器模擬一只螞蟻利用蟻群算法機(jī)制構(gòu)造解的行為;評(píng)價(jià)模塊用來(lái)評(píng)價(jià)由解發(fā)生器所產(chǎn)生解的質(zhì)量;控制模塊用來(lái)輔助評(píng)價(jià)算法迭代中所產(chǎn)生的最好解和新的精靈解,并與評(píng)價(jià)模塊進(jìn)行信息交互。該蟻群算法仿生硬件具有自組織、自適應(yīng)、自修復(fù)、執(zhí)行速度快等優(yōu)點(diǎn),并具有較強(qiáng)的容錯(cuò)性。
文檔編號(hào)G06N3/00GK101122973SQ20071012177
公開(kāi)日2008年2月13日 申請(qǐng)日期2007年9月13日 優(yōu)先權(quán)日2007年9月13日
發(fā)明者于秀芬, 段海濱, 羅德林, 陳宗基 申請(qǐng)人:北京航空航天大學(xué)