成人打一炮免费视频,亚洲天堂视频在线观看,97视频久久久,日本japanese护士色高清,五月婷婷丁香,日韩精品一级无码毛片免费,国产欧美日韩精品网红剧情演绎

一種改進(jìn)螢火蟲算法的多無人機(jī)協(xié)同耦合任務(wù)分配方法與流程

文檔序號(hào):11198608閱讀:596來源:國知局
一種改進(jìn)螢火蟲算法的多無人機(jī)協(xié)同耦合任務(wù)分配方法與流程

本發(fā)明涉及任務(wù)規(guī)劃設(shè)計(jì)領(lǐng)域,尤其是一種無人機(jī)協(xié)同作戰(zhàn)的規(guī)劃方法。



背景技術(shù):

任務(wù)規(guī)劃系統(tǒng)設(shè)計(jì)在很多領(lǐng)域的成功應(yīng)用,為國防事業(yè)以及工業(yè)生產(chǎn)帶來了很大提升,多無人機(jī)協(xié)同任務(wù)規(guī)劃問題是一類具有多種約束的組合優(yōu)化問題,也是一類典型的np-hard問題,具有高度復(fù)雜性。本發(fā)明以多無人機(jī)協(xié)同執(zhí)行具有復(fù)雜耦合約束關(guān)系的sead任務(wù)為研究背景,充分考慮無人機(jī)的異構(gòu)性、資源有限性以及任務(wù)間的耦合約束,包括確認(rèn)、打擊和毀傷評(píng)估三種子任務(wù)的時(shí)間耦合約束以及目標(biāo)間的特殊耦合約束,以組合優(yōu)化理論和新興的優(yōu)化算法為數(shù)學(xué)工具,對(duì)耦合任務(wù)環(huán)境下的多無人機(jī)協(xié)同任務(wù)規(guī)劃問題進(jìn)行深入研究。

螢火蟲算法(fireflyalgorithm,fa)是由xin-sheyang于2008年提出的,它源自對(duì)自然界中螢火蟲群體行為的模擬,是一種新興的高級(jí)元啟發(fā)式優(yōu)化算法。該算法的優(yōu)化機(jī)制是通過不同螢火蟲個(gè)體之間的互相吸引達(dá)到尋找最優(yōu)解的目的,因而是一種群智能(swarmintelligence)隨機(jī)優(yōu)化算法,其概念簡單,流程清晰,需要調(diào)整的參數(shù)少,容易實(shí)現(xiàn),因而受到眾多國內(nèi)外學(xué)者的關(guān)注。

螢火蟲算法作為一種新興的優(yōu)化算法已在諸多領(lǐng)域展現(xiàn)了良好的應(yīng)用前景,在任務(wù)規(guī)劃系統(tǒng)設(shè)計(jì)領(lǐng)域的應(yīng)用中,多數(shù)研究在建模時(shí)進(jìn)行了一定程度的簡化處理,并且沒有考慮任務(wù)中存在的耦合約束關(guān)系,目前還沒有文獻(xiàn)將螢火蟲算法及相關(guān)改進(jìn)算法應(yīng)用于同時(shí)具有時(shí)間耦合約束和特殊耦合約束的多無人機(jī)協(xié)同任務(wù)分配問題。



技術(shù)實(shí)現(xiàn)要素:

為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種具有特殊編解碼結(jié)構(gòu)的混合離散螢火蟲算法,即de-dfa算法,根據(jù)對(duì)同時(shí)具有時(shí)間耦合約束和特殊耦合約束的多無人機(jī)協(xié)同任務(wù)分配問題進(jìn)行研究,提出數(shù)學(xué)模型并進(jìn)行任務(wù)解算。

本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案的詳細(xì)步驟如下:

步驟1:構(gòu)建特殊耦合下的任務(wù)分配模型

在該步驟中,存在如下定義:

定義1:u={u1,u2,…,ui,…,um}為無人機(jī)集合,其中ui表示第i架無人機(jī),m表示無人機(jī)總數(shù);

定義2:t={t1,t2,…,tj,…,tn}為目標(biāo)集合,其中tj表示第j個(gè)目標(biāo),n為目標(biāo)總數(shù);

定義3:taskjh為目標(biāo)tj的第h種任務(wù),h=1,2,3,當(dāng)h=1為確認(rèn),h=2為打擊,h=3為毀傷評(píng)估;

定義4:ujh為能夠執(zhí)行任務(wù)taskjh的無人機(jī)集合;

定義5:tasksequencei={task1>task2>task3>…>taskni}為無人機(jī)ui的任務(wù)序列;其中ni表示分配給無人機(jī)ui的任務(wù)數(shù)量,taskni表示無人機(jī)ui需要執(zhí)行的任務(wù);

