本發(fā)明屬于智能機(jī)器人線路規(guī)劃技術(shù)領(lǐng)域,特別涉及一種基于改進(jìn)量子蟻群算法的AGV實時路線規(guī)劃方法。
背景技術(shù):
隨著機(jī)器人技術(shù)的快速發(fā)展,機(jī)器人功能和性能逐漸提高,應(yīng)用面也擴(kuò)大至生產(chǎn)生活中的方方面面。自動引導(dǎo)運(yùn)輸車(Automated Guided Vehicle,AGV)屬于移動機(jī)器人的范疇,是指裝有自動引導(dǎo)裝置,能夠沿指定路線行進(jìn),能智能控制運(yùn)動姿態(tài),且具有安全保護(hù)和搬運(yùn)功能的運(yùn)輸車。AGV適用于重復(fù)搬運(yùn)、重物搬運(yùn)的場景,甚至在惡劣環(huán)境(火場)和特殊環(huán)境(如放射性環(huán)境)中代替操作人員進(jìn)行貨物的搬運(yùn)和搶救工作。如今AGV多用于物流倉庫、港口碼頭、郵政、機(jī)場和汽車生產(chǎn)裝配線等典型的搬運(yùn)場景。
但是隨著AGV的普及,各行各業(yè)對AGV智能程度的要求也越來越高,例如實現(xiàn)AGV的實時路線規(guī)劃。以物流倉庫中的貨物搬運(yùn)為例,AGV要完成某個運(yùn)輸任務(wù)必須先從當(dāng)前停放位置行進(jìn)至裝料點(diǎn),再從裝料點(diǎn)行進(jìn)至卸料點(diǎn),其間每個運(yùn)輸任務(wù)包括空載狀態(tài)和載運(yùn)狀態(tài)下的兩個路線規(guī)劃過程。在規(guī)劃路線時一般可考慮最短路線因素、最少花費(fèi)時間、最少拐彎次數(shù)等,尤其搬運(yùn)環(huán)境較大的情況下,每個任務(wù)路線的優(yōu)化,在長期積累后能節(jié)省大量時間和人力成本,明顯提升運(yùn)輸效率。另外,對于多臺AGV場景,單機(jī)AGV如何將運(yùn)輸任務(wù)的實時響應(yīng)和路線規(guī)劃方法結(jié)合,以實現(xiàn)行進(jìn)和等待狀態(tài)的動態(tài)切換也具有重要的現(xiàn)實意義。
目前路線規(guī)劃方法包括遺傳算法、神經(jīng)網(wǎng)絡(luò)、隨機(jī)搜索樹、蟻群算法等方法,但都存在或多或少的問題,包括搜索空間大、算法復(fù)雜度高、易陷入局部最優(yōu)、迭代前期收斂慢、迭代后期解的多樣性差等。因此仍然沒有一個公認(rèn)完美的方法能解決路線規(guī)劃,如何改善已有算法的缺陷、提出綜合表現(xiàn)力更好的算法已經(jīng)成為路線規(guī)劃領(lǐng)域的共識和基本要求。
技術(shù)實現(xiàn)要素:
本發(fā)明目的在于提出一種基于改進(jìn)量子蟻群算法的AGV實時路線規(guī)劃方法,以解決AGV在物流倉庫中的實時路線規(guī)劃問題,滿足了自動、實時給出滿足全局搜索、計算時間、迭代前期快速收斂、迭代后期解多樣性等綜合要求,可以規(guī)劃處一個AGV的最優(yōu)路線。
為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種基于改進(jìn)量子蟻群算法的AGV實時路線規(guī)劃方法,包括以下步驟:
S1、初始化環(huán)境和算法參數(shù),包括:
S11、初始化環(huán)境:給出倉庫中各路口的點(diǎn)集、可行弧集和各路口間的距離數(shù)據(jù),具體是:
定義G=(V,E,D)為倉庫的環(huán)境圖,其中V={1,2,…,K}為環(huán)境中各路口的集合,即點(diǎn)集,E={(i,j)|i,j∈V,i≠j}為各路口間的AGV可行路線集合,即可行弧集,設(shè)共有M條弧,D={dij|i,j∈V,i≠j}表示弧集E的距離;
初始化算法參數(shù):定義螞蟻數(shù)量N、最大迭代次數(shù)iter;初始化M維單位向量信息素τ={τ(i,j),(i,j)∈E},初始化信息素?fù)]發(fā)系數(shù)ρ∈[0,1],并在后續(xù)步驟更新累加信息素,其數(shù)值越大表示弧越重要;
每只螞蟻攜帶一組M位的量子比特,對應(yīng)弧集E中M條弧,則第t(t=1,2,…,iter)次迭代時第n(n=1,2,…,N)只螞蟻的初始量子比特為:
其中m(m=1,2,…,M)對應(yīng)弧集E中第m條弧(i,j),的每一列元素表示螞蟻n選擇一條弧的可能性,即權(quán)重系數(shù),和分別表示螞蟻n選弧集E中第一條弧作為AGV路線和不選作為路線的可能性,且滿足
S2:接收AGV路線規(guī)劃任務(wù):AGV等待從調(diào)度系統(tǒng)接收出發(fā)點(diǎn)和終止點(diǎn)的信息;
S3:構(gòu)建AGV路線解:
對于螞蟻n,給定起始點(diǎn)后,開始尋找下一個路口,表示弧(i,j)的轉(zhuǎn)移概率如下:
其中(i,k)∈E表示所有可能的路口;τ(i,j)表示弧(i,j)的信息素強(qiáng)度;η(i,j)=1/d(i,j)為弧(i,j)的能見度;βnm表示螞蟻n在弧集E中第m條弧(i,j)的量子比特值;a,b,c分別表示信息素、可見度、量子比特三者的重要性系數(shù);
按照轉(zhuǎn)移概率不斷迭代選擇下一個路口和弧,直至到達(dá)終止點(diǎn),若因為環(huán)境中的非閉環(huán)弧導(dǎo)致無法到達(dá)終止點(diǎn),則從起始點(diǎn)重新進(jìn)行此步驟;
S4:評估當(dāng)前解和記錄最優(yōu)解:評估每只螞蟻搜索到的路線總長度,并記錄最短路線和對應(yīng)的量子比特;
S5:量子旋轉(zhuǎn)門:以搜得最優(yōu)路線的螞蟻的量子比特為基準(zhǔn),采用量子旋轉(zhuǎn)門的形式對每只螞蟻的量子比特進(jìn)行引導(dǎo)性更新,采用量子旋轉(zhuǎn)門計算公式如下:
式中,[αnm βnm]T表示第n只螞蟻第m位量子比特,θm表示第m位量子比特的旋轉(zhuǎn)角;
S6:量子變異:對每只螞蟻的量子比特進(jìn)行量子變異操作,具體為:
令量子變異概率為Pmut,生成一個[0,1]隨機(jī)數(shù)r,若滿足:
則采用Hadamard門變異對每只螞蟻的量子比特進(jìn)行量子變異操作,Hadamard門變異在不改變最優(yōu)路線的前提下互換了量子比特值的位置,具體操作為:
S7:更新信息素:根據(jù)最短路線的量子比特計算信息素增量,計算更新下一迭代步信息素,具體是:
各條弧的信息素更新規(guī)則為:
其中βnm表示第n只螞蟻在弧(i,j)處的量子比特值;
S8:運(yùn)算終止判斷:判斷當(dāng)前迭代次數(shù)t是否到達(dá)預(yù)設(shè)迭代次數(shù)iter,若否,則返回S4并置t=t+1;若是,則停止運(yùn)算,重置信息素τ、轉(zhuǎn)移概率量子比特Qn和Qbest,輸出最短路線Lbest作為AGV執(zhí)行路線,并重置Ln和Lbest,再返回S2。
所述步驟S2中,在載運(yùn)狀態(tài)下,出發(fā)點(diǎn)為裝料點(diǎn),終止點(diǎn)為卸料點(diǎn);在空載狀態(tài)下,出發(fā)點(diǎn)為上一個運(yùn)輸任務(wù)的卸料點(diǎn),終止點(diǎn)為下一個運(yùn)輸任務(wù)的裝料點(diǎn),置當(dāng)前迭代次數(shù)t=1。
所述步驟4具體是:
記錄所有螞蟻的路線Ln={(i,j)n|i,j∈V,i≠j},n=1,2,…,N,對蟻群規(guī)劃的N條路線進(jìn)行評估,評估方式為路線總長度并記錄最短路線Lbest、最短長度Lbest_dis及其對應(yīng)的量子比特
所述步驟5中,旋轉(zhuǎn)角的取值方式如下:
θm=θ0·(sgn(Ln_dis-Lbest_dis)+1)·sgn(βnm/αnm)
所述θ0為0.03π。
采用上述方案后,本發(fā)明有益效果是:通過采用改進(jìn)的量子蟻群算法(QACO)能夠直接應(yīng)用于物流倉庫中路線規(guī)劃問題,能夠自動、實時給出滿足全局搜索、計算時間、迭代前期快速收斂、迭代后期解多樣性等綜合要求一個AGV的最優(yōu)路線,避免人力規(guī)劃路線可能導(dǎo)致的沖突和人力浪費(fèi),路線長度的優(yōu)化能明顯節(jié)省時間成本、提升貨料運(yùn)輸效率,從而間接提高生產(chǎn)效率。
下面結(jié)合附圖對本發(fā)明做進(jìn)一步的說明。
附圖說明
圖1是本發(fā)明一種基于改進(jìn)量子蟻群算法的AGV實時路線規(guī)劃方的流程圖。
圖2是量子旋轉(zhuǎn)門和量子變異的原理示意圖。
圖3是蟻群算法(ACO)和本發(fā)明改進(jìn)量子蟻群算法(QACO)路線規(guī)劃時的對比圖。
具體實施方式
如圖1所示本發(fā)明實施例一揭示的一種基于改進(jìn)量子蟻群算法的AGV實時路線規(guī)劃方法,是按以下步驟進(jìn)行的:
S1、初始化環(huán)境和算法參數(shù),包括:
S11、初始化環(huán)境:給出倉庫中各路口的點(diǎn)集、可行弧集和各路口間的距離數(shù)據(jù),具體是:
定義G=(V,E,D)為倉庫的環(huán)境圖,其中V={1,2,…,K}為環(huán)境中各路口的集合,即點(diǎn)集,E={(i,j)|i,j∈V,i≠j}為各路口間的AGV可行路線集合,即可行弧集,設(shè)共有M條弧,D={dij|i,j∈V,i≠j}表示弧集E的距離;
初始化算法參數(shù):定義螞蟻數(shù)量N、最大迭代次數(shù)iter;初始化M維單位向量信息素τ={τ(i,j),(i,j)∈E},初始化信息素?fù)]發(fā)系數(shù)ρ∈[0,1],并在后續(xù)步驟更新累加信息素,其數(shù)值越大表示弧越重要;信息素的不斷累加會導(dǎo)致一部分信息素過多、另一部分過少,故初始化信息素?fù)]發(fā)系數(shù)ρ∈[0,1],用于制約信息素上限值、動態(tài)權(quán)衡信息素間的差距,此處取ρ=0.3;
每只螞蟻攜帶一組M位的量子比特,對應(yīng)弧集E中M條弧,則第t(t=1,2,…,iter)次迭代時第n(n=1,2,…,N)只螞蟻的初始量子比特為:
其中m(m=1,2,…,M)對應(yīng)弧集E中第m條弧(i,j),的每一列元素表示螞蟻n選擇一條弧的可能性,即權(quán)重系數(shù),如和分別表示螞蟻n選弧集E中第一條弧作為AGV路線和不選作為路線的可能性,且滿足
S2:接收AGV路線規(guī)劃任務(wù):AGV等待從調(diào)度系統(tǒng)接收出發(fā)點(diǎn)和終止點(diǎn)的信息;在載運(yùn)狀態(tài)下,出發(fā)點(diǎn)為裝料點(diǎn),終止點(diǎn)為卸料點(diǎn);在空載狀態(tài)下,出發(fā)點(diǎn)為上一個運(yùn)輸任務(wù)的卸料點(diǎn),終止點(diǎn)為下一個運(yùn)輸任務(wù)的裝料點(diǎn),置當(dāng)前迭代次數(shù)t=1;
S3:構(gòu)建AGV路線解:
對于螞蟻n,給定起始點(diǎn)后,開始尋找下一個路口,表示弧(i,j)的轉(zhuǎn)移概率如下:
其中(i,k)∈E表示所有可能的路口;τ(i,j)表示弧(i,j)的信息素強(qiáng)度;η(i,j)=1/d(i,j)為弧(i,j)的能見度;βnm表示螞蟻n在弧集E中第m條弧(i,j)的量子比特值;a,b,c分別表示信息素、可見度、量子比特三者的重要性系數(shù);
按照轉(zhuǎn)移概率不斷迭代選擇下一個路口和弧,直至到達(dá)終止點(diǎn),若因為環(huán)境中的非閉環(huán)弧導(dǎo)致無法到達(dá)終止點(diǎn),則從起始點(diǎn)重新進(jìn)行此步驟;
S4:評估當(dāng)前解和記錄最優(yōu)解:評估每只螞蟻搜索到的路線總長度,并記錄最短路線和對應(yīng)的量子比特,具體是:
記錄所有螞蟻的路線Ln={(i,j)n|i,j∈V,i≠j},n=1,2,…,N,對蟻群規(guī)劃的N條路線進(jìn)行評估,評估方式為路線總長度并記錄最短路線Lbest、最短長度Lbest_dis及其對應(yīng)的量子比特
S5:量子旋轉(zhuǎn)門:參見圖2,以搜得最優(yōu)路線的螞蟻的量子比特為基準(zhǔn),采用量子旋轉(zhuǎn)門的形式對每只螞蟻的量子比特進(jìn)行引導(dǎo)性更新,采用量子旋轉(zhuǎn)門計算公式如下:
式中,[αnm βnm]T表示第n只螞蟻第m位量子比特,θm表示第m位量子比特的旋轉(zhuǎn)角,θm的取值直接影響算法收斂速度和路線解的質(zhì)量;旋轉(zhuǎn)角的取值方式如下:
θm=θ0·(sgn(Ln_dis-Lbest_dis)+1)·sgn(βnm/αnm)
本實施例θ0取0.03π。
S6:量子變異:參見圖2,對每只螞蟻的量子比特進(jìn)行量子變異操作,具體為:
令量子變異概率為Pmut,生成一個[0,1]隨機(jī)數(shù)r,若滿足:
則采用Hadamard門變異對每只螞蟻的量子比特進(jìn)行量子變異操作,Hadamard門變異在不改變最優(yōu)路線的前提下互換了量子比特值的位置,具體操作為:
由該式可見,在算法迭代初期變異率較低,能保證解的快速收斂,而迭代后期變異率較高,保證后期解的多樣性和全局最優(yōu)。
S7:更新信息素:為了將更多螞蟻引導(dǎo)至最優(yōu)路線解的周圍,需要對可行弧集的信息素進(jìn)行累加更新,但同時又應(yīng)防止信息素過度累加導(dǎo)致的局部過快收斂。因此根據(jù)最短路線的量子比特計算信息素增量,計算更新下一迭代步信息素,具體是:
各條弧的信息素更新規(guī)則為:
其中βnm表示第n只螞蟻在弧(i,j)處的量子比特值;
S8:運(yùn)算終止判斷:判斷當(dāng)前迭代次數(shù)t是否到達(dá)預(yù)設(shè)迭代次數(shù)iter,若否,則返回S4并置t=t+1;若是,則停止運(yùn)算,重置信息素τ、轉(zhuǎn)移概率量子比特Qn和Qbest,輸出最短路線Lbest作為AGV執(zhí)行路線,并重置Ln和Lbest,再返回S2。
參見圖3,采用傳統(tǒng)蟻群算法(ACO)和本發(fā)明改進(jìn)量子蟻群算法(QACO)對路線規(guī)劃的對比結(jié)果,明顯看出,本發(fā)明的基于改進(jìn)量子蟻群算法的AGV實時路線規(guī)劃方法在更短的時間內(nèi)給出更優(yōu)規(guī)劃線路,效率顯著提高,具有前期收斂快速,迭代后期解的存在多樣性的特點(diǎn)。
上述說明示出并描述了本發(fā)明的優(yōu)選實施例,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進(jìn)行改動。而本領(lǐng)域人員所進(jìn)行的改動和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。