本發(fā)明屬于多機(jī)器人
技術(shù)領(lǐng)域:
:,涉及多機(jī)器人的任務(wù)分配以及路徑規(guī)劃的方法,特別涉及一種基于改進(jìn)的免疫遺傳算法的多機(jī)器人路徑規(guī)劃方法。
背景技術(shù):
::隨著機(jī)器人技術(shù)的快速進(jìn)步,機(jī)器人已經(jīng)被廣泛的應(yīng)用在工業(yè)、軍事、服務(wù)業(yè)以及危險(xiǎn)環(huán)境探索等領(lǐng)域;伴隨著各領(lǐng)域?qū)C(jī)器人的要求不斷提高,機(jī)器人的工作任務(wù)越來(lái)越復(fù)雜化,由于單個(gè)的機(jī)器人不管是在數(shù)據(jù)的獲取還是處理數(shù)據(jù)的能力都難以滿足當(dāng)前的需求。相比較單機(jī)器人而言,多機(jī)器人具備諸多優(yōu)點(diǎn),如多機(jī)器人數(shù)據(jù)采集信息及處理結(jié)果共享,機(jī)器人合作完成復(fù)雜的工作等。但多機(jī)器人在環(huán)境探索策略的研究同時(shí)也比單機(jī)器人復(fù)雜度高,因此多機(jī)器人任務(wù)分配及環(huán)境探索成為目前移動(dòng)機(jī)器人研究的重點(diǎn)和熱門領(lǐng)域。多機(jī)器人任務(wù)分配是指將環(huán)境中的多個(gè)任務(wù)按照一定的規(guī)則分配給環(huán)境中的多個(gè)機(jī)器人,因?yàn)楫?dāng)多個(gè)機(jī)器人協(xié)同合作時(shí),可以充分發(fā)揮各機(jī)器人所長(zhǎng),更優(yōu)的完成任務(wù)。對(duì)于機(jī)器人環(huán)境探索任務(wù)中一個(gè)基礎(chǔ)的問(wèn)題是為機(jī)器人找出一條探索的最優(yōu)路徑,使得多機(jī)器人更好的完成環(huán)境探索任務(wù)。機(jī)器人路徑規(guī)劃的方法,近年來(lái)出現(xiàn)一些智能方法,如免疫遺傳算法、改進(jìn)遺傳算法以及神經(jīng)網(wǎng)絡(luò)方法等。免疫遺傳算法是一種新型的、具有免疫功能的遺傳算法,目前廣泛應(yīng)用于機(jī)器人環(huán)境探索系統(tǒng)中。目的是將一個(gè)機(jī)器人的探索環(huán)境進(jìn)行規(guī)劃,通過(guò)最后的環(huán)境探索路徑確定任務(wù)點(diǎn)的探索順序。并且在前人工作的基礎(chǔ)上也充分證明了其可行性及其具備的諸多優(yōu)點(diǎn),但其依然具有遺傳算法的局部最優(yōu)、搜索空間過(guò)大缺點(diǎn)。技術(shù)實(shí)現(xiàn)要素:發(fā)明目的:針對(duì)現(xiàn)有多機(jī)器人路徑規(guī)劃方法存在的問(wèn)題,本發(fā)明提出了一種多機(jī)器人任務(wù)分配及路徑規(guī)劃方法,其目的是解決目前所存在的問(wèn)題。技術(shù)方案:本發(fā)明所采用的技術(shù)方案如下:一種多機(jī)器人任務(wù)分配及路徑規(guī)劃方法,其特征在于所訴方法包括主要步驟如下:s1:初始化多機(jī)器人與任務(wù)的信息:設(shè)置機(jī)器人的初始化狀態(tài)參數(shù)、環(huán)境中任務(wù)的信息;獲取機(jī)器人位置、速度以及最大電量和任務(wù)的位置等數(shù)據(jù)信息;s2:多機(jī)器人任務(wù)分配:計(jì)算各機(jī)器人與任務(wù)之間的綜合代價(jià)數(shù)據(jù),綜合考慮機(jī)器人電量、工作時(shí)間以及最大任務(wù)數(shù)等因素,按綜合代價(jià)最小的準(zhǔn)則將任務(wù)進(jìn)行分配至機(jī)器人;s3:機(jī)器人路徑規(guī)劃方法:依次使用本發(fā)明的改進(jìn)免疫遺傳算法對(duì)機(jī)器人進(jìn)行路徑規(guī)劃。在上述步驟s2中,一種多機(jī)器人的任務(wù)分配方法,其分配過(guò)程充分考慮機(jī)器人位置、速度以及電量等多因素。其具體步驟如下:s21:隨機(jī)或讀取產(chǎn)生機(jī)器人及任務(wù)數(shù)據(jù),機(jī)器人數(shù)據(jù)信息包括編號(hào)rn、初始位置rp0、初始電量b0、剩余電量b1、速度v、當(dāng)前分配到任務(wù)數(shù)n等;任務(wù)數(shù)據(jù)包括:任務(wù)編號(hào)tn、位置tp、分配否標(biāo)識(shí)isa、分配至機(jī)器人編號(hào)torn等。分別構(gòu)成機(jī)器人與任務(wù)隊(duì)列;s22:計(jì)算j號(hào)任務(wù)分配給i號(hào)機(jī)器人所需要的綜合代價(jià)信息,并記錄一個(gè)包含rni、tnj、nbij、ntij、cij及dij的數(shù)據(jù)表table,并按代價(jià)的升序排列;s23:從table中取代價(jià)最小的一條數(shù)據(jù)record判斷該記錄中tn對(duì)應(yīng)的任務(wù)isa是否為true。如果是則重復(fù)此步驟,否則執(zhí)行以下步驟;s24:判斷record中rni對(duì)應(yīng)bi1是否大于nbij,且ti1是否大于ntij,以及機(jī)器人已分配到任務(wù)沒(méi)有數(shù)到達(dá)上限,如果條件全部滿足則繼續(xù),否則跳轉(zhuǎn)步驟s23中取代價(jià)次小的一條數(shù)據(jù);s25:更新record中rni對(duì)應(yīng)機(jī)器人的剩余時(shí)間ti1、剩余電量bi1、分配到任務(wù)數(shù)n等數(shù)據(jù),tnj對(duì)應(yīng)任務(wù)的torn、isa等數(shù)據(jù)。跳轉(zhuǎn)步驟s23繼續(xù)取下一條數(shù)據(jù)。多機(jī)器人任務(wù)分配:計(jì)算各機(jī)器人與任務(wù)之間的綜合代價(jià)數(shù)據(jù),綜合考慮機(jī)器人電量、工作時(shí)間以及最大任務(wù)數(shù)因素,按綜合代價(jià)最小的準(zhǔn)則將任務(wù)進(jìn)行分配至機(jī)器人,其過(guò)程具體包括:(1)任務(wù)分配的數(shù)學(xué)模型制定,具體如下:t表示任務(wù),r表示機(jī)器人;ri來(lái)表示多機(jī)器人系統(tǒng)中的第i個(gè)機(jī)器人,其中i∈[1,n],n為機(jī)器人系統(tǒng)中的機(jī)器人數(shù)量;ti來(lái)表示多機(jī)器人系統(tǒng)中的第i個(gè)任務(wù),其中i∈[1,m],m為機(jī)器人系統(tǒng)中的任務(wù)數(shù)量;i號(hào)機(jī)器人最大工作時(shí)間ti0,i號(hào)機(jī)器人剩余工作時(shí)間ti1,i號(hào)機(jī)器人完成j號(hào)任務(wù)所需消耗時(shí)間記為ntij;dist(ti,rj)表示利用機(jī)器人rj來(lái)完成ti所需要行走的距離值,記為dij;bettery(ti,rj)表示利用機(jī)器人rj來(lái)完成ti任務(wù)時(shí)機(jī)器人rj所需要消耗的電量,記為nbij,由于每個(gè)機(jī)器的屬性不同,每個(gè)機(jī)器人完成同一個(gè)任務(wù)其所需要消耗的電量是不相同的,因此本文用常數(shù)λij表示第i個(gè)機(jī)器人完成第j個(gè)任務(wù)單位距離消耗的電量;(2)任務(wù)分配綜合代價(jià)值計(jì)算方法本發(fā)明設(shè)計(jì)了一個(gè)計(jì)算該綜合代價(jià)值的函數(shù),本發(fā)明的綜合代價(jià)函數(shù)定義如公式(1)所示,該公式表示機(jī)器人完成任務(wù)所需的代價(jià);cost(ti,rj)表示利用機(jī)器人rj來(lái)完成ti所需要的代價(jià)值,記為cij;公式(1)至(3)中,dist(tj,ri)代表機(jī)器人ri與任務(wù)點(diǎn)tj之間的距離,代表機(jī)器人ri的速度,bettery(tj,ri)代表機(jī)器人ri完成任務(wù)tj過(guò)程中這段距離所需要消耗的電量,由于消耗電量不僅與距離有關(guān),而且與其本身的屬性有關(guān),所以使用一個(gè)常量因子λij代表第i個(gè)機(jī)器人完成第j個(gè)任務(wù)單位距離所消耗電量。公式(1)中的代價(jià)函數(shù)含義是在機(jī)器人完成任務(wù)所需時(shí)間最短、所需電量最小的時(shí)候?qū)⑦@個(gè)任務(wù)分配給這個(gè)機(jī)器人。(3)任務(wù)分配至機(jī)器人需滿足的條件:首先設(shè)當(dāng)前機(jī)器人ri分配到的k個(gè)任務(wù)清單有(t1,t2,...,tk);因此要使得下一個(gè)任務(wù)分配至該機(jī)器人必須滿足如下條件:1)機(jī)器人ri到此任務(wù)tj之間的代價(jià)最小,數(shù)學(xué)表示如公式(4)所示:min{cost(tj,ri),i∈[1,n]}(4)2)機(jī)器人剩余電量足夠滿足當(dāng)前任務(wù)的消耗,具體表現(xiàn)為公式(5):其中b(ri)為機(jī)器人ri的初始電量,dist(tj,ri)代表機(jī)器人ri與任務(wù)點(diǎn)tj之間的距離,λij代表第i個(gè)機(jī)器人完成第j個(gè)任務(wù)單位距離所消耗電量;(4)多機(jī)器人任務(wù)分配步驟及流程,具體如下:a:隨機(jī)或讀取產(chǎn)生機(jī)器人及任務(wù)數(shù)據(jù),機(jī)器人數(shù)據(jù)信息包括編號(hào)rn、初始位置rp0、初始電量b0、剩余電量b1、速度v、當(dāng)前分配到任務(wù)數(shù)n;任務(wù)數(shù)據(jù)包括:任務(wù)編號(hào)tn、位置tp、分配否標(biāo)識(shí)isa、分配至機(jī)器人編號(hào)torn;分別構(gòu)成機(jī)器人與任務(wù)隊(duì)列;b:根據(jù)上文敘述部分的公式(1)至(3)計(jì)算j號(hào)任務(wù)分配給i號(hào)機(jī)器人所需要的代價(jià)信息,并記錄一個(gè)包含rni、tnj、nbij、ntij、cij及dij的數(shù)據(jù)表table,并按代價(jià)的升序排列;c:從table中取代價(jià)最小的一條數(shù)據(jù)record判斷該記錄中tn對(duì)應(yīng)的任務(wù)isa是否為true;如果是則重復(fù)此步驟,否則執(zhí)行以下步驟;d:判斷record中rni對(duì)應(yīng)bi1是否大于nbij,且ti1是否大于ntij,以及機(jī)器人已分配到任務(wù)沒(méi)有數(shù)到達(dá)上限,如果條件全部滿足則繼續(xù),否則跳轉(zhuǎn)步驟c中取代價(jià)次小的一條數(shù)據(jù);e:更新record中rni對(duì)應(yīng)機(jī)器人的剩余時(shí)間ti1、剩余電量bi1、分配到任務(wù)數(shù)n數(shù)據(jù),tnj對(duì)應(yīng)任務(wù)的torn、isa數(shù)據(jù);跳轉(zhuǎn)步驟c中繼續(xù)取下一條數(shù)據(jù)。在上述步驟s3中,一種改進(jìn)的免疫遺傳算法應(yīng)用于機(jī)器人的路徑規(guī)劃,其特征在于在免疫遺傳算法產(chǎn)生初始解時(shí)本發(fā)明采用最鄰近算法和隨機(jī)法相結(jié)合;在計(jì)算抗體濃度時(shí),計(jì)算相似度的過(guò)程中通過(guò)計(jì)算兩條抗體路徑邊相同數(shù)量來(lái)判斷抗體路徑的相似性,從而計(jì)算抗體的濃度。在上述步驟s3中,本發(fā)明在對(duì)免疫遺傳算法的初始抗體群部分做出改進(jìn),初始抗體群大小popsize的20%由最鄰近算法產(chǎn)生近似最優(yōu)解,為保證抗體群的多樣性,剩下80%依然由隨機(jī)法產(chǎn)生。進(jìn)一步,如果機(jī)器人分配到的任務(wù)數(shù)n小于n≤popsize*0.2,則由最鄰近算法產(chǎn)生n條路徑的初始解,否則由最鄰近算法產(chǎn)生出popsize*0.2條初始路徑解,其余部分由隨機(jī)發(fā)產(chǎn)生。步驟3中為每個(gè)機(jī)器人所分配到的任務(wù)點(diǎn)使用本發(fā)明的改進(jìn)免疫遺傳算法進(jìn)行路徑規(guī)劃,其中單個(gè)機(jī)器人的路徑規(guī)劃的過(guò)程如下:(a):算法初始化:將待求解的目標(biāo)函數(shù)和約束條件輸入,作為帶求解問(wèn)題的抗原,初始化算法中種群的大小popsize為100、選擇概率ps、最大交叉概率為0.9、最小交叉概率為0.5以及變異概率pm最大和最小分別為0.3與0.1;精英保留抗體數(shù)為5;(b):生成初始抗體群:本算法中初始抗體群的生成由兩部分組成,第一部分由最鄰近算法產(chǎn)生,第二部分由隨機(jī)方法在解空間產(chǎn)生,由最鄰近算法產(chǎn)生的初始抗體解的數(shù)量為popsize*0.2;(c):親和度及濃度計(jì)算:計(jì)算抗原與抗體之間的親和度抗體與抗體之間的濃度,對(duì)親和度大的抗體和濃度小的抗體予以保留;除去抗體群中親和度低的抗體;(d):記憶抗體群更新:將抗體群中,親和度最高的個(gè)體放入記憶抗體群中,同樣也為了保持記憶抗體群的規(guī)模不變,也要除去親和度低或者適應(yīng)度低的抗體;(e):免疫自調(diào)節(jié):根據(jù)兩個(gè)抗體的親和度計(jì)算抗體濃度,對(duì)高濃度的抗體進(jìn)行抑制,用以增加種群多樣性;(f):生成新一代抗體群:對(duì)抗體群中的抗體進(jìn)行選擇、交叉和變異操作后,與更新后的記憶抗體群組成新一代抗體群;最優(yōu)個(gè)體對(duì)應(yīng)實(shí)際問(wèn)題的新解;當(dāng)新解滿足算法停止條件時(shí),算法終止,否則轉(zhuǎn)向步驟(c)。計(jì)算抗體濃度過(guò)程中,對(duì)抗體相似度的計(jì)算方法做出改進(jìn)。設(shè)有兩條路徑p1(t11,t12,t13,···,t1n)與p2(t21,t22,t23,···,t2n),其適應(yīng)度分別為f1、f2,路徑p1中包含的邊有e1i(t1i,t1i+1),路徑p2中包含的邊有e2i(t2i,t2i+1)。(1)適應(yīng)度部分相似度定義如下:(2)路徑結(jié)構(gòu)部分相似度定義如下:公式中n為抗體路徑的長(zhǎng)度,t1i與t2i分別表示為1、2號(hào)抗體路徑中第i個(gè)的任務(wù)編號(hào)。(3)則綜合相似度定義如下:similar(p1,p2)=α*sp(p1,p2)+(1-α)*sf(p1,p2)式中α為兩部分的權(quán)重因子,當(dāng)α=0時(shí),路徑相似度只與路徑適應(yīng)度有關(guān),當(dāng)α=1時(shí),路徑相似度只與路徑結(jié)構(gòu)有關(guān),所以α是調(diào)節(jié)路徑結(jié)構(gòu)和適應(yīng)度的權(quán)重參數(shù)。進(jìn)一步,在大小為n的抗體種群中,第i條抗體的濃度公式定義如下所示:上式(12)中ε為一個(gè)較小的實(shí)數(shù),pi為第i抗體的路徑,pj為第j抗體的路徑,函數(shù)iss(pi,pj)中g(shù)(pi,pj)的值為|similar(pi,pj)-1|。在使用改進(jìn)免疫遺傳算法進(jìn)行機(jī)器人路徑規(guī)劃的過(guò)程中,在算法中選擇、交叉以及變異算子的概率計(jì)算方法如下:(1)選擇操作:在抗體群大小為n的種群中,第i個(gè)抗體的選擇概率為psi,為滿足對(duì)濃度高的抗體進(jìn)行抑制,適應(yīng)度高的抗體進(jìn)行促進(jìn),本發(fā)明選擇概率計(jì)算方式如下所示:上式中psimax是i號(hào)抗體初始最大選擇概率,psimin是i號(hào)抗體是初始最小選擇概率,fi為適應(yīng)度,ci為i號(hào)抗體的濃度,ss(i)為用于計(jì)算選擇概率的中間計(jì)算量。參數(shù)λ為濃度對(duì)選擇概率的影響決定因子,當(dāng)λ為0時(shí)其和基本遺傳算法相似。(2)交叉操作:抗體群中,為了使得免疫算法在解搜索范圍內(nèi)都具有同等的機(jī)會(huì),所以抗體之間的交叉概率應(yīng)為相同的,但是為了保證算法的穩(wěn)定性交叉概率應(yīng)該逐步減小。本文兼顧這些因素,對(duì)交叉概率的定義如下所示:pci=pcmin,pci<pcmin上式中t為最大迭代代數(shù),t為當(dāng)前代數(shù),pcmax為抗體初始最大交叉概率,pcmin為抗體初始最小交叉概率;(3)變異操作:在免疫遺傳算法中,為了保持高適應(yīng)度的抗體不被破壞,因此在抗體適應(yīng)度越大時(shí),其變異概率越?。豢贵w的濃度越大其變異概率越大。但為了最后群體的穩(wěn)定收斂,抗體變異概率應(yīng)逐漸減小。因此其變異概率如下所示:上式(18)與(19)中fi表示i號(hào)抗體的適應(yīng)度,fmax為抗體群中最大適應(yīng)度,pmmax為抗體初始最大變異概率,pmmin為抗體初始最小變異概率,t為最大迭代代數(shù),t為當(dāng)前代數(shù)。步驟3之后顯示多機(jī)器人經(jīng)過(guò)路徑規(guī)劃后的結(jié)果:對(duì)于一條抗體路徑p(t1,t2,t3,...,tn),步驟a中的目標(biāo)函數(shù)為路徑的距離最小,具體如公式(6)所示,其中d(p)為路徑p的距離,vi表示路徑中的第i個(gè)任務(wù)節(jié)點(diǎn)。對(duì)于步驟b中使用的最近阾算法產(chǎn)生初始抗體路徑,具體的設(shè)有初始子路徑son(i),初始只包含一個(gè)任務(wù)點(diǎn)i,未插入的任務(wù)點(diǎn)包含在集合w中,最鄰近算法具體步驟為:(1)從w中取出距離son中距離最小的點(diǎn)r,將r插入子路徑son中,并從w中移除任務(wù)點(diǎn)r;(2)繼續(xù)從集合w中取出一任務(wù)點(diǎn)r到最新插入子路徑son中的任務(wù)點(diǎn)距離最小的任務(wù)點(diǎn)繼續(xù)插入son中;(3)重復(fù)進(jìn)行步驟(2)操作,直到w中無(wú)任務(wù)點(diǎn);對(duì)于機(jī)器人路徑規(guī)劃步驟c中,親和度的計(jì)算公式如式(7)所示;式(7)中d(best)表示當(dāng)前抗體種群中最優(yōu)路徑的距離,其中d(p)為路徑p的距離,f(p)表示路徑p的親和度,取6次方是為了擴(kuò)大適應(yīng)度之間的間隙。優(yōu)點(diǎn)效果:該方法能將多個(gè)任務(wù)有效的分配至多個(gè)機(jī)器人,并且在機(jī)器人路徑規(guī)劃過(guò)程中,使用改進(jìn)的免疫遺傳算法能有效的減少算法的迭代次數(shù),提高免疫遺傳算法的全局最優(yōu)解的搜索效率,求解到的最優(yōu)解更短。附圖說(shuō)明圖1為本發(fā)明多機(jī)器人任務(wù)分配流程圖圖2為本發(fā)明多機(jī)器人任務(wù)分配結(jié)果圖圖3為本發(fā)明使用最鄰近算法產(chǎn)生的一條初始解圖4為本發(fā)明多機(jī)器人路徑規(guī)劃結(jié)果圖具體實(shí)施方式下文將結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。本發(fā)明是一種多機(jī)器人任務(wù)分配及路徑規(guī)劃方法,在多機(jī)器人系統(tǒng)中,先將任務(wù)按一定策略分配至每個(gè)機(jī)器人,然后每個(gè)機(jī)器人對(duì)所分得的任務(wù)進(jìn)行路徑規(guī)劃。具體包括以下步驟:步驟1:機(jī)器人數(shù)據(jù)信息的獲取,如機(jī)器人速度、電量、最大工作時(shí)間、最多可接受的任務(wù)數(shù)以及任務(wù)點(diǎn)的位置。如附圖2所示,圖中為隨機(jī)生成的六個(gè)機(jī)器人以及200個(gè)任務(wù)點(diǎn)的數(shù)據(jù)經(jīng)過(guò)任務(wù)分配后的結(jié)果圖。步驟2:多機(jī)器人任務(wù)分配:計(jì)算各機(jī)器人與任務(wù)之間的綜合代價(jià)數(shù)據(jù),綜合考慮機(jī)器人電量、工作時(shí)間以及最大任務(wù)數(shù)等因素,按綜合代價(jià)最小的準(zhǔn)則將任務(wù)進(jìn)行分配至機(jī)器人;其分配流程如附圖1所示,其過(guò)程具體包括:(1)任務(wù)分配的數(shù)學(xué)模型制定,具體如下:t表示任務(wù),r表示機(jī)器人;ri來(lái)表示多機(jī)器人系統(tǒng)中的第i個(gè)機(jī)器人,其中i∈[1,n],n為機(jī)器人系統(tǒng)中的機(jī)器人數(shù)量;ti來(lái)表示多機(jī)器人系統(tǒng)中的第i個(gè)任務(wù),其中i∈[1,m],m為機(jī)器人系統(tǒng)中的任務(wù)數(shù)量;i號(hào)機(jī)器人最大工作時(shí)間ti0,i號(hào)機(jī)器人剩余工作時(shí)間ti1,i號(hào)機(jī)器人完成j號(hào)任務(wù)所需消耗時(shí)間記為ntij;dist(ti,rj)表示利用機(jī)器人rj來(lái)完成ti所需要行走的距離值,記為dij;bettery(ti,rj)表示利用機(jī)器人rj來(lái)完成ti任務(wù)時(shí)機(jī)器人rj所需要消耗的電量,記為nbij,由于每個(gè)機(jī)器的屬性不同,每個(gè)機(jī)器人完成同一個(gè)任務(wù)其所需要消耗的電量是不相同的,因此本文用常數(shù)λij表示第i個(gè)機(jī)器人完成第j個(gè)任務(wù)單位距離消耗的電量;(2)任務(wù)分配綜合代價(jià)值計(jì)算方法本發(fā)明綜合考慮機(jī)器人本身屬性的約束條件以及任務(wù)與機(jī)器人之間的不同距離等因素,主要根據(jù)機(jī)器人電量、任務(wù)點(diǎn)與機(jī)器人距離等形成一個(gè)評(píng)價(jià)機(jī)器人對(duì)該任務(wù)的綜合代價(jià)值,綜合代價(jià)值越低說(shuō)明該機(jī)器人完成任務(wù)所需消耗的電量或者需要克服的困難越少。因此本發(fā)明設(shè)計(jì)了一個(gè)計(jì)算該綜合代價(jià)值的函數(shù),本發(fā)明的綜合代價(jià)函數(shù)定義如公式(1)所示,該公式表示機(jī)器人完成任務(wù)所需的代價(jià)。cost(ti,rj)表示利用機(jī)器人rj來(lái)完成ti所需要的代價(jià)值,記為cij。公式(1)至(3)中,dist(tj,ri)代表機(jī)器人ri與任務(wù)點(diǎn)tj之間的距離,代表機(jī)器人ri的速度,bettery(tj,ri)代表機(jī)器人ri完成任務(wù)tj過(guò)程中這段距離所需要消耗的電量,由于消耗電量不僅與距離有關(guān),而且與其本身的屬性有關(guān),所以使用一個(gè)常量因子λij代表第i個(gè)機(jī)器人完成第j個(gè)任務(wù)單位距離所消耗電量。公式(1)中的代價(jià)函數(shù)含義是在機(jī)器人完成任務(wù)所需時(shí)間最短、所需電量最小的時(shí)候?qū)⑦@個(gè)任務(wù)分配給這個(gè)機(jī)器人。(3)任務(wù)分配至機(jī)器人需滿足的條件由于每個(gè)機(jī)器人的能力不同,造成每個(gè)機(jī)器人能夠完成的任務(wù)數(shù)量也不盡相同,其他的約束條件如機(jī)器人的電量、機(jī)器人到任務(wù)之間的距離等都對(duì)機(jī)器人任務(wù)分配產(chǎn)生影響,首先設(shè)當(dāng)前機(jī)器人ri分配到的k個(gè)任務(wù)清單有(t1,t2,...,tk);因此要使得下一個(gè)任務(wù)分配至該機(jī)器人必須滿足如下條件:1)機(jī)器人ri到此任務(wù)tj之間的代價(jià)最小,數(shù)學(xué)表示如公式(4)所示:min{cost(tj,ri),i∈[1,n]}(4)2)機(jī)器人剩余電量足夠滿足當(dāng)前任務(wù)的消耗,具體表現(xiàn)為公式(5):其中b(ri)為機(jī)器人ri的初始電量,dist(tj,ri)代表機(jī)器人ri與任務(wù)點(diǎn)tj之間的距離,λij代表第i個(gè)機(jī)器人完成第j個(gè)任務(wù)單位距離所消耗電量。(4)多機(jī)器人任務(wù)分配步驟及流程,具體如下:a:隨機(jī)或讀取產(chǎn)生機(jī)器人及任務(wù)數(shù)據(jù),機(jī)器人數(shù)據(jù)信息包括編號(hào)rn、初始位置rp0、初始電量b0、剩余電量b1、速度v、當(dāng)前分配到任務(wù)數(shù)n等;任務(wù)數(shù)據(jù)包括:任務(wù)編號(hào)tn、位置tp、分配否標(biāo)識(shí)isa、分配至機(jī)器人編號(hào)torn等。分別構(gòu)成機(jī)器人與任務(wù)隊(duì)列;b:根據(jù)上文敘述部分的公式(1)至(3)計(jì)算j號(hào)任務(wù)分配給i號(hào)機(jī)器人所需要的代價(jià)信息,并記錄一個(gè)包含rni、tnj、nbij、ntij、cij及dij的數(shù)據(jù)表table,并按代價(jià)的升序排列;c:從table中取代價(jià)最小的一條數(shù)據(jù)record判斷該記錄中tn對(duì)應(yīng)的任務(wù)isa是否為true。如果是則重復(fù)此步驟,否則執(zhí)行以下步驟;d:判斷record中rni對(duì)應(yīng)bi1是否大于nbij,且ti1是否大于ntij,以及機(jī)器人已分配到任務(wù)沒(méi)有數(shù)到達(dá)上限,如果條件全部滿足則繼續(xù),否則跳轉(zhuǎn)步驟c中取代價(jià)次小的一條數(shù)據(jù);e:更新record中rni對(duì)應(yīng)機(jī)器人的剩余時(shí)間ti1、剩余電量bi1、分配到任務(wù)數(shù)n等數(shù)據(jù),tnj對(duì)應(yīng)任務(wù)的torn、isa等數(shù)據(jù)。跳轉(zhuǎn)步驟c中繼續(xù)取下一條數(shù)據(jù)。步驟3:為每個(gè)機(jī)器人所分配到的任務(wù)點(diǎn)使用本發(fā)明的改進(jìn)免疫遺傳算法進(jìn)行路徑規(guī)劃,其中單個(gè)機(jī)器人的路徑規(guī)劃的過(guò)程如下:a:算法初始化:將待求解的目標(biāo)函數(shù)和約束條件輸入,作為帶求解問(wèn)題的抗原,初始化算法中種群的大小popsize為100、選擇概率ps、最大交叉概率為0.9、最小交叉概率為0.5以及變異概率pm最大和最小分別為0.3與0.1。精英保留抗體數(shù)為5。b:生成初始抗體群:本發(fā)明的算法中初始抗體群的生成由兩部分組成,第一部分由最鄰近算法產(chǎn)生,為了保證初始解的多樣性,第二部分由隨機(jī)方法在解空間產(chǎn)生,由最鄰近算法產(chǎn)生的初始抗體解的數(shù)量為popsize*0.2。如圖3所示為初始抗體群中最優(yōu)抗體路徑結(jié)果。c:親和度及濃度計(jì)算:計(jì)算抗原與抗體之間的親和度抗體與抗體之間的濃度,對(duì)親和度大的抗體和濃度小的抗體予以保留。為保持抗體群規(guī)模不變,要除去抗體群中親和度低的抗體。d:記憶抗體群更新:將抗體群中,親和度最高的個(gè)體放入記憶抗體群中,同樣也為了保持記憶抗體群的規(guī)模不變,也要除去親和度低或者適應(yīng)度低的抗體。e:免疫自調(diào)節(jié):根據(jù)兩個(gè)抗體的親和度計(jì)算抗體濃度,對(duì)高濃度的抗體進(jìn)行抑制,用以增加種群多樣性。f:生成新一代抗體群:對(duì)抗體群中的抗體進(jìn)行選擇、交叉和變異操作后,與更新后的記憶抗體群組成新一代抗體群。最優(yōu)個(gè)體對(duì)應(yīng)實(shí)際問(wèn)題的新解。當(dāng)新解滿足算法停止條件時(shí),算法終止,否則轉(zhuǎn)向步驟c。步驟4:顯示多機(jī)器人經(jīng)過(guò)路徑規(guī)劃后的結(jié)果。如圖4所示為多機(jī)器人經(jīng)過(guò)路徑規(guī)劃后的運(yùn)行結(jié)果圖。進(jìn)一步,對(duì)于一條抗體路徑p(t1,t2,t3,...,tn),步驟a中的目標(biāo)函數(shù)為路徑的距離最小,具體如公式(6)所示,其中d(p)為路徑p的距離,vi表示路徑中的第i個(gè)任務(wù)節(jié)點(diǎn)。進(jìn)一步,對(duì)于步驟b中使用的最近阾算法產(chǎn)生初始抗體路徑,具體的設(shè)有初始子路徑son(i),初始只包含一個(gè)任務(wù)點(diǎn)i,未插入的任務(wù)點(diǎn)包含在集合w中,最鄰近算法具體步驟為:(1)從w中取出距離son中距離最小的點(diǎn)r,將r插入子路徑son中,并從w中移除任務(wù)點(diǎn)r;(2)繼續(xù)從集合w中取出一任務(wù)點(diǎn)r到最新插入子路徑son中的任務(wù)點(diǎn)距離最小的任務(wù)點(diǎn)繼續(xù)插入son中;(3)重復(fù)進(jìn)行步驟(2)操作,直到w中無(wú)任務(wù)點(diǎn)。進(jìn)一步,對(duì)于機(jī)器人路徑規(guī)劃步驟c中,親和度的計(jì)算公式如式(7)所示。式(7)中d(best)表示當(dāng)前抗體種群中最優(yōu)路徑的距離,其中d(p)為路徑p的距離,f(p)表示路徑p的親和度,取6次方是為了擴(kuò)大適應(yīng)度之間的間隙。本發(fā)明在計(jì)算抗體濃度時(shí),對(duì)抗體相似度的計(jì)算做出改變。在傳統(tǒng)的計(jì)算抗體相似度部分,多數(shù)采用的是計(jì)算路徑距離,路徑距離短的視為最優(yōu)個(gè)體。但有很多路徑距離不相近且路徑連接順序幾乎相同的個(gè)體會(huì)因?yàn)橛H和度大被保留在抗體群中,從而使計(jì)算陷入局部最優(yōu)解。本發(fā)明綜合考慮路徑結(jié)構(gòu)和適應(yīng)度兩方面,相似度計(jì)算包括路徑結(jié)構(gòu)的相似性和路徑適應(yīng)度的品質(zhì)相似性。設(shè)有兩條路徑p1(t11,t12,t13,···,t1n)與p2(t21,t22,t23,···,t2n),其適應(yīng)度分別為f1、f2。適應(yīng)度部分相似度定義的公式如(8)所示:式(8)中θ為一個(gè)較小的實(shí)數(shù),若θ取0.05時(shí)兩路徑滿足上式中關(guān)系,則說(shuō)明此兩路徑品質(zhì)上相似度為95%。路徑結(jié)構(gòu)部分相似度定義對(duì)于兩條抗體路徑p1(t11,t12,t13,···,t1n)與p2(t21,t22,t23,···,t2n),計(jì)算兩條路徑中的邊,路徑p1中包含的邊有e1i(t1i,t1i+1),路徑p2中包含的邊有e2i(t2i,t2i+1)。則p1與p2路徑結(jié)構(gòu)部分相似度定義公式如(9)至(10)所示:公式9中n為抗體路徑的長(zhǎng)度,t1i與t2i分別表示為1、2號(hào)抗體路徑中第i個(gè)的任務(wù)編號(hào)。本文綜合相似度定義公式為(11)所示:similar(p1,p2)=α*sp(p1,p2)+(1-α)*sf(p1,p2)(11)式(11)中α為兩部分的權(quán)重因子,當(dāng)α=0時(shí),路徑相似度只與路徑適應(yīng)度有關(guān),當(dāng)α=1時(shí),路徑相似度只與路徑結(jié)構(gòu)有關(guān),所以α是調(diào)節(jié)路徑結(jié)構(gòu)和適應(yīng)度的權(quán)重參數(shù)。在大小為n的抗體種群中,第i條抗體的濃度公式定義如(12)所示:上式(12)中ε為一個(gè)較小的實(shí)數(shù),pi為第i抗體的路徑,pj為第j抗體的路徑,函數(shù)iss(pi,pj)中g(shù)(pi,pj)的值為|similar(pi,pj)-1|。進(jìn)一步,對(duì)于機(jī)器人路徑規(guī)劃步驟f中,選擇操作時(shí)的概率確定方法如下:在抗體群大小為n的種群中,第i個(gè)抗體的選擇概率為psi,為滿足對(duì)濃度高的抗體進(jìn)行抑制,適應(yīng)度高的抗體進(jìn)行促進(jìn),本發(fā)明選擇概率計(jì)算方式如公式(14)所示:上式中psimax是i號(hào)抗體初始最大選擇概率,psimin是i號(hào)抗體是初始最小選擇概率,fi為適應(yīng)度,ci為i號(hào)抗體的濃度,ss(i)為用于計(jì)算選擇概率的中間計(jì)算量。參數(shù)λ為濃度對(duì)選擇概率的影響決定因子,當(dāng)λ為0時(shí)其和基本遺傳算法相似。進(jìn)一步,對(duì)于機(jī)器人路徑規(guī)劃步驟f中,交叉操作時(shí)的概率確定方法如下:抗體群中,為了使得免疫算法在解搜索范圍內(nèi)都具有同等的機(jī)會(huì),所以抗體之間的交叉概率應(yīng)為相同的,但是為了保證算法的穩(wěn)定性交叉概率應(yīng)該逐步減小。本文兼顧這些因素,對(duì)交叉概率的定義公式如(16)與(17)所示:pci=pcmin,pci<pcmin(17)上式(16)與(17)中t為最大迭代代數(shù),t為當(dāng)前代數(shù),pcmax為抗體初始最大交叉概率,pcmin為抗體初始最小交叉概率。進(jìn)一步,對(duì)于機(jī)器人路徑規(guī)劃步驟f中,變異操作時(shí)的概率確定方法如下:在免疫遺傳算法中,為了保持高適應(yīng)度的抗體不被破壞,因此在抗體適應(yīng)度越大時(shí),其變異概率越?。豢贵w的濃度越大其變異概率越大。但為了最后群體的穩(wěn)定收斂,抗體變異概率應(yīng)逐漸減小。因此其變異概率公式pmi如(18)、(19)所示:上式(18)與(19)中fi表示i號(hào)抗體的適應(yīng)度,fmax為抗體群中最大適應(yīng)度,pmmax為抗體初始最大變異概率,pmmin為抗體初始最小變異概率,t為最大迭代代數(shù),t為當(dāng)前代數(shù)。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12