定義6:routei={upi,taskp1,taskp2,…,taskpni,b}為無人機(jī)ui的路徑序列,taskpni表示無人機(jī)ui執(zhí)行任務(wù)n時(shí)所在的位置,upi表示無人機(jī)i的初始位置,b表示無人機(jī)返回基地的位置;

定義7:voyi為無人機(jī)ui的航程,其中i=1,2,…,m;

定義8:voymaxi為無人機(jī)ui的最大航程;

定義9:ri為無人機(jī)ui的武器載荷數(shù)量;

定義10:tijh為無人機(jī)ui執(zhí)行任務(wù)taskjh消耗的執(zhí)行時(shí)間;

定義11:stk為任務(wù)k的開始被執(zhí)行時(shí)刻;

定義12:etk為任務(wù)k的完成時(shí)刻;

定義13:inter_min為打擊任務(wù)和毀傷評(píng)估任務(wù)間的最小時(shí)間間隔;

定義14:inter_max為打擊任務(wù)和毀傷評(píng)估任務(wù)間的最大時(shí)間間隔;

定義15:決策變量:

確認(rèn)目標(biāo)函數(shù):選擇無人機(jī)最大航程最短作為任務(wù)規(guī)劃指標(biāo),該任務(wù)規(guī)劃指標(biāo)是將各無人機(jī)中的最大航程最小化,即目標(biāo)函數(shù)為:

確認(rèn)特殊耦合約束:特殊耦合約束指在在某一時(shí)刻,兩個(gè)不同位置的目標(biāo)同時(shí)被打擊時(shí),該約束針對(duì)同時(shí)執(zhí)行且優(yōu)先級(jí)如下面所述的兩種目標(biāo),存在如下兩種特殊耦合約束:

(1)任務(wù)同時(shí)執(zhí)行約束:目標(biāo)ti和目標(biāo)tj必須同時(shí)打擊,則有約束:

式(2)中,和inter分別表示目標(biāo)ti的開始打擊時(shí)刻、目標(biāo)tj的開始打擊時(shí)刻和打擊目標(biāo)ti和tj的時(shí)間間隔;

(2)任務(wù)優(yōu)先級(jí)約束:目標(biāo)tk必須在tl被確認(rèn)之前被毀傷評(píng)估,則有約束:

式中,分別表示目標(biāo)tk的毀傷評(píng)估結(jié)束時(shí)刻和目標(biāo)tl的確認(rèn)開始時(shí)刻;

具有復(fù)雜耦合約束下的多無人機(jī)任務(wù)分配數(shù)學(xué)模型:

步驟2:螢火蟲編碼

將螢火蟲表示為1×2nt維數(shù)組,nt為所有任務(wù)數(shù)量,nt=3×n,采用整數(shù)編碼的形式,每個(gè)螢火蟲分為兩部分,前nt維表示任務(wù)分配部分,從左至右分別表示第i個(gè)目標(biāo)的確認(rèn)、打擊和毀傷評(píng)估任務(wù),即第1、2、3維代表第1個(gè)目標(biāo)的確認(rèn)、打擊和毀傷評(píng)估任務(wù),第4、5、6維代表第2個(gè)目標(biāo)的確認(rèn)、打擊和毀傷任務(wù),并以此類推,i=1,2,…,n,每一維的取值由數(shù)組中每一維所對(duì)應(yīng)任務(wù)的可執(zhí)行無人機(jī)集合中的元素?cái)?shù)量決定決定;后nt維表示任務(wù)排序部分,由3組所有目標(biāo)的編號(hào)組成,從左至右,目標(biāo)tj第h次出現(xiàn)分別對(duì)應(yīng)該目標(biāo)的確認(rèn)、打擊和毀壞評(píng)估任務(wù),即目標(biāo)tj第1次出現(xiàn)表示無人機(jī)i的確認(rèn),目標(biāo)tj第2次出現(xiàn)表示無人機(jī)i的打擊,目標(biāo)tj第3次出現(xiàn)表示無人機(jī)i的毀傷評(píng)估;

步驟3:種群初始化

比較螢火蟲之間的余弦相似度,當(dāng)任意兩只螢火蟲余弦相似度超過設(shè)定的閾值ξ,則對(duì)其中一個(gè)螢火蟲重新初始化,即對(duì)該螢火蟲的數(shù)值隨機(jī)化,其中閾值ξ取值在0.6-0.7之間,余弦相似度公式為:

其中,xi和xj分別指螢火蟲i和螢火蟲j所對(duì)應(yīng)的向量;

步驟4:螢火蟲位置更新

1)螢火蟲位置進(jìn)行β更新,具體步驟如下:

setp1:計(jì)算螢火蟲xi和xj的海明距離hij,海明距離為兩個(gè)螢火蟲個(gè)體的位置向量中互相對(duì)應(yīng)的數(shù)不相等的對(duì)數(shù),并找到xi和xj中對(duì)應(yīng)相等的元素;

