同任務(wù)】基于matlab蟻群算法多無人機(jī)攻擊調(diào)度【含Matlab源碼 034期】)
歡迎來到海神之光博客之家?博主簡介熱愛科研的Matlab仿真開發(fā)者修心和技術(shù)同步精進(jìn)個(gè)人主頁海神之光代碼獲取方式海神之光Matlab王者學(xué)習(xí)之路—代碼獲取方式??座右銘行百里者半于九十。更多Matlab路徑規(guī)劃仿真內(nèi)容點(diǎn)擊①M(fèi)atlab路徑規(guī)劃進(jìn)階版②付費(fèi)專欄Matlab路徑規(guī)劃初級(jí)版??關(guān)注CSDN海神之光更多資源等你來?一、多無人機(jī)協(xié)同作業(yè)簡介0 引言多架無人機(jī)組成無人機(jī)集群可以協(xié)同完成任務(wù)是未來無人機(jī)的發(fā)展方向。組成無人機(jī)集群的多架無人機(jī)通過機(jī)間鏈路互相通信實(shí)現(xiàn)協(xié)作可以迅速準(zhǔn)確地執(zhí)行路徑規(guī)劃、協(xié)同偵察、協(xié)同感知和協(xié)同攻擊等復(fù)雜任務(wù)。為實(shí)現(xiàn)無人機(jī)集群協(xié)作的誘人前景國內(nèi)外都積極開展了相關(guān)研究工作。美國方面美國國防預(yù)先研究計(jì)劃局(DARPA)于2015年推出“小精靈”項(xiàng)目計(jì)劃研制具備自組織和智能協(xié)同能力的無人機(jī)蜂群系統(tǒng)。美國防部戰(zhàn)略能力辦公室(SCO)2014年啟動(dòng)了“無人機(jī)蜂群”項(xiàng)目旨在通過有人機(jī)空射“灰山鶉”微型無人機(jī)蜂群執(zhí)行低空態(tài)勢感知和干擾任務(wù)。美國海軍研究局(ONR)于2015年公布了“低成本無人機(jī)蜂群”(LOCUST)項(xiàng)目研發(fā)可快速連續(xù)發(fā)射的無人機(jī)蜂群無人機(jī)之間利用近距離射頻網(wǎng)絡(luò)共享態(tài)勢信息協(xié)同執(zhí)行掩護(hù)、攻擊或防御任務(wù)。2017年在 DARPA 會(huì)議中心舉辦“進(jìn)攻性集群戰(zhàn)術(shù)”(OFFSET)項(xiàng)目的提案人活動(dòng)目標(biāo)是發(fā)展基于游戲的開放架構(gòu)為城市作戰(zhàn)的無人集群系統(tǒng)生成、評(píng)估和集成集群戰(zhàn)術(shù)。歐洲方面2016 年歐洲防務(wù)局啟動(dòng)了“歐洲蜂群”項(xiàng)目開展了無人機(jī)蜂群的自主決策、協(xié)同飛行等關(guān)鍵技術(shù)研究。2016年英國國防部發(fā)起無人機(jī)蜂群競賽參賽的多個(gè)團(tuán)隊(duì)控制無人機(jī)蜂群實(shí)現(xiàn)了通信中繼、協(xié)同干擾、目標(biāo)跟蹤定位和區(qū)域測繪等任務(wù)。2017 年俄羅斯無線電電子技術(shù)集團(tuán)對(duì)外發(fā)表研究計(jì)劃稱在戰(zhàn)斗機(jī)上裝載多架蜂群無人機(jī)可實(shí)現(xiàn)協(xié)同偵察和攻擊的新型作戰(zhàn)樣式。國內(nèi)也相繼展開相關(guān)研究。最近中國電科(CETC)電子科學(xué)研究院發(fā)布了陸軍協(xié)同無人機(jī)“蜂群”視頻引起廣泛關(guān)注。面對(duì)這一重要課題本文研究總結(jié)了無人機(jī)協(xié)同應(yīng)用的發(fā)展趨勢對(duì)其當(dāng)前研究進(jìn)展和發(fā)展方向進(jìn)行了探討并提出無人機(jī)集群任務(wù)協(xié)作的發(fā)展趨勢是多智能體協(xié)同。1 無人機(jī)協(xié)同應(yīng)用發(fā)展趨勢對(duì)現(xiàn)有研究工作的分析如圖1所示無人機(jī)協(xié)同應(yīng)用大體上可以分為3個(gè)階段分別是分布式協(xié)同群體智能協(xié)同和未來的多智能體協(xié)同。圖1 無人機(jī)協(xié)同技術(shù)的發(fā)展趨勢無人機(jī)集群協(xié)同發(fā)展的第1個(gè)階段是簡單分布式協(xié)同。在該階段協(xié)同任務(wù)根據(jù)執(zhí)行條件預(yù)先在簡單連接和組合的集群成員之間經(jīng)過計(jì)算處理后分配執(zhí)行。集群基本沒有能力根據(jù)環(huán)境與目標(biāo)的變化動(dòng)態(tài)調(diào)整任務(wù)分配各無人機(jī)分擔(dān)的任務(wù)通常是確定的。鑒于預(yù)分配方式的局限性受生物集群活動(dòng)的啟發(fā)群體智能被應(yīng)用于無人機(jī)集群使無人機(jī)集群協(xié)同發(fā)展到第2個(gè)階段——群體智能協(xié)同。在該階段中各個(gè)無人機(jī)節(jié)點(diǎn)被賦予初級(jí)智能能夠進(jìn)行簡單的認(rèn)知和決策通過集群個(gè)體之間更為緊密的耦合可以根據(jù)執(zhí)行中的反饋調(diào)整優(yōu)化方式或者優(yōu)化目標(biāo)使整個(gè)無人機(jī)集群系統(tǒng)有能力構(gòu)成自組織、高穩(wěn)定的分布式系統(tǒng)。群體智能協(xié)同階段當(dāng)前正處于研究和應(yīng)用迅速發(fā)展時(shí)期。隨著節(jié)點(diǎn)計(jì)算能力的進(jìn)一步提升和人工智能技術(shù)的飛速發(fā)展無人機(jī)協(xié)同即將進(jìn)入發(fā)展的第3個(gè)階段——多智能體協(xié)同。在多智能體協(xié)同發(fā)展階段集群中的各個(gè)無人機(jī)都將是一個(gè)獨(dú)立的綜合智能體具有多維度認(rèn)知計(jì)算和高級(jí)智能處理能力從而實(shí)現(xiàn)更高效的自主學(xué)習(xí)和決策并在此基礎(chǔ)上完成更復(fù)雜、更艱巨的任務(wù)。2 分布式協(xié)同從無人機(jī)集群出現(xiàn)開始就被用于解決協(xié)同路徑規(guī)劃、協(xié)同感知和協(xié)同任務(wù)規(guī)劃等分布式協(xié)作任務(wù)。早期的無人機(jī)分布式協(xié)同任務(wù)通常都是提前進(jìn)行充分的計(jì)算和分配無人機(jī)節(jié)點(diǎn)按照既定算法或者方案予以執(zhí)行。根據(jù)計(jì)算結(jié)果分布式協(xié)同無人機(jī)群可組織執(zhí)行配置好的任務(wù)如圖2所示。圖2 分布式協(xié)同階段的任務(wù)執(zhí)行方式2.1 協(xié)同路徑規(guī)劃協(xié)同路徑規(guī)劃中要求在給定目標(biāo)或者搜索目標(biāo)后無人機(jī)節(jié)點(diǎn)根據(jù)當(dāng)前的任務(wù)狀態(tài)來確定飛行路徑。針對(duì)協(xié)同搜索和跟蹤任務(wù)的路線規(guī)劃無人機(jī)集群可采用最大化目標(biāo)功能來檢測最重要的目標(biāo)并在關(guān)鍵時(shí)刻對(duì)其進(jìn)行跟蹤從而獲得最有價(jià)值的信息。而協(xié)同搜索的路徑規(guī)劃可以分成無人機(jī)工作區(qū)間劃分和全區(qū)域覆蓋搜索路徑規(guī)劃2個(gè)子問題將多機(jī)協(xié)同搜索轉(zhuǎn)化為子區(qū)域上的單機(jī)搜索對(duì)目標(biāo)區(qū)域快速進(jìn)行劃分并生成飛行路線?;诟倪M(jìn)遺傳算法的多無人機(jī)協(xié)同偵察航跡規(guī)劃算法可用于解決面向復(fù)雜戰(zhàn)場環(huán)境中高效偵察多種類型目標(biāo)過程中的路徑規(guī)劃問題并能夠有效地提高航跡規(guī)劃精度和效率。2.2 協(xié)同感知協(xié)同感知是多無人機(jī)集群共同探測感知某一目標(biāo)區(qū)域狀態(tài)的任務(wù)形式。在這類任務(wù)中最常見的是協(xié)同頻譜感知。針對(duì)協(xié)同頻譜感知任務(wù)特點(diǎn)采用最佳融合準(zhǔn)則的分布式協(xié)同任務(wù)執(zhí)行方案可以優(yōu)化檢測性能使協(xié)作頻譜感知總錯(cuò)誤率達(dá)到最小并能降低協(xié)作感知時(shí)間節(jié)省感知過程開銷。2.3 協(xié)同任務(wù)規(guī)劃協(xié)同任務(wù)規(guī)劃要求集群系統(tǒng)能夠根據(jù)目標(biāo)任務(wù)和執(zhí)行情況對(duì)任務(wù)進(jìn)行系統(tǒng)分配。例如針對(duì)協(xié)同打擊任務(wù)通過建立無人機(jī)毀傷代價(jià)指標(biāo)函數(shù)、航程代價(jià)指標(biāo)函數(shù)和價(jià)值收益指標(biāo)函數(shù)可以實(shí)現(xiàn)多無人機(jī)協(xié)同打擊任務(wù)的分配[5];而通過建立多目標(biāo)優(yōu)化模型并采用遺傳算法能有效提高任務(wù)的完成效率。針對(duì)協(xié)同搜救任務(wù)使用一種新的基于通信保持的拍賣方法的自適應(yīng)反饋調(diào)節(jié)遺傳算法能夠改善傳統(tǒng)遺傳算法存在易陷入局部最優(yōu)的弱點(diǎn)。通過以上3種類型協(xié)同任務(wù)的相關(guān)研究工作可以看出無人機(jī)集群的分布式協(xié)同方式雖然充分考慮了“分布式”特點(diǎn)能夠根據(jù)任務(wù)目標(biāo)和集群特征設(shè)置有效的目標(biāo)函數(shù)和優(yōu)化方法去尋求最優(yōu)或者較優(yōu)的結(jié)果但是其任務(wù)執(zhí)行環(huán)境和求解目標(biāo)需要在任務(wù)執(zhí)行之前進(jìn)行優(yōu)化計(jì)算然后分配執(zhí)行不能適應(yīng)實(shí)際中動(dòng)態(tài)的任務(wù)目標(biāo)和環(huán)境變化缺乏“智能性”的感知和適應(yīng)性行為。隨著人們對(duì)“蜂群”“鳥群”等生物群體智能研究的深入群體智能協(xié)同被進(jìn)一步引入到無人機(jī)的協(xié)同中。3 群體智能協(xié)同“鳥群”“蟻群”等生物群體雖然其中的個(gè)體智能有限但是群體卻展現(xiàn)出高度的自組織性這一特點(diǎn)與無人機(jī)集群自主協(xié)同的需求相符因而群體智能在無人機(jī)協(xié)同應(yīng)用領(lǐng)域也得到了廣泛研究使無人機(jī)集群協(xié)同具有了初步的智能性。具備群體智能的無人機(jī)集群系統(tǒng)在任務(wù)拆解和執(zhí)行過程中引入了群體反饋和適變能力可執(zhí)行較復(fù)雜的動(dòng)態(tài)任務(wù)其過程如圖3所示。圖3 群體智能協(xié)同階段的任務(wù)執(zhí)行方式3.1 協(xié)同路徑規(guī)劃山區(qū)路徑規(guī)劃任務(wù)受到地形特征的強(qiáng)烈影響難以預(yù)先確定性分配執(zhí)行簡單的分布式協(xié)同無法勝任。例如為了執(zhí)行山區(qū)應(yīng)急物資運(yùn)輸?shù)穆窂揭?guī)劃任務(wù)一種考慮路徑安全度的改進(jìn)蟻群算法可快速收斂并生成更短路徑。蟻群算法也被用于無人機(jī)協(xié)同飛抵空戰(zhàn)場的航跡規(guī)劃任務(wù)中;一種基于改進(jìn)混沌蟻群算法更能克服傳統(tǒng)蟻群智能算法中易出現(xiàn)局部極值、收斂效率低的缺陷提升算法的全局尋優(yōu)能力和搜索效率。針對(duì)協(xié)同攻擊移動(dòng)目標(biāo)場景的航跡規(guī)劃另一種改進(jìn)的蟻群算法建立了結(jié)合任務(wù)分配的無人機(jī)群協(xié)同航跡規(guī)劃模型可以快速地對(duì)地面多個(gè)移動(dòng)目標(biāo)規(guī)劃出有效的航跡。3.2 協(xié)同感知在協(xié)同感知任務(wù)中群體智能也得到應(yīng)用。針對(duì)無人機(jī)集群通信場景和需求出現(xiàn)了考慮結(jié)合認(rèn)知無線電技術(shù)指導(dǎo)下的智能通信思想和匯聚有限智慧的群體智能理論方法構(gòu)建了群體智能協(xié)同通信模型和智能協(xié)同感知模型。3.3 協(xié)同任務(wù)規(guī)劃協(xié)同作戰(zhàn)是協(xié)同任務(wù)規(guī)劃中的典型場景結(jié)合群體智能優(yōu)化算法的優(yōu)勢基于粒子群-整數(shù)編碼狼群算法的集群組網(wǎng)任務(wù)分配算法適合解決此類協(xié)同問題;由于無人機(jī)集群協(xié)同決策困難還可以結(jié)合狼群算法的認(rèn)知與協(xié)作能力實(shí)現(xiàn)在復(fù)雜環(huán)境下迅速對(duì)目標(biāo)進(jìn)行跟蹤和包圍。這種協(xié)同任務(wù)是第一類簡單協(xié)同所不能勝任的。雖然無人機(jī)集群和群體智能的結(jié)合可以充分發(fā)揮無人機(jī)集群優(yōu)勢增強(qiáng)分布式協(xié)同智能性可在任務(wù)執(zhí)行過程中與環(huán)境和任務(wù)執(zhí)行中間過程產(chǎn)生一定交互和反饋使之具備一定的自適應(yīng)能力但是這種智能仍然是非常有限的其本質(zhì)仍然是基于特定計(jì)算模式和反饋模式下的分布式優(yōu)化算法。4 多智能體協(xié)同隨著人工智能技術(shù)和節(jié)點(diǎn)自身算力的不斷增強(qiáng)未來無人機(jī)集群中的個(gè)體將具備更強(qiáng)的智能性能夠獨(dú)立對(duì)環(huán)境和任務(wù)進(jìn)行感知和評(píng)估實(shí)現(xiàn)多個(gè)智能體之間的交互和協(xié)同從而具備多智能體協(xié)同能力。近年來人工智能領(lǐng)域研究取得了突破性進(jìn)展。其中深度強(qiáng)化學(xué)習(xí)在諸多領(lǐng)域得到了成功應(yīng)用。無線通信網(wǎng)絡(luò)基于多智能體深度強(qiáng)化學(xué)習(xí)的資源分配技術(shù)也得到了深入研究。多智能體深度強(qiáng)化學(xué)習(xí)模型早已被用于解決車聯(lián)網(wǎng)中頻譜資源分配問題,這種應(yīng)用已經(jīng)與無人機(jī)集群系統(tǒng)頗為接近。例如一種基于多智能體深度強(qiáng)化學(xué)習(xí)的分布式動(dòng)態(tài)功率分配方案。基于多智能體深度強(qiáng)化學(xué)習(xí)的策略還可被用于二者的結(jié)合——用無人機(jī)輔助車輛網(wǎng)絡(luò)進(jìn)行多維資源管理。雖然基于強(qiáng)化學(xué)習(xí)的多智能體通信網(wǎng)絡(luò)資源分配問題已經(jīng)得到了廣泛研究但是由于網(wǎng)絡(luò)特性的不同傳統(tǒng)的針對(duì)其他通信網(wǎng)絡(luò)的研究成果不能直接用于無人機(jī)集群網(wǎng)絡(luò)。因而基于強(qiáng)化學(xué)習(xí)的多智能體自主協(xié)同應(yīng)用逐漸成為未來無人機(jī)多智能體自主協(xié)同的一個(gè)研究熱點(diǎn)。針對(duì)無人機(jī)群的通信網(wǎng)絡(luò)資源動(dòng)態(tài)分配問題而提出的多智能體深度強(qiáng)化學(xué)習(xí)方案也陸續(xù)出現(xiàn),例如一種基于多智能體深度強(qiáng)化學(xué)習(xí)的分布式干擾協(xié)調(diào)策略被用于受到干擾的無人機(jī)網(wǎng)絡(luò)中的文件下載業(yè)務(wù)。智能體在適用于無人機(jī)網(wǎng)絡(luò)特點(diǎn)的獨(dú)立強(qiáng)化學(xué)習(xí)中其行為策略通常只能根據(jù)它們對(duì)全局環(huán)境的局部個(gè)體觀察來制定。針對(duì)這種局限性聯(lián)合采用2種不同規(guī)模的智能體可解決智能體之間的通信問題。無人機(jī)集群協(xié)同經(jīng)常會(huì)處理動(dòng)態(tài)高維離散和連續(xù)動(dòng)作狀態(tài)空間的優(yōu)化求解問題近來出現(xiàn)的演員-評(píng)論家算法是深度強(qiáng)化學(xué)習(xí)的一個(gè)新興方向結(jié)合了基于值函數(shù)和基于策略函數(shù)的深度強(qiáng)化學(xué)習(xí)兩大分支的優(yōu)勢非常適用于無人機(jī)集群的智能協(xié)同。利用演員-評(píng)論家算法在無線信道和可再生能源再生率都是隨機(jī)變化且環(huán)境動(dòng)態(tài)變化條件下可尋求資源分配最佳策略,如用于解決車聯(lián)網(wǎng)中復(fù)雜動(dòng)態(tài)環(huán)境下的資源分配問題。應(yīng)用設(shè)備到設(shè)備(D2D)網(wǎng)絡(luò)的異構(gòu)蜂窩網(wǎng)絡(luò)環(huán)境下基于演員-評(píng)論家算法的策略可用于智能化節(jié)能模式選擇和資源分配。隨著節(jié)點(diǎn)智能算力的不斷增強(qiáng)無人機(jī)集群中的每架無人機(jī)可以作為一個(gè)具有深度強(qiáng)化學(xué)習(xí)能力的智能體而整個(gè)集群可通過合作構(gòu)成多智能體。相鄰無人機(jī)之間通過通信網(wǎng)絡(luò)進(jìn)行信息交換與分發(fā)。如圖4所示每架無人機(jī)都與局部環(huán)境相互作用根據(jù)從周圍環(huán)境或者同伴無人機(jī)得到的信息針對(duì)承載的任務(wù)需求通過深度強(qiáng)化學(xué)習(xí)智能地產(chǎn)生動(dòng)作策略進(jìn)行自身資源與行為的分配與調(diào)整進(jìn)而與環(huán)境和同伴互動(dòng)并獲得個(gè)體獎(jiǎng)勵(lì)。圖4 基于多智能體的無人機(jī)集群每架無人機(jī)的深度強(qiáng)化學(xué)習(xí)智能體由2個(gè)深度神經(jīng)網(wǎng)絡(luò)構(gòu)成包括演員網(wǎng)絡(luò)和評(píng)論家網(wǎng)絡(luò)如圖5所示。圖5 基于演員評(píng)論家算法的無人機(jī)智能體演員網(wǎng)絡(luò)負(fù)責(zé)輸出動(dòng)作評(píng)論家網(wǎng)絡(luò)負(fù)責(zé)評(píng)價(jià)演員的動(dòng)作以獲得相互促進(jìn)的效果。與傳統(tǒng)的深度強(qiáng)化學(xué)習(xí)方法相比演員-評(píng)論家算法同時(shí)吸取了基于值函數(shù)方法和基于策略函數(shù)方法的優(yōu)點(diǎn)從價(jià)值和策略兩方面來訓(xùn)練提升智能體訓(xùn)練的更快效果也更好。通過訓(xùn)練和學(xué)習(xí)期望智能體的評(píng)論家網(wǎng)絡(luò)可以獲得最佳效用評(píng)估函數(shù)智能體從周圍環(huán)境中觀察得到狀態(tài)信息St ,例如干擾狀態(tài)、相鄰無人機(jī)等。演員網(wǎng)絡(luò)擬合動(dòng)作策略函數(shù)π(St;ωπ),根據(jù)狀態(tài)信息St,動(dòng)作策略函數(shù)輸出當(dāng)前時(shí)隙的動(dòng)作at,也就是資源分配結(jié)果并應(yīng)用到環(huán)境中得到個(gè)體的即時(shí)獎(jiǎng)勵(lì)rt。獎(jiǎng)勵(lì)由獎(jiǎng)勵(lì)函數(shù)計(jì)算得到負(fù)責(zé)反饋一個(gè)即時(shí)的、合理的、具有指導(dǎo)意義的獎(jiǎng)勵(lì)值從而激勵(lì)智能體向目標(biāo)更新策略。評(píng)論家網(wǎng)絡(luò)擬合效用評(píng)估函數(shù)Q(St,at,ω),負(fù)責(zé)預(yù)測和評(píng)估在當(dāng)前狀態(tài)St采用動(dòng)作at所能得到的狀態(tài)動(dòng)作價(jià)值即長期性回報(bào)Rt為式中γ是折扣因子γ表示了當(dāng)前對(duì)于未來收益的重視程度取值在01之間取值0則表示智能體忽視未來收益只看重當(dāng)前的收益rt,取值1則表示智能體將未來每個(gè)時(shí)刻的收益都視為與當(dāng)前時(shí)刻收益一樣的重要性。獲得最大的長期性回報(bào)是智能體的最終目的這個(gè)目標(biāo)可以根據(jù)任務(wù)的性質(zhì)被定義為不同的評(píng)判標(biāo)準(zhǔn)。評(píng)論家網(wǎng)絡(luò)的最佳效用評(píng)估函數(shù)對(duì)應(yīng)的演員網(wǎng)絡(luò)動(dòng)作策略即為最佳動(dòng)作策略π*。動(dòng)作策略函數(shù)的參數(shù)通過策略梯度的方法進(jìn)行更新效用評(píng)估函數(shù)的參數(shù)采用最小化損失函數(shù)進(jìn)行更新式中yt為優(yōu)勢函數(shù)用來衡量計(jì)算執(zhí)行動(dòng)作后的實(shí)際效用評(píng)估值。通過更新智能體的演員網(wǎng)絡(luò)的動(dòng)作策略輸出的動(dòng)作越來越好而評(píng)論家網(wǎng)絡(luò)的效用評(píng)估也會(huì)越來越準(zhǔn)確。基于多智能體的無人機(jī)群的每架無人機(jī)都會(huì)朝著收益最大的方向執(zhí)行動(dòng)作從而實(shí)現(xiàn)集群的收益最大化。?二、蟻群算法簡介1 蟻群算法(ant colony algorithm,ACA)起源和發(fā)展歷程Marco Dorigo等人在研究新型算法的過程中發(fā)現(xiàn)蟻群在尋找食物時(shí)通過分泌一種稱為信息素的生物激素交流覓食信息從而能快速的找到目標(biāo)于是在1991年在其博士論文中首次系統(tǒng)地提出一種基于螞蟻種群的新型智能優(yōu)化算法“螞蟻系統(tǒng)Ant system,簡稱AS”后來提出者及許多研究者對(duì)該算法作了各種改進(jìn)將其應(yīng)用于更為廣泛的領(lǐng)域如圖著色問題、二次分配問題、工件排序問題、車輛路徑問題、車間作業(yè)調(diào)度問題、網(wǎng)絡(luò)路由問題、大規(guī)模集成電路設(shè)計(jì)等。近些年來M.Dorigo等人把螞蟻算法進(jìn)一步發(fā)展成一種通用的優(yōu)化技術(shù)“蟻群優(yōu)化Ant Colony Optimization,簡稱ACO”并將所有符合ACO框架的算法稱為“蟻群優(yōu)化算法ACO algorithm”。具體來說各個(gè)螞蟻在沒有事先告知食物在什么地方的前提下開始尋找食物。當(dāng)一只找到食物以后它會(huì)向環(huán)境釋放一種揮發(fā)性分泌物pheromone (稱為信息素,該物質(zhì)隨著時(shí)間的推移會(huì)逐漸揮發(fā)消失信息素濃度的大小表征路徑的遠(yuǎn)近)信息素能夠讓其他螞蟻感知從而起到一個(gè)引導(dǎo)的作用。通常多個(gè)路徑上均有信息素時(shí)螞蟻會(huì)優(yōu)先選擇信息素濃度高的路徑從而使?jié)舛雀叩穆窂叫畔⑺貪舛雀咝纬梢粋€(gè)正反饋。有些螞蟻并沒有像其它螞蟻一樣總重復(fù)同樣的路他們會(huì)另辟蹊徑如果另開辟的道路比原來的其他道路更短那么漸漸地更多的螞蟻被吸引到這條較短的路上來。最后經(jīng)過一段時(shí)間運(yùn)行可能會(huì)出現(xiàn)一條最短的路徑被大多數(shù)螞蟻重復(fù)著。最終信息素濃度最高的路徑即是最終被螞蟻選中的最優(yōu)路徑。與其他算法相比蟻群算法是一種比較年輕的算法具有分布式計(jì)算、無中心控制、個(gè)體之間異步間接通信等特點(diǎn)并且易于與其他優(yōu)化算法相結(jié)合經(jīng)過不少仁人志士的不斷探索到今天已經(jīng)發(fā)展出了各式各樣的改進(jìn)蟻群算法不過蟻群算法的原理仍是主干。2 蟻群算法的求解原理基于上述對(duì)蟻群覓食行為的描述該算法主要對(duì)覓食行為進(jìn)行以下幾個(gè)方面模擬1模擬的圖場景中包含了兩種信息素一種表示家一種表示食物的地點(diǎn)并且這兩種信息素都在以一定的速率進(jìn)行揮發(fā)。2每個(gè)螞蟻只能感知它周圍的小部分地方的信息。螞蟻在尋找食物的時(shí)候如果在感知范圍內(nèi)就可以直接過去如果不在感知范圍內(nèi)就要朝著信息素多的地方走螞蟻可以有一個(gè)小概率不往信息素多的地方走而另辟蹊徑這個(gè)小概率事件很重要代表了一種找路的創(chuàng)新對(duì)于找到更優(yōu)的解很重要。3螞蟻回窩的規(guī)則與找食物的規(guī)則相同。4螞蟻在移動(dòng)時(shí)候首先會(huì)根據(jù)信息素的指引如果沒有信息素的指引會(huì)按照自己的移動(dòng)方向慣性走下去但也有一定的機(jī)率改變方向螞蟻還可以記住已經(jīng)走過的路避免重復(fù)走一個(gè)地方。5螞蟻在找到食物時(shí)留下的信息素最多然后距離食物越遠(yuǎn)的地方留下的信息素越少。找到窩的信息素留下的量的規(guī)則跟食物相同。蟻群算法有以下幾個(gè)特點(diǎn):正反饋算法、并發(fā)性算法、較強(qiáng)的魯棒性、概率型全局搜索、不依賴嚴(yán)格的數(shù)學(xué)性質(zhì)、搜索時(shí)間長易出現(xiàn)停止現(xiàn)象。螞蟻轉(zhuǎn)移概率公式公式中是螞蟻k從城市i轉(zhuǎn)移到j(luò)的概率αβ分別為信息素和啟發(fā)式因子的相對(duì)重要程度為邊ij上的信息素量為啟發(fā)式因子為螞蟻k下步允許選擇的城市。上述公式即為螞蟻系統(tǒng)中的信息素更新公式是邊i,j)上的信息素量ρ是信息素蒸發(fā)系數(shù)0ρ1;為第k只螞蟻在本次迭代中留在邊i,j上的信息素量Q為一正常系數(shù)為第k只螞蟻在本次周游中的路徑長度。在螞蟻系統(tǒng)中信息素更新公式為3 蟻群算法的求解步驟1初始化參數(shù)在計(jì)算之初需要對(duì)相關(guān)參數(shù)進(jìn)行初始化如蟻群規(guī)模螞蟻數(shù)量m、信息素重要程度因子α、啟發(fā)函數(shù)重要程度因子β、信息素會(huì)發(fā)銀子ρ、信息素釋放總量Q、最大迭代次數(shù)iter_max、迭代次數(shù)初值iter1。2構(gòu)建解空間將各個(gè)螞蟻隨機(jī)地置于不同的出發(fā)點(diǎn)對(duì)每個(gè)螞蟻kk1,2,3…m按照2-1計(jì)算其下一個(gè)待訪問城市直到所有螞蟻訪問完所有城市。3更新信息蘇計(jì)算每個(gè)螞蟻經(jīng)過路徑長度Lk(k1,2,…m記錄當(dāng)前迭代次數(shù)中的最優(yōu)解最短路徑。同時(shí)根據(jù)式2-2和2-3對(duì)各個(gè)城市連接路徑上信息素濃度進(jìn)行更新。4 判斷是否終止若iteriter_max則令iteriter1,清空螞蟻經(jīng)過路徑的記錄表并返回步驟2否則終止計(jì)算輸出最優(yōu)解。5判斷是否終止若iteriter_max則令iteriter1,清空螞蟻經(jīng)過路徑的記錄表并返回步驟2否則終止計(jì)算輸出最優(yōu)解。3. 判斷是否終止若iteriter_max則令iteriter1,清空螞蟻經(jīng)過路徑的記錄表并返回步驟2否則終止計(jì)算輸出最優(yōu)解。?三、部分源代碼t[4 5;16 25.8;10 45;20 55;30 65;35 55;29 31;37 26;47 27;30 31.3;31 17;14 7;35.6 13.8;26.7 22.5;21 39;38 42;5 26;28 53;20 13;10 60;26 31;54 38;7 58;12 36;30 2] %24個(gè)點(diǎn),第25個(gè)點(diǎn)事originsave t.mat tload t.matvalue[1 1 1 2 3 2 1 3 3 2 2 2 2 2 1 2 3 3 1 1 2 1 1 1]; %24個(gè)目標(biāo)的價(jià)值valuevalue/100;timezeros(1,25); %偵察UAV時(shí)間數(shù)組里面放的是飛機(jī)走的航程除以速度便是時(shí)間設(shè)速度為‘1’attacktimezeros(1,25); %打擊UAV時(shí)間數(shù)組%把偵察過的任務(wù)對(duì)應(yīng)無人機(jī)走過的航程存到該任務(wù)的一個(gè)矩陣?yán)锂?dāng)做時(shí)間然后打擊任務(wù)如果選定某任務(wù)check一下時(shí)間是否合格合格的話可以打擊并存入禁忌表不合格的話選次概率的%注目的是把所有目標(biāo)執(zhí)行完所有任務(wù)所以每次迭代最后所有無人機(jī)收獲的總價(jià)值都一樣都是所有目標(biāo)的價(jià)值之和所以本程序考慮優(yōu)先執(zhí)行價(jià)值大的目標(biāo)防止無人機(jī)飛很久、打很久后攻打效率變低%的情況出現(xiàn)%%計(jì)算城市間相互距離nsize(t,1);Dzeros(n,n);for i1:nfor j1:nif i~jD(i,j)sqrt(sum((t(i,:)-t(j,:)).^2));elseD(i,j)1e-2;endendend%%初始化參數(shù)m10; %螞蟻個(gè)數(shù)alpha1; %信息素重要程度因子beta1; %啟發(fā)函數(shù)重要程度因子gama2;rho0.3; %信息素?fù)]發(fā)因子Q1.0; %總量eta1./D; %啟發(fā)函數(shù)tauones(n,n)7.1192e-005;%信息素矩陣iter1; %迭代次數(shù)初始值iter_max80; %迭代次數(shù)最大值length_bestzeros(iter_max,1);%每次迭代最佳路徑長度(應(yīng)該是一次比一次小)length_avezeros(iter_max,1); %每次迭代路徑平均長度%%迭代尋找最佳路徑while iteriter_maxwhtacell(8,1);lieendzeros(8,1);for zu1:8city_index1:25; %城市來標(biāo)號(hào)table[];startzeros(4,1);temprandperm(24);for i1:4start(i)temp(i);endtable(:,1)start;j2;while (j30)for i1:4if i1 %UAV1只負(fù)責(zé)“偵察”任務(wù)if table(1,(j-1))~25table1table(1,:);table1[table1;table(3:4,:)];tabu1table1(; %UAV1的禁忌表出來了 %25如果也在tabu1里的話那么allow_index1~ismember(city_index,tabu1); %【走過的變成0能走的為1】【若tabu(1 4)則allow_index(0 1 1 0 1 1 1…)】【注意allow_index與city_index同維】allow1city_index(allow_index1); %把還能走的序號(hào)摘出來了待訪問的城市集合P1allow1;%計(jì)算城市的轉(zhuǎn)移概率if numel(allow1)~0for k1:max(size(allow1))-1P1(k)(tau(table(1,(j-1)),allow1(k))alpha)*(eta(table(1,(j-1)),allow1(k))beta)100007.1192e-004;endP1(max(size(allow1)))7.1192e-005;P1P1/sum(P1);[d1,ind1]sort(P1,2,‘descend’);%從大到小排序是d1,對(duì)應(yīng)的原序號(hào)是ind1target1allow1(ind1(1));%輪盤賭法選擇下一個(gè)城市%pc1cumsum(P1); % p1 p1p2 p1p2p3 p1p2p3p4 …【p1-allow(1) p2-allow(2) …】%target_index1find(pc1rand);%target1allow1(target_index1(1)); %這次返回的是allow數(shù)組中城市的真正序號(hào)table(1,j)target1; %把選好這個(gè)點(diǎn)放到路徑表里面rrD(25,table(1,1));time(table(1,1))rr;if j2for c2:(j-1)rrrrD(table(1,c-1),table(1,c));endendrrrrrD(table(1,j-1),target1);%rrr就是UAV1到該點(diǎn)時(shí)走過的航程time(target1)rrr;elsetable(1,j)25;endendif table(1,(j-1))25table(1,j)25;endendif i2 %UAV2只負(fù)責(zé)“打擊”任務(wù)if (table(2,(j-1))~25)table(2,1)table(1,1); %設(shè)定它第一次打擊的是UAV1偵察過的目標(biāo)ta2table(1:(4(j-1)1)); %當(dāng)前元素之前所有的元素tabu21[];tabu22[];tabu2[];for y1:24if sum(ta2y)2tabu21[tabu21;y];endend %出現(xiàn)過兩次的放在tabu21里tabu22setdiff(1:24,ta2); %一次都沒出現(xiàn)的放在tabu22里tabu2[tabu21’,tabu22]; %tabu2出來了allow_index2~ismember(city_index,tabu2); %【走過的變成0能走的為1】【若tabu(1 4)則allow_index(0 1 1 0 1 1 1…)】【注意allow_index與city_index同維】allow2city_index(allow_index2); %把還能走的序號(hào)摘出來了待訪問的城市集合P2allow2;%計(jì)算城市的轉(zhuǎn)移概率for k1:(length(allow2)-1)P2(k)tau(table(2,(j-1)),allow2(k))*eta(table(2,(j-1)),allow2(k))*value(allow2(k))10000;endP2(max(size(allow2)))7.1192e-005;P2P2/sum(P2);[d2,ind2]sort(P2,2,‘descend’);%從大到小排序是d1,對(duì)應(yīng)的原序號(hào)是ind1target2allow2(ind2(1)); %target2d1(1);%輪盤賭法選擇下一個(gè)城市%pc2cumsum(P2); % p1 p1p2 p1p2p3 p1p2p3p4 …【p1-allow(1) p2-allow(2) …】%target_index2find(pc2rand); %選中那個(gè)概率較大的選中的點(diǎn)返回的是allow數(shù)組中的序號(hào)%target2allow2(target_index2(1)); %這次返回的是allow數(shù)組中城市的真正序號(hào)%table(2,j)target2; %把選好這個(gè)點(diǎn)放到路徑表里面ooD(25,table(2,1));attacktime(table(2,1))oo;if j2for c2:(j-1)ooooD(table(2,c-1),table(2,c));endendoooooD(table(2,j-1),target2);%ooo就是UAV2到該點(diǎn)時(shí)走過的航程if numel(d2)5u2;while (oootime(target2)20 u6)target2allow2(ind2(u));oooooD(table(2,(j-1)),target2);uu1;endendtable(2,j)target2;attacktime(target2)ooo;endif table(2,(j-1))25table(2,j)25;endendif i3 %UAV3是“察打”任務(wù)if table(3,(j-1))~25ta3table(1:(4(j-1)2));tabu3[];tabu3c[];for y1:24if sum(ta3y)2tabu3[tabu3;y];endend %出現(xiàn)兩次的放在tabu3里for y1:24if sum(ta3y)1tabu3c[tabu3c;y];endend %tabu3c是待打的任務(wù)已偵查完的任務(wù)allow_index3~ismember(city_index,tabu3); %【走過的變成0能走的為1】【若tabu(1 4)則allow_index(0 1 1 0 1 1 1…)】【注意allow_index與city_index同維】allow3city_index(allow_index3); %把還能走的序號(hào)摘出來了待訪問的城市集合P3allow3;%計(jì)算城市的轉(zhuǎn)移概率for k1:(length(allow3)-1)%if ismember(allow3(k),tabu3c)1htable(3,(j-1))P3(k)(tau(table(3,j-1),allow3(k))alpha)*(eta(table(3,(j-1)),allow3(k))beta)*value(allow3(k))*100007.1192e-005;%這是要打的需要價(jià)值%else%P3(k)(tau(table(3,(j-1)),allow3(k))alpha)*(eta(table(3,(j-1)),allow3(k))beta)1007.1192e-005;%這些是待偵察的沒有價(jià)值%endendP3(max(size(allow3)))7.1192e-009;P3P3/sum(P3);[d3,ind3]sort(P3,2,‘descend’);%從大到小排序是d1,對(duì)應(yīng)的原序號(hào)是ind1target3allow3(ind3(1));%輪盤賭法選擇下一個(gè)城市%pc3cumsum(P3); % p1 p1p2 p1p2p3 p1p2p3p4 …【p1-allow(1) p2-allow(2) …】%target_index3find(pc3rand); %選中那個(gè)概率較大的選中的點(diǎn)返回的是allow數(shù)組中的序號(hào)%target3allow3(target_index3(1)); %這次返回的是allow數(shù)組中城市的真正序號(hào)%table(3,j)target3; %把選好這個(gè)點(diǎn)放到路徑表里面wwD(25,table(3,1));time(table(3,1))ww;if j2for c2:(j-1)wwwwD(table(3,c-1),table(3,c));endendwwwwwD(table(3,j-1),target3);%www就是UAV3到該點(diǎn)時(shí)走過的航程if ismember(target3,tabu3c)0 %偵察任務(wù)time(target3)www;table(3,j)target3;else %打擊任務(wù)attacktime(target3)www;if numel(d3)5u2;while (wwwtime(target3)20 u6)target3allow3(ind3(u));wwwwwD(table(3,(j-1)),target3);uu1;endendattacktime(target3)www;table(3,j)target3;%wwwtime(target3)10 說明此打擊任務(wù)合理endendif table(3,(j-1))25table(3,j)25;endendif i4 %UAV4是“察打”任務(wù)if table(4,(j-1))~25ta4table(1:(4(j-1)3));tabu4[];tabu4c[];for y1:24if sum(ta4y)2tabu4[tabu4;y];endend %出現(xiàn)兩次的放在tabu4里、、可以把已經(jīng)偵察過的放在tabu4c中即出現(xiàn)過一次的如果選到的是在tabu4’中的說明是要打擊的然后算一下它的航程再和偵察路徑比較for y1:24if sum(ta4y)1tabu4c[tabu4c;y];endendallow_index4~ismember(city_index,tabu4); %【走過的變成0能走的為1】【若tabu(1 4)則allow_index(0 1 1 0 1 1 1…)】【注意allow_index與city_index同維】allow4city_index(allow_index4); %把還能走的序號(hào)摘出來了待訪問的城市集合P4allow4;%計(jì)算城市的轉(zhuǎn)移概率for k1:(max(size(allow4))-1)%if ismember(allow4(k),tabu4c)1sxxtable(4,(j-1))P4(k)(tau(table(4,(j-1)),allow4(k))alpha)*(eta(table(4,(j-1)),allow4(k))beta)*value(allow4(k))*100007.1192e-005;%else%P4(k)(tau(table(4,(j-1)),allow4(k))alpha)*(eta(table(4,(j-1)),allow4(k))beta)*1007.1192e-005;%endendP4(max(size(allow4)))7.1192e-009;P4P4/sum(P4);[d4,ind4]sort(P4,2,‘descend’);%從大到小排序是d1,對(duì)應(yīng)的原序號(hào)是ind1target4allow4(ind4(1));%輪盤賭法選擇下一個(gè)城市%pc4cumsum(P4); % p1 p1p2 p1p2p3 p1p2p3p4 …【p1-allow(1) p2-allow(2) …】%target_index4find(pc4rand); %選中那個(gè)概率較大的選中的點(diǎn)返回的是allow數(shù)組中的序號(hào)%target4allow4(target_index4(1)); %這次返回的是allow數(shù)組中城市的真正序號(hào)%table(4,j)target4; %把選好這個(gè)點(diǎn)放到路徑表里面qqD(25,table(4,1));time(table(4,1))qq;if j2for c2:(j-1)qqqqD(table(4,c-1),table(4,c));endendqqqqqD(table(4,j-1),target4);%www就是UAV3到該點(diǎn)時(shí)走過的航程if ismember(target4,tabu4c)0 %偵察任務(wù)time(target4)qqq;table(4,j)target4;else %打擊任務(wù)attacktime(target4)qqq;if numel(d4)5u2;while (qqqtime(target4)20 u6)target4allow4(ind4(u));qqqqqD(table(4,j-1),target4);uu1;endendattacktime(target4)qqq;table(4,j)target4;%wwwtime(target4)10 說明此打擊任務(wù)合理endendif table(4,(j-1))25table(4,j)25;endendend %一列結(jié)束?四、運(yùn)行結(jié)果?五、matlab版本及參考文獻(xiàn)1 matlab版本2014a2 參考文獻(xiàn)[1]揭東,湯新民,陳濟(jì)達(dá),李騰.改進(jìn)蟻群算法的多無人機(jī)沖突解脫技術(shù)研究[J].武漢理工大學(xué)學(xué)報(bào)(交通科學(xué)與工程版). 2020,44(01)3 備注簡介此部分摘自互聯(lián)網(wǎng)僅供參考若侵權(quán)聯(lián)系刪除 仿真咨詢1 各類智能優(yōu)化算法改進(jìn)及應(yīng)用生產(chǎn)調(diào)度、經(jīng)濟(jì)調(diào)度、裝配線調(diào)度、充電優(yōu)化、車間調(diào)度、發(fā)車優(yōu)化、水庫調(diào)度、三維裝箱、物流選址、貨位優(yōu)化、公交排班優(yōu)化、充電樁布局優(yōu)化、車間布局優(yōu)化、集裝箱船配載優(yōu)化、水泵組合優(yōu)化、解醫(yī)療資源分配優(yōu)化、設(shè)施布局優(yōu)化、可視域基站和無人機(jī)選址優(yōu)化2 機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方面卷積神經(jīng)網(wǎng)絡(luò)CNN、LSTM、支持向量機(jī)SVM、最小二乘支持向量機(jī)LSSVM、極限學(xué)習(xí)機(jī)ELM、核極限學(xué)習(xí)機(jī)KELM、BP、RBF、寬度學(xué)習(xí)、DBN、RF、RBF、DELM、XGBOOST、TCN實(shí)現(xiàn)風(fēng)電預(yù)測、光伏預(yù)測、電池壽命預(yù)測、輻射源識(shí)別、交通流預(yù)測、負(fù)荷預(yù)測、股價(jià)預(yù)測、PM2.5濃度預(yù)測、電池健康狀態(tài)預(yù)測、水體光學(xué)參數(shù)反演、NLOS信號(hào)識(shí)別、地鐵停車精準(zhǔn)預(yù)測、變壓器故障診斷3 圖像處理方面圖像識(shí)別、圖像分割、圖像檢測、圖像隱藏、圖像配準(zhǔn)、圖像拼接、圖像融合、圖像增強(qiáng)、圖像壓縮感知4 路徑規(guī)劃方面旅行商問題TSP、車輛路徑問題VRP、MVRP、CVRP、VRPTW等、無人機(jī)三維路徑規(guī)劃、無人機(jī)協(xié)同、無人機(jī)編隊(duì)、機(jī)器人路徑規(guī)劃、柵格地圖路徑規(guī)劃、多式聯(lián)運(yùn)運(yùn)輸問題、車輛協(xié)同無人機(jī)路徑規(guī)劃、天線線性陣列分布優(yōu)化、車間布局優(yōu)化5 無人機(jī)應(yīng)用方面無人機(jī)路徑規(guī)劃、無人機(jī)控制、無人機(jī)編隊(duì)、無人機(jī)協(xié)同、無人機(jī)任務(wù)分配6 無線傳感器定位及布局方面?zhèn)鞲衅鞑渴饍?yōu)化、通信協(xié)議優(yōu)化、路由優(yōu)化、目標(biāo)定位優(yōu)化、Dv-Hop定位優(yōu)化、Leach協(xié)議優(yōu)化、WSN覆蓋優(yōu)化、組播優(yōu)化、RSSI定位優(yōu)化7 信號(hào)處理方面信號(hào)識(shí)別、信號(hào)加密、信號(hào)去噪、信號(hào)增強(qiáng)、雷達(dá)信號(hào)處理、信號(hào)水印嵌入提取、肌電信號(hào)、腦電信號(hào)、信號(hào)配時(shí)優(yōu)化8 電力系統(tǒng)方面微電網(wǎng)優(yōu)化、無功優(yōu)化、配電網(wǎng)重構(gòu)、儲(chǔ)能配置9 元胞自動(dòng)機(jī)方面交通流 人群疏散 病毒擴(kuò)散 晶體生長10 雷達(dá)方面卡爾曼濾波跟蹤、航跡關(guān)聯(lián)、航跡融合