本發(fā)明涉及自動(dòng)搬運(yùn)小車(chē)控制方法技術(shù)領(lǐng)域,尤其涉及一種基于遺傳算法的自動(dòng)搬運(yùn)小車(chē)調(diào)度控制方法。
背景技術(shù):
自動(dòng)化立體倉(cāng)庫(kù)的輸送系統(tǒng)一般分為三種:(1)直行軌道式:在一條直線軌道上有一個(gè)或者多個(gè)自動(dòng)搬運(yùn)小車(chē)(AGV)進(jìn)行往復(fù)運(yùn)動(dòng);(2)分段式:有若干條軌道,每個(gè)AGV在固定的軌道上運(yùn)行;(3)環(huán)形軌道式:有多個(gè)AGV在一條環(huán)形軌道上運(yùn)行。前兩種輸送系統(tǒng)設(shè)計(jì)制造和AGV調(diào)度比較簡(jiǎn)單,但是在大物流量下效率比較低,不能滿(mǎn)足現(xiàn)實(shí)的要求。在大物流量下,即在部分時(shí)間里AGV的數(shù)量都是小于出入貨任務(wù)的數(shù)量時(shí),如何高效的調(diào)度第三種輸送系統(tǒng)中的多個(gè)AGV很難做到。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于遺傳算法的自動(dòng)搬運(yùn)小車(chē)調(diào)度控制方法,所述方法運(yùn)用基于遺傳算法的多AGV動(dòng)態(tài)調(diào)度方法,能夠使自動(dòng)化立體倉(cāng)庫(kù)有大物流量的出入貨任務(wù)時(shí),得到一個(gè)優(yōu)化的調(diào)度多個(gè)AGV運(yùn)送出入貨任務(wù)方案,減少AGV的堵塞和空跑,提高輸送系統(tǒng)的效率。
為解決上述技術(shù)問(wèn)題,本發(fā)明所采取的技術(shù)方案是:一種基于遺傳算法的自動(dòng)搬運(yùn)小車(chē)調(diào)度控制方法,其特征在于包括如下步驟:
1)建立自動(dòng)化立體倉(cāng)庫(kù)數(shù)學(xué)模型;
2)在采用分組策略運(yùn)送出入貨任務(wù)的基礎(chǔ)上,運(yùn)用基本遺傳算法對(duì)建立的模型求解;對(duì)基本遺傳算法的遺傳操作進(jìn)行改進(jìn),使自動(dòng)搬運(yùn)小車(chē)運(yùn)輸路徑長(zhǎng)度得到縮短。
進(jìn)一步的技術(shù)方案在于:所述的步驟1)中采用eM-Plant對(duì)整個(gè)自動(dòng)化立體倉(cāng)庫(kù)進(jìn)行建模。
進(jìn)一步的技術(shù)方案在于:在建立步驟1)中所述的數(shù)學(xué)模型進(jìn)行路徑規(guī)劃時(shí),采用拓?fù)浞▽?duì)AGV所處自由空間進(jìn)行描述,其在構(gòu)造規(guī)劃空間時(shí)使用下述假設(shè):
1)自動(dòng)搬運(yùn)小車(chē)AGV在二維平面環(huán)境中運(yùn)動(dòng);
2)規(guī)劃環(huán)境的邊界及障礙物可用凸多邊形;
3)基于對(duì)自動(dòng)搬運(yùn)小車(chē)AGV大小的考慮,可對(duì)規(guī)劃環(huán)境的邊界適當(dāng)縮小,對(duì)障礙物的范圍適當(dāng)擴(kuò)大,AGV用點(diǎn)來(lái)表示。
進(jìn)一步的技術(shù)方案在于:通過(guò)如下方法進(jìn)行自動(dòng)搬運(yùn)小車(chē)AGV路徑的規(guī)劃:
首先,用直線為鏈接線劃分規(guī)劃空間為凸多邊形區(qū)域;
其次,將各鏈接線的中點(diǎn)設(shè)置為可能的路徑節(jié)點(diǎn);
再次,相互連接各凸多邊形區(qū)域內(nèi)的所有可能路徑點(diǎn);
最后,將自動(dòng)搬運(yùn)小車(chē)AGV移動(dòng)時(shí)的起點(diǎn)和終點(diǎn)分別連接到所在凸多邊形區(qū)域的各個(gè)可能路徑點(diǎn)上。
進(jìn)一步的技術(shù)方案在于:應(yīng)用Matlab模擬,自動(dòng)搬運(yùn)小車(chē)AGV工作環(huán)境采用直角坐標(biāo)法表示,設(shè)置AGV起點(diǎn)坐標(biāo)為(0,0),終點(diǎn)坐為(100,100),障礙物采用頂點(diǎn)坐標(biāo)向量(X,Y)表示,坐標(biāo)排列為逆時(shí)針?lè)较颉?/p>
進(jìn)一步的技術(shù)方案在于:設(shè)置節(jié)點(diǎn)時(shí)采用兩種方法,一種方法是取各障礙物對(duì)環(huán)境邊界的垂線中點(diǎn),另一種方法是取障礙物頂點(diǎn)連線的中點(diǎn)為節(jié)點(diǎn);依據(jù)鄰接矩陣,繪制網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),當(dāng)D(i,j)=1時(shí),對(duì)應(yīng)節(jié)點(diǎn)有連線鏈接,當(dāng)D(i,j)=0時(shí),對(duì)應(yīng)節(jié)點(diǎn)沒(méi)有連線,如此,得到拓?fù)浣Y(jié)構(gòu)圖。
進(jìn)一步的技術(shù)方案在于:在求解自動(dòng)搬運(yùn)小車(chē)AGV路徑時(shí),先用Floyd算法求拓?fù)鋱D的最短路徑,得到可行路徑點(diǎn)再用遺傳算法來(lái)調(diào)整各個(gè)可行路徑點(diǎn),得到最優(yōu)的或近似最優(yōu)的行走路徑。
進(jìn)一步的技術(shù)方案在于:所述的采用Floyd算法求拓?fù)鋱D的最短路徑的方法如下:
首先,為圖中連接線設(shè)置權(quán)值,設(shè)節(jié)點(diǎn)Vi(Xi,Yi)、節(jié)點(diǎn)Vj(Xj,Yj),如果從節(jié)點(diǎn)Vi到節(jié)點(diǎn)Vj有路可達(dá),則鄰接矩陣D(i,j)的權(quán)值設(shè)置為
否則,D(i,j)=0
其次,定義一個(gè)矩G陣用來(lái)記錄節(jié)點(diǎn)的信息,G(i,j)表示從節(jié)點(diǎn)Vi到節(jié)點(diǎn)Vj需要經(jīng)過(guò)的點(diǎn),初始化G(i,j)=j(luò);
再次,把各個(gè)節(jié)點(diǎn)插入到圖中,比較插點(diǎn)后的距離與原來(lái)的距離,
D(i,j)=min(D(i,j),D(i,k)+D(k,j)) (2)
如果D(i,j)的值變小,則G(i,j)=k;
在D中包含有兩點(diǎn)之間最短道路的信息,而在G中則包含了最短通路徑的信息。
進(jìn)一步的技術(shù)方案在于:采用遺傳算法來(lái)調(diào)整各個(gè)可行路徑點(diǎn),得到最優(yōu)的或近似最優(yōu)的行走路徑的方法如下:
1)路徑編碼方法
假設(shè)通過(guò)Floyd算法已找到了圖中的最短路徑p0、p1、p2…pn,其中p0為路徑起點(diǎn),pn為路徑終點(diǎn);需要對(duì)pi(i=1,2,...n-1)的位置進(jìn)行調(diào)整,從而得到自動(dòng)搬運(yùn)小車(chē)AGV在規(guī)劃空間中的最優(yōu)或近似最優(yōu)的行走路徑;
對(duì)于pi點(diǎn),讓它在由pi1,pi2設(shè)兩點(diǎn)所組成的直線段上變動(dòng),其具體位置可由下述參數(shù)方程式中的ti來(lái)決定:
pi=pi1+ti(pi2-pi1) (3)
對(duì)每一個(gè)路徑點(diǎn)都這樣處理后,這些新的路徑點(diǎn)就組成了一條新的行走路徑;對(duì)于一條新的調(diào)整后的路徑,由n個(gè)取值在[0,1],范圍內(nèi)的ti值的排列來(lái)唯一的表示其各個(gè)路徑點(diǎn)的新位置,即確定了這條路徑;
2)目標(biāo)函數(shù)和適應(yīng)函數(shù)
適應(yīng)度函數(shù)分別由路徑長(zhǎng)度、平滑度以及間接度三個(gè)目標(biāo)函數(shù)組成;
路徑長(zhǎng)度函數(shù):對(duì)于有n個(gè)節(jié)點(diǎn)的路徑,共由n-1條路徑分段組成;計(jì)算節(jié)點(diǎn)pi與pi+1之間的長(zhǎng)度并疊加,公式表示如下:
平滑度函數(shù):平滑度指的是路徑段與路徑段之間的偏轉(zhuǎn)角度少θ的大小,即自動(dòng)搬運(yùn)小車(chē)AGV行走時(shí)的偏轉(zhuǎn)方向,計(jì)算公式表示如下:
其中,S為規(guī)劃場(chǎng)景面積,os為所有障礙物的所占面積;
間隔度:間隔度是指路徑與障礙物之間的距離,計(jì)算每個(gè)路徑段離障礙物的最短距離gi;
其中,τ為理想間距值;
以上三個(gè)式子根據(jù)各自權(quán)重求和得到可行路徑的適應(yīng)度函數(shù),表示為以下式子:
f(s)=ωd·dist(s)+ωs·smooth(s)+ωc·clear(s) (7)。
進(jìn)一步的技術(shù)方案在于:遺傳算子的計(jì)算方法如下:
選擇算子采用比例選擇算子,使個(gè)體按照與適應(yīng)度成正比的概率向下一代群體繁殖,選擇方法是轉(zhuǎn)盤(pán)輪賭選擇法;
交叉算子:首先,交叉是以一定的概率,在變長(zhǎng)的染色體中隨機(jī)選擇一個(gè)除起始點(diǎn)與目標(biāo)點(diǎn)以外的轉(zhuǎn)向點(diǎn),這個(gè)轉(zhuǎn)向點(diǎn)就作為交叉點(diǎn),把整個(gè)路徑分成了兩個(gè)路徑段。然后選擇兩個(gè)父代染色體,相互交換交叉點(diǎn)后面的路徑段,這樣就產(chǎn)生了兩個(gè)子代染色體;
變異算子:選擇之后是子代的變異保證了遺傳算法的有效性,它是一種局部隨機(jī)搜索,與選擇算子結(jié)合在一起,使遺傳算法具有局部的隨機(jī)搜索能力,并對(duì)路徑中的不理想路段進(jìn)行變異可以提高算法效率,同時(shí)使得遺傳算法保持種群的多樣性,以防止出現(xiàn)非成熟收斂可行路徑的概率很大。
采用上述技術(shù)方案所產(chǎn)生的有益效果在于:所述方法通過(guò)使用基于遺傳算法的多AGV動(dòng)態(tài)調(diào)度方法,能夠使自動(dòng)化立體倉(cāng)庫(kù)有大物流量的出入貨任務(wù)時(shí),得到一個(gè)優(yōu)化的調(diào)度多個(gè)AGV運(yùn)送出入貨任務(wù)方案,減少AGV的堵塞和空跑,提高輸送系統(tǒng)的效率。
附圖說(shuō)明
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
圖1是本發(fā)明實(shí)施例中Holland的遺傳算法的流程圖;
圖2是本發(fā)明實(shí)施例變異算子1變異前的路徑示意圖;
圖3是本發(fā)明實(shí)施例變異算子1變異后的路徑示意圖;
圖4是本發(fā)明實(shí)施例變異算子2變異前的路徑示意圖;
圖5是本發(fā)明實(shí)施例變異算子2變異后的路徑示意圖。
具體實(shí)施方式
下面結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是本發(fā)明還可以采用其他不同于在此描述的其它方式來(lái)實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類(lèi)似推廣,因此本發(fā)明不受下面公開(kāi)的具體實(shí)施例的限制。
在自動(dòng)化立體倉(cāng)庫(kù)中,輸送系統(tǒng)連接多層貨架和外部物料運(yùn)送工具,其效率對(duì)整個(gè)自動(dòng)化立體倉(cāng)庫(kù)至關(guān)重要。本發(fā)明對(duì)輸送系統(tǒng)中多個(gè)AGV的動(dòng)態(tài)調(diào)度問(wèn)題進(jìn)行研究,建立起貨物配送效率與配送資源間的數(shù)學(xué)模型與核心算法,并通過(guò)仿真與持續(xù)的算法優(yōu)化分析,構(gòu)建出自動(dòng)化立體倉(cāng)庫(kù)高效的輸送系統(tǒng),實(shí)現(xiàn)多個(gè)搬運(yùn)AGV系統(tǒng)的智能調(diào)度與協(xié)作。
本發(fā)明公開(kāi)了一種基于遺傳算法的自動(dòng)搬運(yùn)小車(chē)調(diào)度控制方法,所述方法主要采用如下步驟:
1)自動(dòng)化立體倉(cāng)庫(kù)數(shù)學(xué)建模:對(duì)多個(gè)AGV動(dòng)態(tài)調(diào)度中的關(guān)鍵問(wèn)題進(jìn)行了分析,在此基礎(chǔ)上采用eM-Plant對(duì)整個(gè)自動(dòng)化立體倉(cāng)庫(kù)進(jìn)行建模,以利用仿真技術(shù)對(duì)多個(gè)AGV動(dòng)態(tài)調(diào)度做進(jìn)一步的研究。
2)運(yùn)用基本遺傳算法進(jìn)行求解:在采用分組策略運(yùn)送出入貨任務(wù)的基礎(chǔ)上,運(yùn)用基本遺傳算法對(duì)建立的模型求解,同時(shí)提出了一種實(shí)用的二維編碼方法,得到一個(gè)優(yōu)化的調(diào)度多個(gè)AGV運(yùn)送出入貨任務(wù)方案,并把仿真結(jié)果與采用先來(lái)先服務(wù)方法求解模型得到的仿真結(jié)果進(jìn)行了對(duì)比,驗(yàn)證基本遺傳算法求解模型的有效性。
3)改進(jìn)并優(yōu)化求解:對(duì)基本遺傳算法的遺傳操作進(jìn)行了改進(jìn),通過(guò)對(duì)比運(yùn)用改進(jìn)的遺傳和運(yùn)用基本遺傳算法求解模型得到的仿真結(jié)果,驗(yàn)證了改進(jìn)的遺傳算法的有效性。
具體方法如下:
1)空間拓?fù)浣?/p>
進(jìn)行路徑規(guī)劃時(shí),首先必須對(duì)AGV所處自由空間進(jìn)行描述,即進(jìn)行規(guī)劃空間建模。拓?fù)鋱D法是自由空間建模中的一種比較好的方法,其在構(gòu)造規(guī)劃空間時(shí)使用了下述假設(shè):
(1)AGV在二維平面環(huán)境中運(yùn)動(dòng)。
(2)規(guī)劃環(huán)境的邊界及障礙物可用凸多邊形。
(3)基于對(duì)AGV大小等的考慮,可對(duì)規(guī)劃環(huán)境的邊界適當(dāng)縮小,對(duì)障礙物的范圍適當(dāng)擴(kuò)大,AGV用點(diǎn)來(lái)表示。
首先,用直線為鏈接線劃分規(guī)劃空間為凸多邊形區(qū)域。
其次,將各鏈接線的中點(diǎn)設(shè)置為可能的路徑節(jié)點(diǎn)。
再次,相互連接各凸多邊形區(qū)域內(nèi)的所有可能路徑點(diǎn)。
最后,將機(jī)器人移動(dòng)時(shí)的起點(diǎn)和終點(diǎn)分別連接到所在凸多邊形區(qū)域的各個(gè)可能路徑點(diǎn)上。
應(yīng)用Matlab模擬,AGV工作環(huán)境采用直角坐標(biāo)法表示,設(shè)置AGV起點(diǎn)坐標(biāo)為(0,0),終點(diǎn)坐為(100,100)。障礙物采用頂點(diǎn)坐標(biāo)向量(X,Y)表示,坐標(biāo)排列為逆時(shí)針?lè)较?。如X=[15,20,20,15,15],Y=[85,85,65,65,85],表示障礙的頂點(diǎn)為(15,85),(20,85),(20,65),(15,85)。
繪制障礙物代碼如下:
Fill([15,20,20,15,15],[85,85,65,65,85],[0.4,0.4,0.4]);
Plot([15,20,20,15,15],[85,85,65,65,85],’-k’);
Fill([20,40,40,20,20],[40,40,30,30,40],[0.4,0.4,0.4]);
Plot([20,40,40,20,20],[40,40,30,30,40],’-k’);
Fill([45,50,50,45,45],[85,85,50,50,85],[0.4,0.4,0.4])
Plot([45,50,50,45,45],[85,85,50,50,85],’-k’);
Fill([75,85,80,70,65,75],[90,85,70,70,85,90],[0.4,0.4,0.4]);
Plot([75,85,80,70,65,75],[90,85,70,70,85,90],’-k’);
Fill([65,85,85,65,65],[40,40,15,15,40],[0.4,0.4,0.4]);
Plot([65,85,85,65,65],[40,40,15,15,40],’-k’);
設(shè)置節(jié)點(diǎn)時(shí)采用兩種方法,一種方法是取各障礙物對(duì)環(huán)境邊界的垂線中點(diǎn),另一種方法是取障礙物頂點(diǎn)連線的中點(diǎn)為節(jié)點(diǎn)。
依據(jù)鄰接矩陣,繪制網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。當(dāng)D(i,j)=1時(shí),對(duì)應(yīng)節(jié)點(diǎn)有連線鏈接,當(dāng)D(i,j)=0時(shí),對(duì)應(yīng)節(jié)點(diǎn)沒(méi)有連線,如此,得到拓?fù)浣Y(jié)構(gòu)圖。
2)基于遺傳算法路徑規(guī)劃設(shè)計(jì)
經(jīng)過(guò)上述步驟1)空間建模之后,機(jī)器人路徑規(guī)劃問(wèn)題轉(zhuǎn)化為網(wǎng)絡(luò)拓?fù)鋱D的最短路徑問(wèn)題,可以采用圖論中的已有成熟算法求解(如Floyd算法)。但需要注意的是,以上所求出的最短路徑只是拓?fù)鋱D的最短路徑,它使用了走各連線中點(diǎn)的條件。由上述構(gòu)造拓?fù)鋱D的假設(shè)可知,障礙物已經(jīng)進(jìn)行了適當(dāng)?shù)財(cái)U(kuò)大,所以機(jī)器人可以沿著其邊界行走。由于障礙物的形狀、位置等限制,以上產(chǎn)生的最短路徑就不一定是整個(gè)規(guī)劃空間中的最優(yōu)路徑。但是在此基礎(chǔ)上對(duì)其各個(gè)路徑點(diǎn)進(jìn)行調(diào)整,可以得到質(zhì)量更好的路徑。結(jié)合Floyd算法和遺傳算法,提出的求解機(jī)器人路徑規(guī)劃問(wèn)題的基本思想是先用算法求拓?fù)鋱D的最短路徑,得到可行路徑點(diǎn)再用遺傳算法來(lái)調(diào)整各個(gè)可行路徑點(diǎn),得到最優(yōu)的或近似最優(yōu)的行走路徑。
(1)采用Floyd算法求拓?fù)鋱D的最短路徑的方法如下:
首先,為圖中連接線設(shè)置權(quán)值,設(shè)節(jié)點(diǎn)Vi(Xi,Yi)、節(jié)點(diǎn)Vj(Xj,Yj),如果從節(jié)點(diǎn)Vi到節(jié)點(diǎn)Vj有路可達(dá),則鄰接矩陣D(i,j)的權(quán)值設(shè)置為
否則,D(i,j)=0
其次,定義一個(gè)矩G陣用來(lái)記錄節(jié)點(diǎn)的信息,G(i,j)表示從節(jié)點(diǎn)Vi到節(jié)點(diǎn)Vj需要經(jīng)過(guò)的點(diǎn),初始化G(i,j)=j(luò);
再次,把各個(gè)節(jié)點(diǎn)插入到圖中,比較插點(diǎn)后的距離與原來(lái)的距離,
D(i,j)=min(D(i,j),D(i,k)+D(k,j)) (2)
如果D(i,j)的值變小,則G(i,j)=k;
在D中包含有兩點(diǎn)之間最短道路的信息,而在G中則包含了最短通路徑的信息。
(2)采用遺傳算法來(lái)調(diào)整各個(gè)可行路徑點(diǎn),得到最優(yōu)的或近似最優(yōu)的行走路徑。
I.路徑編碼方法
假設(shè)通過(guò)Floyd算法已找到了圖中的最短路徑p0、p1、p2…pn,其中p0為路徑起點(diǎn),pn為路徑終點(diǎn);需要對(duì)pi(i=1,2,...n-1)的位置進(jìn)行調(diào)整,從而得到自動(dòng)搬運(yùn)小車(chē)AGV在規(guī)劃空間中的最優(yōu)或近似最優(yōu)的行走路徑;
對(duì)于pi點(diǎn),讓它在由pi1,pi2設(shè)兩點(diǎn)所組成的直線段上變動(dòng),其具體位置可由下述參數(shù)方程式中的ti來(lái)決定:
pi=pi1+ti(pi2-pi1) (3)
對(duì)每一個(gè)路徑點(diǎn)都這樣處理后,這些新的路徑點(diǎn)就組成了一條新的行走路徑;對(duì)于一條新的調(diào)整后的路徑,由n個(gè)取值在[0,1],范圍內(nèi)的ti值的排列來(lái)唯一的表示其各個(gè)路徑點(diǎn)的新位置,即確定了這條路徑;
Ⅱ.目標(biāo)函數(shù)和適應(yīng)函數(shù)
適應(yīng)度函數(shù)分別由路徑長(zhǎng)度、平滑度以及間接度三個(gè)目標(biāo)函數(shù)組成;
路徑長(zhǎng)度函數(shù):對(duì)于有n個(gè)節(jié)點(diǎn)的路徑,共由n-1條路徑分段組成;計(jì)算節(jié)點(diǎn)pi與pi+1之間的長(zhǎng)度并疊加,公式表示如下:
平滑度函數(shù):平滑度指的是路徑段與路徑段之間的偏轉(zhuǎn)角度少θ的大小,即自動(dòng)搬運(yùn)小車(chē)AGV行走時(shí)的偏轉(zhuǎn)方向,計(jì)算公式表示如下:
其中,S為規(guī)劃場(chǎng)景面積,os為所有障礙物的所占面積;
間隔度:間隔度是指路徑與障礙物之間的距離,計(jì)算每個(gè)路徑段離障礙物的最短距離gi;
其中,τ為理想間距值;
以上三個(gè)式子根據(jù)各自權(quán)重求和得到可行路徑的適應(yīng)度函數(shù),表示為以下式子:
f(s)=ωd·dist(s)+ωs·smooth(s)+ωc·clear(s) (7)。
Holland的遺傳算法
Holland的遺傳算法被為基本遺傳算法,采用二進(jìn)制編碼,使用選擇、交叉、變異二種遺傳算子和基十適應(yīng)度比例的選擇策略,Holland的遺傳算法的流程圖如圖1所示。
基本步驟為:
STEP1:隨機(jī)產(chǎn)生各個(gè)體構(gòu)成初始群體。
STEP2:根據(jù)適應(yīng)度函數(shù)計(jì)算當(dāng)前群體中各個(gè)體的適應(yīng)度。
STEP3:判斷算法終止條件是否滿(mǎn)足,若滿(mǎn)足則轉(zhuǎn)。
STEP4:根據(jù)各個(gè)體的適應(yīng)度函數(shù)執(zhí)行選擇操作。
STEP5:按交叉概率執(zhí)行交叉操作。
STEP6:按變異概率執(zhí)行變異操作。
STEP7:若已得到由個(gè)新個(gè)體構(gòu)成的新一代群體,則轉(zhuǎn)第二步,否則轉(zhuǎn)第四步。
STEP8:輸出搜索結(jié)果,終止。
III.遺傳算子
選擇算子采用比例選擇算子,使個(gè)體按照與適應(yīng)度成正比的概率向下一代群體繁殖。選擇方法是轉(zhuǎn)盤(pán)輪賭選擇法。
交叉算子:首先,交叉是以一定的概率,在變長(zhǎng)的染色體中隨機(jī)選擇一個(gè)除起始點(diǎn)與目標(biāo)點(diǎn)以外的轉(zhuǎn)向點(diǎn),這個(gè)轉(zhuǎn)向點(diǎn)就作為交叉點(diǎn),把整個(gè)路徑分成了兩個(gè)路徑段。然后選擇兩個(gè)父代染色體,相互交換交叉點(diǎn)后面的路徑段,這樣就產(chǎn)生了兩個(gè)子代染色體。在不同父代中選擇不同的交叉點(diǎn),可以增加染色體長(zhǎng)度的差異性,并且有利于擴(kuò)大解空間的范圍和最優(yōu)解的產(chǎn)生。
變異算子:選擇之后是子代的變異保證了遺傳算法的有效性,它是一種局部隨機(jī)搜索,與選擇算子結(jié)合在一起,使遺傳算法具有局部的隨機(jī)搜索能力,并對(duì)路徑中的不理想路段進(jìn)行變異可以提高算法效率,同時(shí)使得遺傳算法保持種群的多樣性,以防止出現(xiàn)非成熟收斂可行路徑的概率很大。由于隨機(jī)產(chǎn)生的點(diǎn)本身具有隨機(jī)性,以致變異操作破壞所以針對(duì)不同的狀況,使用了兩種變異的方法。
變異算子1除去起始點(diǎn)和目標(biāo)點(diǎn),在路徑的中間轉(zhuǎn)向點(diǎn)中任意選取一個(gè)位置,將該轉(zhuǎn)向點(diǎn)的位置坐標(biāo)作一次非一致性變異,然后把當(dāng)前的轉(zhuǎn)向點(diǎn)移至新產(chǎn)生的轉(zhuǎn)向點(diǎn)上,經(jīng)過(guò)變異之后就產(chǎn)生了一條新的路徑,如圖2和圖3所示。
變異算子2是針對(duì)可行路徑的一種微調(diào)。選擇可行路徑的某一個(gè)中間轉(zhuǎn)向點(diǎn),將其位置坐標(biāo)進(jìn)行高斯小范圍變異,確保產(chǎn)生的路徑仍然可行,如圖4和圖5所示。
3)系統(tǒng)優(yōu)化與模擬
根據(jù)步驟2)所述產(chǎn)生的拓?fù)鋱D,采用ployd算法,進(jìn)行路徑規(guī)劃,形成路徑。機(jī)器人能夠避開(kāi)障礙物,但是在障礙物有較大間距時(shí),機(jī)器人就選擇更改移動(dòng)方向,會(huì)增加移動(dòng)距離,產(chǎn)生時(shí)間損失。
為減少時(shí)間損失,采用遺傳算法對(duì)采用ployd算法得到的結(jié)果進(jìn)行優(yōu)化,設(shè)置進(jìn)化代數(shù)為150,種群規(guī)模為20,變異概率為0.3,交叉概率為0.99。經(jīng)過(guò)10代進(jìn)化后,取得規(guī)劃路徑,經(jīng)過(guò)優(yōu)化后的路徑段更加平滑。
經(jīng)過(guò)遺傳算法對(duì)算法得出的結(jié)果進(jìn)行優(yōu)化后,使路徑長(zhǎng)度得到明顯縮短,該方法在拓?fù)鋱D及算法的基礎(chǔ)上,進(jìn)行遺傳算法進(jìn)行優(yōu)化,優(yōu)化效果明顯,容易實(shí)現(xiàn),所以此算法在這種情況下快速有效。
所述方法分為如下六個(gè)階段與步驟:
(1)自動(dòng)化立體倉(cāng)庫(kù)數(shù)學(xué)建模
(2)根據(jù)具體要求提出實(shí)用的二維編碼方法,解決了種群初始化的問(wèn)題;
(3)對(duì)如何運(yùn)用基本遺傳算法的遺傳操作求解模型進(jìn)行了設(shè)計(jì),找到一個(gè)優(yōu)化的解;
(4)通過(guò)仿真結(jié)果,對(duì)基本遺傳算法中的參數(shù)進(jìn)行了選擇,設(shè)置一組較優(yōu)的參數(shù),使得仿真結(jié)果更加合理、完善。
(5)最后將運(yùn)用基本遺傳算法求解得到的仿真結(jié)果和運(yùn)用先來(lái)先服務(wù)方法得到的仿真結(jié)果進(jìn)行了對(duì)比分析,驗(yàn)證了基本遺傳算法的有效性。
(6)驗(yàn)證改進(jìn)的遺傳算法的有效性。
綜上,所述方法建立了自動(dòng)化倉(cāng)庫(kù)運(yùn)輸系統(tǒng)的高效性仿真模型,首次運(yùn)用遺傳算法進(jìn)行求解,得出自動(dòng)化倉(cāng)庫(kù)中基于AGV運(yùn)輸系統(tǒng)建設(shè)的理論仿真模型;構(gòu)建出自動(dòng)化倉(cāng)庫(kù)中基于AGV運(yùn)輸系統(tǒng)的協(xié)作運(yùn)行系統(tǒng),實(shí)現(xiàn)多搬運(yùn)AGV之間的自協(xié)作;創(chuàng)造性地構(gòu)建起了基于遺傳算法的自動(dòng)化倉(cāng)庫(kù)運(yùn)輸系統(tǒng)設(shè)計(jì)與規(guī)劃的工具與方法。