setp2:計(jì)算xi對(duì)xj相對(duì)吸引度βij,其中hij為螢火蟲i與螢火蟲j的海明距離,γ是移動(dòng)步長,β0表示在γ=0處螢火蟲的初始吸引力;

setp3:對(duì)于xi和xj中每一個(gè)不對(duì)應(yīng)相等的元素ta,取隨機(jī)數(shù)r,若r<βij,則ta取xi和xj中對(duì)應(yīng)元素的值,若r≥βij,則取xi和xj中本身對(duì)應(yīng)元素的值;

2)在進(jìn)行β更新后,螢火蟲個(gè)體xj的任務(wù)排序部分tsj存在非法解,對(duì)螢火蟲個(gè)體進(jìn)行修正,具體修正步驟為:

a)令s1=tsj、s2=tsi、l=length(s1)、p=1、q=1,tsi為螢火蟲xi的任務(wù)排序部分,tsj為螢火蟲xj的任務(wù)排序部分,l取螢火蟲個(gè)體任務(wù)排序部分的長度,即任務(wù)總數(shù);

b)找出s2中第一個(gè)等于s1(p)的元素的索引值p1,令s1(p)=0,s2(p1)=0,其中s1(p)為p值對(duì)應(yīng)的s1;

c)令p=p+1,若p≤l,則返回執(zhí)行步驟b),否則執(zhí)行步驟d);

d)若s1(q)不等于0,則在s2找到第一個(gè)非零元素的位置索引值p2,令s1(q)=s2(p2),s2(p2)=0,其中s1(q)為q值對(duì)應(yīng)的s1;

e)令q=q+1,若q≤l,則執(zhí)行步驟d),否則結(jié)束;

3)進(jìn)行α更新

在螢火蟲算法中,α為步長因子,其公式為:

tai=int(tai+α(rand-1/2))(5)

式(5)中,tai表示螢火蟲任務(wù)分配部分某個(gè)元素的值,int是對(duì)參數(shù)取整操作,rand為隨機(jī)因子;

4)對(duì)α更新后的編碼進(jìn)行非法修正,非法修正即為對(duì)每一位元素進(jìn)行可行性判斷:若元素的值在元素的取值范圍內(nèi),則不用修正,若元素的值超出取值范圍,則以距離邊界值最近的點(diǎn)代替元素值;

步驟5:螢火蟲個(gè)體重構(gòu)

1)對(duì)于螢火蟲個(gè)體的ts部分,采用基于鄰域搜索的變異方法,其操作步驟如下:

step1:在個(gè)體的任務(wù)排序部分隨機(jī)選擇r個(gè)位,并生成其排序的所有鄰域;

step2:計(jì)算所有鄰域的目標(biāo)函數(shù),選出目標(biāo)函數(shù)值最高的個(gè)體作為最佳個(gè)體,并代替原來的個(gè)體;

2)交叉操作

采用隨迭代次數(shù)指數(shù)遞增的交叉概率因子:

cr=crmin+(crmax-crmin)×exp(-a×(1-t/t)b)(6)

式(6)中,cr為交叉概率因子,crmin和crmax分別為最小交叉率和最大交叉率,且crmin=0.4,crmax=0.6;a=40,b=4,t為設(shè)定的最大迭代次數(shù),t為當(dāng)前迭代次數(shù),交叉操作得到的新個(gè)體的取值為:

其中,為交叉操作得到的新個(gè)體,是需要交叉操作的個(gè)體,為不需要進(jìn)行交叉操作的個(gè)體,jrand為隨機(jī)數(shù);

3)選擇操作

在原始個(gè)體和經(jīng)交叉操作后得到的新個(gè)體之間選擇目標(biāo)函數(shù)值大的個(gè)體保留到下一代,選擇操作為:

其中,xti是第t代的第i個(gè)個(gè)體,uti是第t代經(jīng)交叉后得到的個(gè)體,fitness為目標(biāo)函數(shù);

步驟6:特殊耦合約束的處理

用矩陣ts∈r3n×3n表示目標(biāo)或任務(wù)間存在的特殊耦合約束關(guān)系,表示任務(wù)i與任務(wù)j的特殊耦合約束,其取值規(guī)則為:

步驟7:螢火蟲個(gè)體解碼與目標(biāo)函數(shù)的計(jì)算

具體的解碼步驟如下:

step1:對(duì)任務(wù)分配部分進(jìn)行解碼

(1)初始化各無人機(jī)的任務(wù)集合為空集,即

(2)從左至右依次讀取螢火蟲個(gè)體第k位上的值i,k=1,2,…,2n,通過j=fix(i/2)+1和h=mod(i/2)分別得到j(luò)和h的值,將taskjh加入到tasksequencei中;

step2:對(duì)任務(wù)排序部分進(jìn)行解碼

