本申請涉及無人機(jī),具體而言,涉及一種基于蟻群算法的無人機(jī)任務(wù)分配方法及裝置。
背景技術(shù):
1、隨著無人機(jī)任務(wù)領(lǐng)域的不斷擴(kuò)大,無人機(jī)集群協(xié)同技術(shù)成為了當(dāng)前研究重點(diǎn)。
2、多無人機(jī)任務(wù)分配的核心目標(biāo)在考慮無人機(jī)性能、外界環(huán)境等多種約束條件的前提下,合理地將任務(wù)分配給各無人機(jī),以確保任務(wù)執(zhí)行的高效性和可行性。目前無人機(jī)任務(wù)分配方法主要有集中式控制和分布式控制兩種。但由于多無人機(jī)任務(wù)分配問題約束條件的復(fù)雜性以及多目標(biāo)優(yōu)化的高需求,造成解空間指數(shù)級增長、對算法計(jì)算效率要求較高。
技術(shù)實(shí)現(xiàn)思路
1、本申請實(shí)施例的目的在于提供一種基于蟻群算法的無人機(jī)任務(wù)分配方法及裝置,用以提高多無人機(jī)任務(wù)分配問題的求解速率和分配能力。
2、第一方面,本發(fā)明提供一種基于蟻群算法的無人機(jī)任務(wù)分配方法,方法包括:確定目標(biāo)區(qū)域內(nèi)所要執(zhí)行的多個任務(wù)點(diǎn)的任務(wù)信息,每個任務(wù)信息包括任務(wù)點(diǎn)對應(yīng)的位置坐標(biāo)以及資源需求量;通過聚類算法對多個任務(wù)點(diǎn)進(jìn)行分類,將每類中的多個任務(wù)點(diǎn)作為一個無人機(jī)任務(wù)集合;針對每個無人機(jī)任務(wù)集合,基于改進(jìn)的蟻群算法,確定出該無人機(jī)任務(wù)集合中的多個任務(wù)點(diǎn)之間的路徑順序,以生成對應(yīng)的無人機(jī)任務(wù)軌跡;基于每個無人機(jī)任務(wù)軌跡,控制對應(yīng)的無人機(jī)按照該無人機(jī)任務(wù)軌跡飛行,以為該無人機(jī)任務(wù)軌跡中的每個任務(wù)點(diǎn)輸送對應(yīng)的資源。
3、在可選的實(shí)施方式中,通過聚類算法對多個任務(wù)點(diǎn)進(jìn)行分類,將每類中的多個任務(wù)點(diǎn)作為一個無人機(jī)任務(wù)集合的步驟,具體包括:基于所有任務(wù)點(diǎn)的總資源需求量和所有無人機(jī)的總載荷量,確定出聚類數(shù)量;隨機(jī)確定出聚類數(shù)量的聚類中心;針對每個任務(wù)點(diǎn),將該任務(wù)點(diǎn)分配至一對應(yīng)的聚類中心,以獲得每個聚類中心對應(yīng)的多個任務(wù)點(diǎn);針對每個聚類中心,基于該聚類中心對應(yīng)的多個任務(wù)點(diǎn)的位置坐標(biāo)與該聚類中心的位置坐標(biāo)之間的匹配度,確定是否對該聚類中心的位置坐標(biāo)進(jìn)行更新;若需要更新,則對該聚類中心的位置坐標(biāo)進(jìn)行更新,并返回執(zhí)行將該任務(wù)點(diǎn)分配至一對應(yīng)的聚類中心的步驟;若不需要更新,則輸出每個聚類中心對應(yīng)的多個任務(wù)點(diǎn),作為對應(yīng)的無人機(jī)任務(wù)集合。
4、在可選的實(shí)施方式中,針對每個任務(wù)點(diǎn),將該任務(wù)點(diǎn)分配至一對應(yīng)的聚類中心,以獲得每個聚類中心對應(yīng)的多個任務(wù)點(diǎn)的步驟,具體包括:
5、將所有任務(wù)點(diǎn)按照需求資源量從大到小的順序進(jìn)行排序;針對排序后的每個任務(wù)點(diǎn),依次通過以下方式將該任務(wù)點(diǎn)分配至一對應(yīng)的聚類中心:計(jì)算該任務(wù)點(diǎn)與每個聚類中心之間的距離值,以確定出目標(biāo)聚類中心;確定目標(biāo)聚類中心是否到達(dá)預(yù)設(shè)載重容量;若是,則基于距離值更換目標(biāo)聚類中心,并返回執(zhí)行確定目標(biāo)聚類中心是否到達(dá)預(yù)設(shè)載重容量的步驟;若否,則將該任務(wù)點(diǎn)分配至目標(biāo)聚類中心,并更新目標(biāo)聚類中心的當(dāng)前載重容量。
6、在可選的實(shí)施方式中,通過以下方式確定是否對聚類中心的位置坐標(biāo)進(jìn)行更新:基于該聚類中心當(dāng)前對應(yīng)的多個任務(wù)點(diǎn)的位置坐標(biāo),計(jì)算出該類別任務(wù)點(diǎn)的重心坐標(biāo);比較所述重心坐標(biāo)與該聚類中心當(dāng)前的位置坐標(biāo)是否一致;若一致,則聚類中心的位置坐標(biāo)不需要進(jìn)行更新;若不一致,則將聚類中心位置坐標(biāo)更新為則該類別任務(wù)點(diǎn)的重心坐標(biāo)。
7、在可選的實(shí)施方式中,針對每個無人機(jī)任務(wù)集合,通過迭代執(zhí)行以下步驟,確定出該無人機(jī)任務(wù)集合中的多個任務(wù)點(diǎn)之間的路徑順序:針對指定數(shù)量的螞蟻中的每只螞蟻,以存儲點(diǎn)為啟始任務(wù)點(diǎn),基于相鄰任務(wù)點(diǎn)之間的距離值,計(jì)算出該螞蟻在相鄰任務(wù)點(diǎn)之間移動的轉(zhuǎn)移概率值,以獲取該螞蟻的移動軌跡;基于所有螞蟻的移動軌跡所對應(yīng)的路徑總長度,確定出一目標(biāo)移動軌跡;對目標(biāo)移動軌跡的路徑總長度進(jìn)行優(yōu)化,以確定出優(yōu)化移動軌跡,優(yōu)化移動軌跡用于指示該無人機(jī)任務(wù)集合中無人機(jī)從啟始任務(wù)點(diǎn)經(jīng)過多個任務(wù)點(diǎn)最后返回的路徑順序。
8、在可選的實(shí)施方式中,通過以下方式確定出優(yōu)化移動軌跡:針對目標(biāo)移動軌跡中的多個任務(wù)點(diǎn),隨機(jī)確定出兩個任務(wù)點(diǎn)數(shù)據(jù)對,其中,每個任務(wù)點(diǎn)數(shù)據(jù)對中包括兩個相鄰的任務(wù)點(diǎn);將兩個任務(wù)點(diǎn)數(shù)據(jù)對中其中一個任務(wù)點(diǎn)進(jìn)行對換,以生成對換移動軌跡;確定對換移動軌跡的路徑總長度是否小于目標(biāo)移動軌跡;若是,則確定對換移動軌跡為優(yōu)化移動軌跡。
9、第二方面,本發(fā)明提供一種基于蟻群算法的無人機(jī)任務(wù)分配裝置,裝置包括:
10、接收模塊,用于確定目標(biāo)區(qū)域內(nèi)所要執(zhí)行的多個任務(wù)點(diǎn)的任務(wù)信息,每個任務(wù)信息包括任務(wù)點(diǎn)對應(yīng)的位置坐標(biāo)以及資源需求量;
11、分層模塊,用于通過聚類算法對多個任務(wù)點(diǎn)進(jìn)行分類,將每類中的多個任務(wù)點(diǎn)作為一個無人機(jī)任務(wù)集合;
12、分配模塊,用于針對每個無人機(jī)任務(wù)集合,基于改進(jìn)的蟻群算法,確定出該無人機(jī)任務(wù)集合中的多個任務(wù)點(diǎn)之間的路徑順序,以生成對應(yīng)的無人機(jī)任務(wù)軌跡;
13、控制模塊,用于基于每個無人機(jī)任務(wù)軌跡,控制對應(yīng)的無人機(jī)按照該無人機(jī)任務(wù)軌跡飛行,以為該無人機(jī)任務(wù)軌跡中的每個任務(wù)點(diǎn)輸送對應(yīng)的資源。
14、在可選的實(shí)施方式中,分層模塊具體用于基于所有任務(wù)點(diǎn)的總資源需求量和所有無人機(jī)的總載荷量,確定出聚類數(shù)量;隨機(jī)確定出聚類數(shù)量的聚類中心;針對每個任務(wù)點(diǎn),將該任務(wù)點(diǎn)分配至一對應(yīng)的聚類中心,以獲得每個聚類中心對應(yīng)的多個任務(wù)點(diǎn);針對每個聚類中心,基于該聚類中心當(dāng)前對應(yīng)的多個任務(wù)點(diǎn)的位置坐標(biāo),計(jì)算出該類別任務(wù)點(diǎn)的重心坐標(biāo);比較所述重心坐標(biāo)與該聚類中心當(dāng)前的位置坐標(biāo)是否一致;若一致,則聚類中心的位置坐標(biāo)不需要進(jìn)行更新;若不一致,則將聚類中心位置坐標(biāo)進(jìn)行更新,并返回執(zhí)行將該任務(wù)點(diǎn)分配至一對應(yīng)的聚類中心的步驟;若不需要更新,則輸出每個聚類中心對應(yīng)的多個任務(wù)點(diǎn),作為對應(yīng)的無人機(jī)任務(wù)集合。
15、第三方面,本發(fā)明提供一種電子設(shè)備,包括:處理器、存儲器和總線,存儲器存儲有處理器可執(zhí)行的機(jī)器可讀指令,當(dāng)電子設(shè)備運(yùn)行時(shí),處理器與存儲器之間通過總線通信,處理器執(zhí)行機(jī)器可讀指令,以執(zhí)行如前述實(shí)施方式任一基于蟻群算法的無人機(jī)任務(wù)分配方法的步驟。
16、第四方面,本發(fā)明提供一種計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)可讀存儲介質(zhì)上存儲有計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器運(yùn)行時(shí)執(zhí)行如前述實(shí)施方式任一基于蟻群算法的無人機(jī)任務(wù)分配方法的步驟。
17、本申請?zhí)峁┑囊环N基于蟻群算法的無人機(jī)任務(wù)分配方法及裝置,其中,方法包括確定目標(biāo)區(qū)域內(nèi)所要執(zhí)行的多個任務(wù)點(diǎn)的任務(wù)信息,每個任務(wù)信息包括任務(wù)點(diǎn)對應(yīng)的位置坐標(biāo)以及資源需求量;通過聚類算法對多個任務(wù)點(diǎn)進(jìn)行分類,將每類中的多個任務(wù)點(diǎn)作為一個無人機(jī)任務(wù)集合;針對每個無人機(jī)任務(wù)集合,基于改進(jìn)的蟻群算法,確定出該無人機(jī)任務(wù)集合中的多個任務(wù)點(diǎn)之間的路徑順序,以生成對應(yīng)的無人機(jī)任務(wù)軌跡;基于每個無人機(jī)任務(wù)軌跡,控制對應(yīng)的無人機(jī)按照該無人機(jī)任務(wù)軌跡飛行,以為該無人機(jī)任務(wù)軌跡中的每個任務(wù)點(diǎn)輸送對應(yīng)的資源。通過任務(wù)分層策略以及改進(jìn)的蟻群優(yōu)化算法,提高了多無人機(jī)多任務(wù)分配過程中的求解速率以及決策質(zhì)量。
1.一種基于蟻群算法的無人機(jī)任務(wù)分配方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過聚類算法對多個任務(wù)點(diǎn)進(jìn)行分類,將每類中的多個任務(wù)點(diǎn)作為一個無人機(jī)任務(wù)集合的步驟,具體包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述針對每個任務(wù)點(diǎn),將該任務(wù)點(diǎn)分配至一對應(yīng)的聚類中心,以獲得每個聚類中心對應(yīng)的多個任務(wù)點(diǎn)的步驟,具體包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,通過以下方式確定是否對聚類中心的位置坐標(biāo)進(jìn)行更新:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,針對每個無人機(jī)任務(wù)集合,通過迭代執(zhí)行以下步驟,確定出該無人機(jī)任務(wù)集合中的多個任務(wù)點(diǎn)之間的路徑順序:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,通過以下方式確定出優(yōu)化移動軌跡:
7.一種基于蟻群算法的無人機(jī)任務(wù)分配裝置,其特征在于,所述裝置包括:
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述分層模塊具體用于基于所有任務(wù)點(diǎn)的總資源需求量和所有無人機(jī)的總載荷量,確定出聚類數(shù)量;
9.一種電子設(shè)備,其特征在于,包括:處理器、存儲器和總線,所述存儲器存儲有所述處理器可執(zhí)行的機(jī)器可讀指令,當(dāng)電子設(shè)備運(yùn)行時(shí),所述處理器與所述存儲器之間通過總線通信,所述處理器執(zhí)行所述機(jī)器可讀指令,以執(zhí)行如權(quán)利要求1至6任一所述基于蟻群算法的無人機(jī)任務(wù)分配方法的步驟。
10.一種計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲介質(zhì)上存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器運(yùn)行時(shí)執(zhí)行如權(quán)利要求1至6任一所述基于蟻群算法的無人機(jī)任務(wù)分配方法的步驟。