本發(fā)明涉及人工智能領(lǐng)域,特別是基于蟻群算法的景區(qū)游覽路線規(guī)劃方法。
背景技術(shù):
:隨著旅游業(yè)的快速發(fā)展和科學(xué)技術(shù)的不斷進(jìn)步,電子導(dǎo)游系統(tǒng)的出現(xiàn)為游客出行提供了一定的便捷。其中,景區(qū)游覽路線規(guī)劃功能為游客制定游覽路線、節(jié)約游覽時(shí)間提供了極大便捷??茖W(xué)家們通過不懈努力,提出了多種景區(qū)游覽路線規(guī)劃方法,主要是將景區(qū)圖抽象為一個(gè)完全連通圖,通過蟻群算法、遺傳算法等智能算法計(jì)算經(jīng)過完全圖中所有點(diǎn)的最短環(huán)路。但是這些方法普遍存在幾點(diǎn)問題:實(shí)際景區(qū)圖應(yīng)為非完全連通圖,過于抽象的景區(qū)圖不適合應(yīng)用到景區(qū)導(dǎo)游系統(tǒng)之中;算法只考慮路徑長(zhǎng)短,沒有考慮游客回避特殊路段的需求,如擁堵路段、陡峭路段等;算法只是求得一條路過所有景點(diǎn)的最短路,沒有考慮游客只想?yún)⒂^部分景點(diǎn)的需求,而且實(shí)際景區(qū)圖除了包括景點(diǎn)外,還包括出入口、服務(wù)點(diǎn)、道路岔口等類型點(diǎn),不能單純?yōu)橛慰屯扑]一條經(jīng)過所有點(diǎn)的路線。因此,如何根據(jù)景區(qū)的實(shí)際情況,滿足不同游客的不同游覽需求,實(shí)時(shí)設(shè)計(jì)一條個(gè)性游覽路線,已成為景區(qū)導(dǎo)游系統(tǒng)研究中急待解決的問題。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的,是提供一種基于改進(jìn)蟻群算法的智能景區(qū)游覽路線規(guī)劃方法,能夠以非完全連通圖作為景區(qū)圖,實(shí)時(shí)設(shè)計(jì)一條經(jīng)過游客選擇景點(diǎn)的游覽路線,并且滿足游客回避特殊路段的需求。為了實(shí)現(xiàn)上述目的,本發(fā)明的基于改進(jìn)蟻群算法的智能景區(qū)游覽路線規(guī)劃方法包括如下步驟:①初始化景區(qū)路徑距離矩陣d,矩陣中每個(gè)元素dij的值表示表示景區(qū)中點(diǎn)i到點(diǎn)j的實(shí)際距離,若兩點(diǎn)不相鄰,取值為∞;②根據(jù)用戶選擇的是否避開擁堵路段、陡峭路段的需求,初始化景區(qū)路徑權(quán)值矩陣w。矩陣中每個(gè)元素的計(jì)算公式為如下:wij=dij+dmax(y+d),其中dij代表路徑的實(shí)際距離,dmax代表景區(qū)圖中的最長(zhǎng)路徑距離。y取1時(shí)表示游客選擇回避擁堵路徑,y取0時(shí)表示游客沒有選擇回避擁堵路徑;d取1時(shí)表示游客選擇回避陡峭路徑,d取0時(shí)表示游客沒有選擇回避陡峭路徑。通過這樣計(jì)算路徑權(quán)值,能夠保證景區(qū)圖為連通圖的前提下滿足游客的個(gè)性需求,進(jìn)而為游客設(shè)計(jì)最佳游覽路線。③計(jì)算初始最短路矩陣wr=(rij)m*m。考慮到景區(qū)圖為非完全連通圖,即不是任意兩點(diǎn)間存在直接通路,一只螞蟻遍歷完所有必須點(diǎn)后,當(dāng)前點(diǎn)與起始點(diǎn)之間并不一定存在直接通路,無法完成回路。因此引入最短路矩陣,存儲(chǔ)景區(qū)中任意兩景點(diǎn)間最小權(quán)值路線。如果wij不為無窮大,即點(diǎn)i與點(diǎn)j連通,那么初始化rij=j(luò),使用改進(jìn)floyd算法計(jì)算wr的偽代碼描述如下:如果rij=j(luò),i到j(luò)最短路為i→j;如果rij=k,rik=j(luò),,i到j(luò)最短路為i→k→j。依此類推,任意兩點(diǎn)i與j的初始最短路均可在wr中求得。④根據(jù)改進(jìn)蟻群算法計(jì)算景區(qū)游覽路線。由于游客實(shí)際景區(qū)圖為非完全連通圖,傳統(tǒng)蟻群算法通過禁忌表計(jì)算環(huán)路的方法不再適用,需要更改螞蟻尋路規(guī)則。本發(fā)明提出改進(jìn)蟻群算法,將螞蟻周游結(jié)束規(guī)則更改為經(jīng)過所有游客選擇景點(diǎn)。同時(shí)為了避免較小權(quán)值路段被反復(fù)選擇,增加算法執(zhí)行效率,引入臨時(shí)權(quán)值矩陣。臨時(shí)權(quán)值矩陣作用和信息素矩陣作用相反,通過增大已走過路徑權(quán)值,減小該路徑被再次選擇概率。路徑權(quán)值動(dòng)態(tài)計(jì)算公式為:wij=3wij,如此計(jì)算是考慮到如果不改變權(quán)值,該路徑被反復(fù)選擇,相當(dāng)于多走了兩次。因此,當(dāng)螞蟻選擇完路徑(i,j),根據(jù)該公式直接增大路徑權(quán)值。改進(jìn)蟻群算法具體流程如下:step1:初始化數(shù)據(jù):當(dāng)前循環(huán)次數(shù)nc、最大循環(huán)次數(shù)nmax、初始信息素矩陣t;step2:將n只螞蟻平均分配到游客期望經(jīng)過景點(diǎn)集合v’中;step3:根據(jù)信息素矩陣t、臨時(shí)權(quán)值矩陣wr計(jì)算螞蟻k在i到各點(diǎn)的轉(zhuǎn)移概率,轉(zhuǎn)移概率計(jì)算與傳統(tǒng)蟻群算法相同,然后根據(jù)轉(zhuǎn)移概率采用輪盤賭法選取選取下一遍歷點(diǎn)j;step4:將點(diǎn)j加入到當(dāng)前已走點(diǎn)集合中,更新臨時(shí)權(quán)值矩陣中wij的值;step5:重復(fù)步驟step3和step4,直到螞蟻k經(jīng)過所有游客期望參觀景點(diǎn);step6:根據(jù)最短路矩陣mr找到當(dāng)前點(diǎn)到出發(fā)點(diǎn)的最短路,重置臨時(shí)權(quán)值矩陣;step7:若k<n,k=k+1,回到step2;否則更新信息素矩陣,進(jìn)入步驟step8;step8:若nc<nmax、,nc=nc+1,回到步驟step2;否則算法結(jié)束,得到最短路。本發(fā)明能以非完全連通圖作為景區(qū)圖,實(shí)時(shí)設(shè)計(jì)一條經(jīng)過游客選擇景點(diǎn)的游覽路線,滿足游客回避特殊路段的要求。附圖說明圖1是景區(qū)連通示意圖。圖2是計(jì)算結(jié)果示意圖。圖中標(biāo)號(hào)△:岔口點(diǎn)、服務(wù)點(diǎn)等?!酰壕皡^(qū)入口?!穑壕包c(diǎn)。具體實(shí)施方式假設(shè)圖1為某景區(qū)連通圖,其中矩形代表景區(qū)出入口(1個(gè)),圓形代表景點(diǎn)(14個(gè)),三角形代表景區(qū)內(nèi)岔口點(diǎn)、公共服務(wù)點(diǎn)等(11個(gè)),圖中連線上的數(shù)值表示該路徑距離等比例縮小后對(duì)應(yīng)的距離。假設(shè)游客輸入數(shù)據(jù)如下(期望參觀所有景點(diǎn)、回避特殊路徑):數(shù)據(jù)編號(hào)期望參觀景點(diǎn)回避陡峭路回避擁擠路10,1,2,3,4,5,6,7,8,9,10,11,12,13,14是是首先對(duì)基本參數(shù)進(jìn)行初始化,包括節(jié)點(diǎn)間距離矩陣d和最短路矩陣wr;當(dāng)游客輸入期望參觀景點(diǎn)和路徑要求后,根據(jù)游客對(duì)特殊路徑的需求,計(jì)算景區(qū)路徑權(quán)值矩陣w,w1,15=w15,1=13;w4,16=w16,4=12;w7,8=w8,7=14,其余路徑wi,j=di,j;所有數(shù)據(jù)準(zhǔn)備好后,調(diào)用本發(fā)明中的改進(jìn)蟻群算法,計(jì)算貫穿游客期望遍歷景點(diǎn)的最佳游覽路線,取nmax=20,n=15;最后輸出計(jì)算結(jié)果:數(shù)據(jù)編號(hào)最佳游覽路線路徑總權(quán)值10-15-1-3-16-2-18-4-17-5-6-19-7-8-20-9-21-11-12-23-10-22-13-14-25-0141計(jì)算結(jié)果如圖2所示。當(dāng)前第1頁(yè)12