(1)從左至右依次讀取螢火蟲個(gè)體第k位上的值j,k=1,2,…,2n,每個(gè)j為目標(biāo)tj上的一個(gè)任務(wù),若j是第h次出現(xiàn),則表示taskjh,當(dāng)k=2n得到所有任務(wù)的排列順序tasks;

(2)將tasksequencei根據(jù)tasks重新排列任務(wù)順序,當(dāng)taskjh和taskkl均在tasksequencei中時(shí),則以從左到右的順序,若taskjh在tasks中的位置在taskkl前面,則yijhkl=1,若taskjh在tasks中的位置在taskkl后面,則yijhkl=-1;否則yijhkl=0;

至此,解碼結(jié)束,得到各無人機(jī)的任務(wù)執(zhí)行序列tasksequencei。

本發(fā)明的有益效果在于具有較好的通用性,通過多次的仿真驗(yàn)證獲得的數(shù)據(jù)分析,使得模型更加完善;迭代過程簡短,收斂速度快;以最小化無人機(jī)的最大航程為整體優(yōu)化目標(biāo),通過分段整數(shù)編碼的方式有效地表示多無人機(jī)協(xié)同任務(wù)分配方案,并通過改進(jìn)的de-dfa算法在解空間里尋找最優(yōu)解,能夠快速并有效地解決耦合任務(wù)環(huán)境下的多無人機(jī)任務(wù)分配問題,為解決耦合任務(wù)環(huán)境下的多無人機(jī)任務(wù)分配問題提供一種新的解決方案。

附圖說明

圖1為本發(fā)明的de-dfa算法流程圖。

圖2為本發(fā)明的戰(zhàn)場態(tài)勢圖。

圖3為本發(fā)明的de-dfa算法收斂曲線。

圖4為本發(fā)明的任務(wù)分配甘特圖。

圖5為本發(fā)明無人機(jī)執(zhí)行任務(wù)過程的路徑規(guī)劃圖,其中圖5(a)為無人機(jī)1和無人機(jī)5執(zhí)行任務(wù)時(shí)的路徑規(guī)劃圖,圖5(b)為無人機(jī)2和無人機(jī)4執(zhí)行任務(wù)時(shí)的路徑規(guī)劃圖,圖5(c)為無人機(jī)3和無人機(jī)7執(zhí)行任務(wù)時(shí)的路徑規(guī)劃圖,圖5(d)為無人機(jī)6執(zhí)行任務(wù)時(shí)的路徑規(guī)劃圖。

具體實(shí)施方式

下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。

圖1為本發(fā)明的de-dfa算法流程圖,本發(fā)明的詳細(xì)步驟如下:

步驟1:構(gòu)建特殊耦合下的任務(wù)分配模型

在該步驟中,存在如下定義:

定義1:u={u1,u2,…,ui,…,um}為無人機(jī)集合,其中ui表示第i架無人機(jī),m表示無人機(jī)總數(shù);

定義2:t={t1,t2,…,tj,…,tn}為目標(biāo)集合,其中tj表示第j個(gè)目標(biāo),n為目標(biāo)總數(shù);

定義3:taskjh為目標(biāo)tj的第h種任務(wù),h=1,2,3,當(dāng)h=1為確認(rèn),h=2為打擊,h=3為毀傷評(píng)估;

定義4:ujh為能夠執(zhí)行任務(wù)taskjh的無人機(jī)集合;

定義5:tasksequencei={task1>task2>task3>…>taskni}為無人機(jī)ui的任務(wù)序列;其中ni表示分配給無人機(jī)ui的任務(wù)數(shù)量,taskni表示無人機(jī)ui需要執(zhí)行的任務(wù);

定義6:routei={upi,taskp1,taskp2,…,taskpni,b}為無人機(jī)ui的路徑序列,taskpni表示無人機(jī)ui執(zhí)行任務(wù)n時(shí)所在的位置,upi表示無人機(jī)i的初始位置,b表示無人機(jī)返回基地的位置;

定義7:voyi為無人機(jī)ui的航程,其中i=1,2,…,m;

定義8:voymaxi為無人機(jī)ui的最大航程;

定義9:ri為無人機(jī)ui的武器載荷數(shù)量;

定義10:tijh為無人機(jī)ui執(zhí)行任務(wù)taskjh消耗的執(zhí)行時(shí)間;

定義11:stk為任務(wù)k的開始被執(zhí)行時(shí)刻;

定義12:etk為任務(wù)k的完成時(shí)刻;

定義13:inter_min為打擊任務(wù)和毀傷評(píng)估任務(wù)間的最小時(shí)間間隔;

定義14:inter_max為打擊任務(wù)和毀傷評(píng)估任務(wù)間的最大時(shí)間間隔;

定義15:決策變量:

確認(rèn)目標(biāo)函數(shù):選擇無人機(jī)最大航程最短作為任務(wù)規(guī)劃指標(biāo),該任務(wù)規(guī)劃指標(biāo)是將各無人機(jī)中的最大航程最小化,引導(dǎo)任務(wù)分配策略朝著最小化每架無人機(jī)航程的方向進(jìn)行,即目標(biāo)函數(shù)為:

確認(rèn)特殊耦合約束:特殊耦合約束指在在某一時(shí)刻,兩個(gè)不同位置的目標(biāo)同時(shí)被打擊時(shí),該約束針對(duì)同時(shí)執(zhí)行且優(yōu)先級(jí)如下面所述的兩種目標(biāo),存在如下兩種特殊耦合約束:

(1)任務(wù)同時(shí)執(zhí)行約束:目標(biāo)ti和目標(biāo)tj必須同時(shí)打擊,則有約束:

式(2)中,和inter分別表示目標(biāo)ti的開始打擊時(shí)刻、目標(biāo)tj的開始打擊時(shí)刻和打擊目標(biāo)ti和tj的時(shí)間間隔;

(2)任務(wù)優(yōu)先級(jí)約束:目標(biāo)tk必須在tl被確認(rèn)之前被毀傷評(píng)估,則有約束:

式(3)中,分別表示目標(biāo)tk的毀傷評(píng)估結(jié)束時(shí)刻和目標(biāo)tl的確認(rèn)開始時(shí)刻;

具有復(fù)雜耦合約束下的多無人機(jī)任務(wù)分配數(shù)學(xué)模型:

步驟2:螢火蟲編碼

將螢火蟲表示為1×2nt維數(shù)組,nt為所有任務(wù)數(shù)量,nt=3×n,采用整數(shù)編碼的形式,每個(gè)螢火蟲分為兩部分,前nt維表示任務(wù)分配部分,從左至右分別表示第i個(gè)目標(biāo)的確認(rèn)、打擊和毀傷評(píng)估任務(wù),即第1、2、3維代表第1個(gè)目標(biāo)的確認(rèn)、打擊和毀傷評(píng)估任務(wù),第4、5、6維代表第2個(gè)目標(biāo)的確認(rèn)、打擊和毀傷任務(wù),并以此類推,i=1,2,…,n,每一維的取值由數(shù)組中每一維所對(duì)應(yīng)任務(wù)的可執(zhí)行無人機(jī)集合中的元素?cái)?shù)量決定決定;后nt維表示任務(wù)排序部分,由3組所有目標(biāo)的編號(hào)組成,從左至右,目標(biāo)tj第h次出現(xiàn)分別對(duì)應(yīng)該目標(biāo)的確認(rèn)、打擊和毀壞評(píng)估任務(wù),即目標(biāo)tj第1次出現(xiàn)表示無人機(jī)i的確認(rèn),目標(biāo)tj第2次出現(xiàn)表示無人機(jī)i的打擊,目標(biāo)tj第3次出現(xiàn)表示無人機(jī)i的毀傷評(píng)估;

如311232213依次表示執(zhí)行無人機(jī)3的確認(rèn),無人機(jī)1的確認(rèn)和打擊,無人機(jī)2的確認(rèn),無人機(jī)3的打擊,無人機(jī)2的打擊和毀傷評(píng)估,無人機(jī)1的毀傷評(píng)估,無人機(jī)3的毀傷評(píng)估。

步驟3:種群初始化

選擇隨機(jī)產(chǎn)生的方式對(duì)螢火蟲種群進(jìn)行初始化,為了確保初始產(chǎn)生的螢火蟲能較均勻地分布在解空間,從而防止種群過早陷入局部最優(yōu)解,在隨機(jī)初始化的過程中,比較螢火蟲之間的余弦相似度,當(dāng)任意兩只螢火蟲余弦相似度超過設(shè)定的閾值ξ,則對(duì)其中一個(gè)螢火蟲重新初始化,即對(duì)該螢火蟲的數(shù)值隨機(jī)化,其中閾值ξ取值在0.6-0.7之間,余弦相似度公式為:

其中,xi和xj分別指螢火蟲i和螢火蟲j所對(duì)應(yīng)的向量;

步驟4:螢火蟲位置更新

1)螢火蟲位置進(jìn)行β更新,具體步驟如下:

setp1:計(jì)算螢火蟲xi和xj的海明距離hij,海明距離為兩個(gè)螢火蟲個(gè)體的位置向量中互相對(duì)應(yīng)的數(shù)不相等的對(duì)數(shù),如兩個(gè)螢火蟲的位置向量分別是[2543618]、[2453816],則它們的海明距離是4,并找到xi和xj中對(duì)應(yīng)相等的元素;

setp2:計(jì)算xi對(duì)xj相對(duì)吸引度βij,其中hij為螢火蟲i與螢火蟲j的海明距離,γ是移動(dòng)步長,β0表示在γ=0處螢火蟲的初始吸引力;

setp3:對(duì)于xi和xj中每一個(gè)不對(duì)應(yīng)相等的元素ta,取隨機(jī)數(shù)r,若r<βij,則ta取xi和xj中對(duì)應(yīng)元素的值,若r≥βij,則取xi和xj中本身對(duì)應(yīng)元素的值;

2)在進(jìn)行β更新后,螢火蟲個(gè)體xj的任務(wù)排序部分tsj存在非法解,因?yàn)閠sj部分是重復(fù)三次對(duì)目標(biāo)進(jìn)行排序,并以編號(hào)代替,所以每個(gè)目標(biāo)均會(huì)且僅會(huì)出現(xiàn)三次,在β更新后,某些目標(biāo)出現(xiàn)次數(shù)可能會(huì)少于3次,也有可能多于三次,這樣的編碼是不合理的,因而需要對(duì)螢火蟲個(gè)體進(jìn)行修正,具體修正步驟為:

a)令s1=tsj、s2=tsi、l=length(s1)、p=1、q=1,tsi為螢火蟲xi的任務(wù)排序部分,tsj為螢火蟲xj的任務(wù)排序部分,l取螢火蟲個(gè)體任務(wù)排序部分的長度,即任務(wù)總數(shù);

b)找出s2中第一個(gè)等于s1(p)的元素的索引值p1,令s1(p)=0,s2(p1)=0,其中s1(p)為p值對(duì)應(yīng)的s1;

c)令p=p+1,若p≤l,則返回執(zhí)行步驟b),否則執(zhí)行步驟d);

d)若s1(q)不等于0,則在s2找到第一個(gè)非零元素的位置索引值p2,令s1(q)=s2(p2),s2(p2)=0,其中s1(q)為q值對(duì)應(yīng)的s1;

e)令q=q+1,若q≤l,則執(zhí)行步驟d),否則結(jié)束;

3)進(jìn)行α更新

在螢火蟲算法中,α為步長因子,其作用是幫助螢火蟲個(gè)體在其周圍進(jìn)行小范圍的隨機(jī)擾動(dòng),在對(duì)螢火蟲個(gè)體進(jìn)行β更新后,對(duì)更新后的個(gè)體的任務(wù)分配部分采用隨機(jī)擾動(dòng)的α更新,其目的是使得算法具有一定的局部隨機(jī)搜索能力,α為步長因子,其公式為:

tai=int(tai+α(rand-1/2))(5)

式(5)中,tai表示螢火蟲任務(wù)分配部分某個(gè)元素的值,int是對(duì)參數(shù)取整操作,rand為隨機(jī)因子;

4)在α更新后,螢火蟲個(gè)體的任務(wù)分配部分出現(xiàn)非法解,因?yàn)槿蝿?wù)分配部分的每個(gè)位都代表一個(gè)固定的任務(wù),而每個(gè)任務(wù)都關(guān)聯(lián)著可選無人機(jī)集合ujh(以編號(hào)表示),α更新可能會(huì)使得某些元素的取值超出該集合,所以有必要對(duì)更新后的編碼進(jìn)行非法修正,為避免使得算法過于復(fù)雜,盡量簡化修正操作。

對(duì)α更新后的編碼進(jìn)行非法修正,非法修正即為對(duì)每一位元素進(jìn)行可行性判斷:若元素的值在元素的取值范圍內(nèi),則不用修正,若元素的值超出取值范圍,則以距離邊界值最近的點(diǎn)代替元素值;

步驟5:螢火蟲個(gè)體重構(gòu)

1)對(duì)于螢火蟲個(gè)體的ts部分,采用基于鄰域搜索的變異方法,其操作步驟如下:

step1:在個(gè)體的任務(wù)排序部分隨機(jī)選擇r個(gè)位,并生成其排序的所有鄰域;

step2:計(jì)算所有鄰域的目標(biāo)函數(shù),選出目標(biāo)函數(shù)值最高的個(gè)體作為最佳個(gè)體,并代替原來的個(gè)體;

2)交叉操作

為了提高種群的多樣性,通過變異操作產(chǎn)生變異個(gè)體后需要進(jìn)行交叉操作,而為了能夠更好地平衡差分算子的全局搜索能力與局部搜索能力,采用隨迭代次數(shù)指數(shù)遞增的交叉概率因子:

采用隨迭代次數(shù)指數(shù)遞增的交叉概率因子:

cr=crmin+(crmax-crmin)×exp(-a×(1-t/t)b)(6)

式(6)中,cr為交叉概率因子,crmin和crmax分別為最小交叉率和最大交叉率,且crmin=0.4,crmax=0.6;a=40,b=4,t為設(shè)定的最大迭代次數(shù),t為當(dāng)前迭代次數(shù),交叉操作得到的新個(gè)體的取值為:

其中,為交叉操作得到的新個(gè)體,是需要交叉操作的個(gè)體,為不需要進(jìn)行交叉操作的個(gè)體,jrand為隨機(jī)數(shù);

3)選擇操作

為了保持后代種群數(shù)量的恒定,也為了進(jìn)化朝著更優(yōu)的方向進(jìn)行,算法的下一步采用貪婪策略進(jìn)行選擇,在原始個(gè)體和經(jīng)交叉操作后得到的新個(gè)體之間選擇目標(biāo)函數(shù)值大的個(gè)體保留到下一代,選擇操作為:

其中,xti是第t代的第i個(gè)個(gè)體,uti是第t代經(jīng)交叉后得到的個(gè)體,fitness為目標(biāo)函數(shù);

步驟6:特殊耦合約束的處理

特殊耦合約束分為任務(wù)同時(shí)執(zhí)行約束和任務(wù)優(yōu)先級(jí)約束兩種,雖然對(duì)于特殊耦合約束是針對(duì)目標(biāo)而言,但是將其細(xì)化到每個(gè)子任務(wù)之間,用矩陣ts∈r3n×3n表示目標(biāo)或任務(wù)間存在的特殊耦合約束關(guān)系,表示任務(wù)i與任務(wù)j的特殊耦合約束,其取值規(guī)則為:

步驟7:螢火蟲個(gè)體解碼與目標(biāo)函數(shù)的計(jì)算

具體的解碼步驟如下:

step1:對(duì)任務(wù)分配部分進(jìn)行解碼

(1)初始化各無人機(jī)的任務(wù)集合為空集,即

(2)從左至右依次讀取螢火蟲個(gè)體第k位上的值i,k=1,2,…,2n,通過j=fix(i/2)+1和h=mod(i/2)分別得到j(luò)和h的值,將taskjh加入到tasksequencei中;

step2:對(duì)任務(wù)排序部分進(jìn)行解碼

(1)從左至右依次讀取螢火蟲個(gè)體第k位上的值j,k=1,2,…,2n,每個(gè)j為目標(biāo)tj上的一個(gè)任務(wù),若j是第h次出現(xiàn),則表示taskjh,當(dāng)k=2n得到所有任務(wù)的排列順序tasks;

(2)將tasksequencei根據(jù)tasks重新排列任務(wù)順序,當(dāng)taskjh和taskkl均在tasksequencei中時(shí),則以從左到右的順序,若taskjh在tasks中的位置在taskkl前面,則yijhkl=1,若taskjh在tasks中的位置在taskkl后面,則yijhkl=-1;否則yijhkl=0;

至此,解碼結(jié)束,得到各無人機(jī)的任務(wù)執(zhí)行序列tasksequencei。

在對(duì)個(gè)體解碼后,可以得到每架無人機(jī)的任務(wù)執(zhí)行序列tasksequencei,由于采用的目標(biāo)函數(shù)為對(duì)最大航程的最小化,為了滿足時(shí)間耦合約束,無人機(jī)有可能會(huì)因等待時(shí)機(jī)而在目標(biāo)上空處于盤旋狀態(tài),盤旋過程中,無人機(jī)雖然不執(zhí)行任何任務(wù)卻仍要消耗燃油,因而在計(jì)算航程時(shí)僅僅計(jì)算目標(biāo)與無人機(jī)之間的距離是不夠的。無人機(jī)在執(zhí)行任務(wù)過程中的速度vi保持固定,因此,以“航程=飛行速度*飛行時(shí)間”計(jì)算無人機(jī)的航程,飛行時(shí)間為無人機(jī)開始執(zhí)行任務(wù)到完成最后一個(gè)任務(wù)的時(shí)間段,考慮到無人機(jī)最終需要返回預(yù)先設(shè)置的基地,在航程后加上無人機(jī)最后一個(gè)任務(wù)到基地的距離作為最終的無人機(jī)航程。

為了滿足特殊耦合約束,對(duì)螢火蟲個(gè)體進(jìn)行解碼后計(jì)算目標(biāo)函數(shù)時(shí),對(duì)每架無人機(jī)的任務(wù)序列中的任務(wù)按照公式(9)判斷與其存在特殊耦合約束的任務(wù)的分配情況;

由于無人機(jī)在同一時(shí)刻只能執(zhí)行一個(gè)任務(wù),即不能將具有任務(wù)同時(shí)執(zhí)行約束的多個(gè)任務(wù)添加到同一架無人機(jī)的任務(wù)序列中,而對(duì)于設(shè)計(jì)的螢火蟲個(gè)體來說很難完全避免,即使在初始化編碼中添加避免邏輯,還是很難保證在個(gè)體更新中完全避免,鑒于此,從目標(biāo)函數(shù)的角度出發(fā),從算法尋優(yōu)的角度去避免,當(dāng)對(duì)螢火蟲個(gè)體計(jì)算目標(biāo)函數(shù)值時(shí),若發(fā)現(xiàn)某無人機(jī)的任務(wù)序列中包含具有任務(wù)同時(shí)執(zhí)行約束的任務(wù),則令該螢火蟲個(gè)體的適應(yīng)度函數(shù)值為極差值。

本發(fā)明的實(shí)施例中,仿真環(huán)境為:intel2.53ghz主頻,2g內(nèi)存的pc機(jī),windows7操作系統(tǒng),matlab2014a平臺(tái)。

我方有7架無人機(jī),敵方有10個(gè)待摧毀目標(biāo),每個(gè)目標(biāo)需要執(zhí)行目標(biāo)確認(rèn)、打擊和效果評(píng)估三類任務(wù),三類任務(wù)間具有時(shí)間強(qiáng)耦合性,無人機(jī)配置及初始位置信息如表1所示,目標(biāo)位置及著陸基地位置信息如表2所示,任務(wù)初始時(shí)刻t=0。

表1

表2

整個(gè)戰(zhàn)場的態(tài)勢如圖2所示,為方便表示,將所有任務(wù)進(jìn)行編號(hào),對(duì)于目標(biāo)taskjh的編號(hào)no表示為:

no=(j-1)*3+h

表3為無人機(jī)與任務(wù)的執(zhí)行時(shí)間表,表中inf表示無窮大,即該無人機(jī)不能執(zhí)行該任務(wù)。

表3

表3(續(xù))

表3(續(xù))

在戰(zhàn)術(shù)考慮下,具有以下的特殊耦合約束:

(1)目標(biāo)1和目標(biāo)8需要同時(shí)被確認(rèn);

(2)目標(biāo)4和目標(biāo)10需要同時(shí)被打擊;

(3)目標(biāo)6需要在目標(biāo)5被確認(rèn)之前進(jìn)行毀傷評(píng)估。

鑒于對(duì)任務(wù)同時(shí)執(zhí)行約束的定義,令inter=0.5h,即當(dāng)兩個(gè)任務(wù)被執(zhí)行的時(shí)間間隔不超過0.5h,則滿足任務(wù)同時(shí)執(zhí)行約束,以上特殊耦合約束表示為:

式中,分別表示目標(biāo)1、目標(biāo)8、目標(biāo)4、目標(biāo)10和目標(biāo)5的確認(rèn)開始時(shí)刻,表示目標(biāo)6的毀傷評(píng)估結(jié)束時(shí)刻;

仿真結(jié)果與分析:

采用提出的de-dfa算法進(jìn)行求解,具體的參數(shù)配置為:種群規(guī)模n=50,最大迭代次數(shù)為100次,β0=1,α=0.5,ωg=0.4,其中β0是初始吸引力,α是隨機(jī)參數(shù),ωg為變異概率,個(gè)體變異時(shí)的鄰域范圍為5,求得的最優(yōu)分配方案以及各無人機(jī)的任務(wù)序列如表4所示,目標(biāo)的被執(zhí)行時(shí)刻如表5所示,本發(fā)明的迭代收斂過程如圖3所示。

表4

表5

由表5可以看出,目標(biāo)1和目標(biāo)8分別在t=6.25h和t=6.7315h時(shí)被無人機(jī)2和無人機(jī)3確認(rèn),滿足目標(biāo)1和目標(biāo)8同時(shí)被確認(rèn)的特殊耦合約束,目標(biāo)4和目標(biāo)10分別在t=25.3784h和t=25.2045時(shí)被無人機(jī)6和無人機(jī)5打擊,滿足二者被同時(shí)打擊的特殊耦合約束;目標(biāo)6在t=21.9453h時(shí)被無人機(jī)4執(zhí)行毀傷評(píng)估任務(wù),目標(biāo)5在t=24.1786h時(shí)被無人機(jī)4確認(rèn),滿足目標(biāo)6在目標(biāo)5被確認(rèn)之前被毀傷評(píng)估的任務(wù)優(yōu)先級(jí)約束。此外,根據(jù)表4和表5的結(jié)果可以看出,任務(wù)分配結(jié)果同樣滿足時(shí)間耦合約束及其他約束,結(jié)果表明,本發(fā)明提出的de-dfa算法能夠有效地解決同時(shí)存在特殊耦合約束和時(shí)間耦合約束的多無人機(jī)協(xié)同任務(wù)分配問題。

圖4為本發(fā)明的任務(wù)分配甘特圖,圖5為本發(fā)明無人機(jī)執(zhí)行任務(wù)過程的路徑規(guī)劃圖,其中圖5(a)為無人機(jī)1和無人機(jī)5執(zhí)行任務(wù)時(shí)的路徑規(guī)劃圖,圖5(b)為無人機(jī)2和無人機(jī)4執(zhí)行任務(wù)時(shí)的路徑規(guī)劃圖,圖5(c)為無人機(jī)3和無人機(jī)7執(zhí)行任務(wù)時(shí)的路徑規(guī)劃圖,圖5(d)為無人機(jī)6執(zhí)行任務(wù)時(shí)的路徑規(guī)劃圖。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1