專利名稱:一種多目標點路徑規(guī)劃方法和裝置的制作方法
技術領域:
本發(fā)明涉及一種多目標點的路徑規(guī)劃方法和裝置,尤其涉及應用在個人自主 導游系統(tǒng)中的利用蟻群算法搜索路徑的多目標點路徑規(guī)劃方法和裝置。
背景技術:
掌上導游系統(tǒng)面向個人用戶,以導游功能為核心,擁有路線指引、景點介紹、 景區(qū)內導游、城市信息查找等功能。它能根據(jù)全球定位系統(tǒng)給出的位置,匹配出相 應的單位或景點名;或由游客直接選擇單位名稱或景點名,以該單位或景點名為中 心,通過人機界面,顯示選定半徑范圍內的電子地圖;用戶還根據(jù)其興趣作進一步 選擇,從而獲得以文字、圖片和聲音為媒體的關于所選單位或景點的信息。從某種 程度來說,系統(tǒng)將取代人工導游的作用,真正實現(xiàn)自主旅游。
近年來的車載導航系統(tǒng)雖然在導航能力上相當出色,但是對于旅游常用的路
徑規(guī)劃功能卻沒有足夠的支持。在旅游中通常需要對兩點甚至多點之間的路徑做出 合理的規(guī)劃,目前尚沒有一種足夠好的電子導游產(chǎn)品來支持這種路徑規(guī)劃功能。
發(fā)明內容
本發(fā)明的目的在于解決上述問題,提供了一種多目標點的路徑規(guī)劃方法,解
決了自主導游中的單目標點和多目標點的路徑規(guī)劃問題。
本發(fā)明的另一目的在于提供了一種多目標點的路徑規(guī)劃裝置,解決了自主導 游中的單目標點和多目標點的路徑規(guī)劃問題。
本發(fā)明的技術方案為本發(fā)明揭示了一種多目標點路徑規(guī)劃方法,包括
(1) 從地理信息數(shù)據(jù)中讀取地理數(shù)據(jù)中網(wǎng)絡層的屬性數(shù)據(jù)集信息,其中該屬 性數(shù)據(jù)集信息包括各個路徑上的信息素濃度;
(2) 按定義的數(shù)據(jù)結構存儲數(shù)據(jù),同時初始化各個路徑上的信息素濃度;
(3) 接收用戶路徑規(guī)劃的請求;(4) 獲取輸入的路徑規(guī)劃的起始點和所有的終止點的信息并存儲;
(5) 通過蟻群算法搜索從起點到終點的路徑,其中該起點的初始值是步驟(4) 中輸入的該路徑規(guī)劃的起始點,該終點的初始值是步驟(4)輸入的該些終止點中 的第一個;
(6) 判斷是否搜索到路徑,如果搜索到則進入步驟(7),否則轉入步驟(10);
(7) 記錄最優(yōu)路徑信息,并更新起點信息為當前終點的信息;
(8) 判斷是否存在下一個終止點,如果存在則進入步驟(9),否則轉入步 驟(11);
(9) 更新終點信息為下一個終止點,返回步驟(5);
(10) 搜索失敗,反饋失敗的信息,流程結束;
(11) 搜索結束,反饋路徑搜索的結果。 上述的多目標點路徑規(guī)劃方法,其中,步驟(5)進一步包括
(a) 初始化迭代次數(shù)NC;
(b) 判斷迭代次數(shù)NC是否到達最大循環(huán)迭代次數(shù),如果未到最大循環(huán)迭代 次數(shù)則進入步驟(c),否則結束對當前終點的路徑搜索;
(c) 設置蟻群算法中的參數(shù)值,初始化所有的螞蟻狀態(tài)為運行狀態(tài),螞蟻已 經(jīng)訪問的結點數(shù)置為1;
(d) 判斷是否有運行狀態(tài)的螞蟻,如果有則進入步驟(e),否則更新信息 素濃度和最優(yōu)路徑信息,迭代次數(shù)NC加1,然后返回步驟(b);
(e) 選擇一只運行狀態(tài)的螞蟻將其編號為k,得到與螞蟻k當前位置相鄰的、 未到達過的結點集合;
(f) 獲得螞蟻k到每一個相鄰點的距離以及對應路徑上的信息素濃度,計算 出螞蟻到每一個相鄰點的概率;
(g) 判斷是否有可移動的結點,如果有則進入步驟(h),否則螞蟻k的狀 態(tài)置為死亡然后轉入步驟(d);
(h) 選擇一個概率值最大的相鄰點作為螞蟻k要移動到的下一個結點;
(i) 判斷是否存在兩個或者兩個以上的概率最大的相鄰點,如果存在則進入
步驟(j),否則進入步驟(k);
(j)用隨機數(shù)確定螞蟻移動到的結點;
7(k)螞蟻k移動到選定的概率最大的結點;
(1)判斷螞蟻k所在的結點是否為終點,如果不是終點則進入步驟(m), 否則將螞蟻k的狀態(tài)設為到達并轉入步驟(d);
(m)判斷螞蟻經(jīng)過的路徑長度是否小于最大搜索范圍,如果小于最大搜索 范圍則返回步驟(f),否則螞蟻k的路徑搜索過程結束并返回步驟(d)。
上述的多目標點路徑規(guī)劃方法,其中,步驟(d)中更新信息素濃度和最優(yōu)路 徑信息并對迭代次數(shù)NC加1的過程進一步包括.-
(d.l)判斷是否有運行狀態(tài)的螞蟻,如果有則進入步驟(d.2),否則進入步 驟(d.3);
(d.2)選擇一只運行狀態(tài)的螞蟻將其編號為k,得到與螞蟻k當前位置相鄰 的、未到達過的結點集合,該過程結束;
(d.3)判斷是否有沒有訪問過的到達狀態(tài)的螞蟻,如果沒有則進入步驟(d.4), 否則進入步驟(d.5);
(d.4)將迭代次數(shù)NC的值加1,繼續(xù)下一次的迭代,該過程結束;
(d.5)計算螞蟻經(jīng)過的路徑長度;
(d.6)判斷該路徑長度是否小于已有的最優(yōu)長度,如果小于則進入步驟(d.7), 否則進入步驟(d.8);
(d.7)更新最優(yōu)路徑的信息;
(d.8)更新螞蟻所經(jīng)過的路徑上的信息素濃度。
上述的多目標點路徑規(guī)劃方法,其中,該屬性數(shù)據(jù)集信息還包括網(wǎng)絡層中的 道路對象標識、路徑起始點和終止點的標識。
上述的多目標點路徑規(guī)劃方法,其中,步驟(f)中螞蟻到每一個相鄰點的概
率的計算公式為
公式有所修改
其中參數(shù)Pijk表示螞蟻k由結點i轉移到結點j的概率,參數(shù)Tij(t)表示t時刻
8在結點i、 j連線上殘留的信息量,參數(shù)Tlij為結點i轉移到j的啟發(fā)信息,參數(shù)(X為
在路徑ij上殘留信息的重要程度,參數(shù)e為啟發(fā)信息的重要程度,參數(shù)tabuk用以 記錄螞蟻k當前所走過的城市。
上述的多目標點路徑規(guī)劃方法,其中,步驟(d.8)中對螞蟻所經(jīng)過的路徑上
的信息素濃度的更新公式為
^(t)二(l一/ )7y(t) + ;OAfij
m
k=l
o,其他
A《
,當?shù)趉只螞蟻在時刻t和t+l之間經(jīng)過z)'時,
其中參數(shù)(1-P)表示信息素消逝程度,參數(shù)Tij(t)表示t時刻在結點i、 j連線 上殘留的信息量,參數(shù)A Tijk表示第k只螞蟻在本次循環(huán)中留在路徑ij上的信息量, 參數(shù)ATij表示本次循環(huán)中路徑ij上的信息量的增量,參數(shù)Q為常數(shù),參數(shù)Lk表示 第k只螞蟻在本次循環(huán)中所走過的路徑的長度。
本發(fā)明另外揭示了一種多目標點路徑規(guī)劃裝置,包括
地理信息數(shù)據(jù)模塊,存儲地理數(shù)據(jù)中網(wǎng)絡層的屬性數(shù)據(jù)集信息,其中該屬性 數(shù)據(jù)集信息包括各個路徑上的信息素濃度;
網(wǎng)絡層屬性數(shù)據(jù)集讀取模塊,從該地理信息數(shù)據(jù)模塊中讀取地理數(shù)據(jù)中網(wǎng)絡 層的屬性數(shù)據(jù)集信息;
初始化模塊,按定義的數(shù)據(jù)結構存儲數(shù)據(jù)并初始化各個路徑上的信息素濃度;
接收請求模塊,接收用戶路徑規(guī)劃的請求;
起點終點信息獲取模塊,獲取輸入的路徑規(guī)劃的起始點和所有的終止點的信 息并存儲;
蟻群算法搜索模塊,通過蟻群算法搜索從起點到終點的路徑,其中該起點的 初始值是該起點終點信息獲取模塊獲取到的該路徑規(guī)劃的起始點,該終點的初始值 是該起點終點信息獲取模塊獲取到的該路徑規(guī)劃的所有終止點中的第一個;
路徑査找判斷模塊,判斷是否搜索到路徑;
搜索失敗反饋模塊,根據(jù)該路徑查找判斷模塊判斷出沒有搜索到路徑,反饋 失敗的信息;
最優(yōu)路徑信息記錄模塊,在該路徑查找判斷模塊判斷出搜索到路徑后,記錄最優(yōu)路徑信息,并更新起點信息為當前終點的信息;
下一終點存在性判斷模塊,判斷是否存在下一個終止點;
路徑搜索結果反饋模塊,根據(jù)該下一終點存在性判斷模塊判斷出不存在下一 個終止點,反饋路徑搜索的結果;
終點信息更新模塊,根據(jù)該下一終點存在性判斷模塊判斷出仍存在下一個終 止點時,更新終點信息為下一個終止點,然后返回該蟻群算法搜索模塊進行運作。
上述的多目標點路徑規(guī)劃裝置,其中,該地理信息數(shù)據(jù)模塊中的屬性數(shù)據(jù)集 信息還包括網(wǎng)絡層中的道路對象標識、路徑起始點和終止點的標識。
本發(fā)明對比現(xiàn)有技術有如下的有益效果本發(fā)明借助蟻群算法實現(xiàn)了自主導 游系統(tǒng)中單目標點和多目標點的路徑規(guī)劃。蟻群算法不僅利用了正反饋原理,在一 定程度上也加快進化進程,而且本質上是一種并行的算法。蟻群算法通過在不同個 體之間不斷進行信息交流和傳遞,從而相互協(xié)作,有利于發(fā)現(xiàn)較好的解決方案。對 比現(xiàn)有技術,借鑒蟻群算法后的路徑搜索在搜索效率和搜索結果上都取得了長足的 進步。
圖1是本發(fā)明的多目標點路徑規(guī)劃方法的較佳實施例的流程圖。 圖2是圖1所示流程中的其中一個步驟的子流程圖。 圖3為是圖2所示流程中的其中一個步驟的子流程圖。 圖4是本發(fā)明的多目標點路徑規(guī)劃裝置的較佳實施例的原理圖。
具體實施例方式
下面結合附圖和實施例對本發(fā)明作進一步的描述。
圖1示出了本發(fā)明的多目標點路徑規(guī)劃方法的總體流程。請參見圖1,下面 是對方法中各個步驟的詳細描述。
步驟S101:從地理信息數(shù)據(jù)100中讀取地理數(shù)據(jù)中網(wǎng)絡層的屬性數(shù)據(jù)集信息。
地理信息數(shù)據(jù)100的存儲是非常重要的,在進行路徑規(guī)劃之前需要處理好數(shù) 據(jù)的存儲問題,這一過程通常稱為地理信息的預處理。
在地理信息系統(tǒng)(GIS)中,空間的物被抽象為點、線、面,復雜地物通過點、
10線、面的組合進行表達。點、線、面是GIS系統(tǒng)中地圖數(shù)據(jù)的最基本數(shù)據(jù)類型,在 系統(tǒng)中分層管理。例如,系統(tǒng)中的地圖數(shù)據(jù)采用S叩erMap Deskpro工具來管理, SuperMap Deskpro是基于SuperMap GIS核心技術研制的通用桌面地理信息處理平 臺和GIS應用工具。
在地理信息的預處理階段,系統(tǒng)主要應用DeskPro工具的地圖編輯功能,完 成地圖數(shù)據(jù)的預處理。在該軟件中讀入的地圖數(shù)據(jù)是矢量化的,地圖的信息被分類 保存在不同的數(shù)據(jù)集當中,比如點數(shù)據(jù)集,線數(shù)據(jù)集,面數(shù)據(jù)集,文本數(shù)據(jù)集。對 每個層的地圖可以進行單獨操作、修改、添加、刪除等操作,最后根據(jù)需要選擇合 并圖層以制成地圖。
為了能夠實現(xiàn)路徑査找,在地圖數(shù)據(jù)中需要添加一層網(wǎng)絡層的屬性數(shù)據(jù)集, 這個過程稱為拓撲發(fā)現(xiàn)。在該屬性數(shù)據(jù)集中存儲了網(wǎng)絡層中的道路對象標識、路徑 起始點和終止點的ID,路徑上的信息素濃度等信息。其中,Trail (路徑上的信息 素濃度)是為了適應蟻群算法的需要而添加的。在進行數(shù)據(jù)處理時,需要借助 Deskpro工具中的拓撲結構生成功能,產(chǎn)生網(wǎng)絡層屬性數(shù)據(jù)集的各個數(shù)據(jù)。關于該 圖層的屬性數(shù)據(jù)的結構請參考表一。
SmID簡單線對象的標識
SmUserID內置的標識字段
SmFNode SmTNode地圖起始結點的ID 地圖終止結點的ID
SmResistanceA SMResistanceB SmLength默認正向阻抗系數(shù) 默認反向阻抗系統(tǒng) 路徑的長度
Trail路徑上信息素的濃度
SmTopoErrorTopo錯誤的類型序號
網(wǎng)絡層屬性數(shù)據(jù)集的 屬性數(shù)據(jù)說明
表一
步驟S102:在內存中按定義好的數(shù)據(jù)結構存儲數(shù)據(jù),同時初始化各條邊的十 息素濃度。
步驟S103:接收用戶路徑規(guī)劃的請求。
步驟S104:獲取路徑規(guī)劃的起始點和所有的終止點信息,并加以存儲。
'、■-
11步驟S105:通過蟻群算法搜索從起點到終點的路徑,其中起點的初始值是步 驟S104中輸入的該路徑規(guī)劃的起始點,該終點的初始值為步驟S104中輸入的該些 終止點中的第一個。
步驟S106:判斷在步驟S105中是否搜索到路徑,如果搜索到則進入步驟S107, 否則轉入步驟SllO。
步驟S107:記錄最優(yōu)路徑信息,并將起點信息更新為當前終點的信息。
步驟S108:判斷是否存在下一個終止點,如果存在則進入步驟S109,否則轉 入步驟Slll。
步驟S109:將終點信息更新為下一個終止點,返回步驟S105。 步驟S110:反饋搜索失敗的信息,流程結束。
步驟S111:反饋路徑搜索的結果,流程結束。
上述步驟中的步驟S105應用現(xiàn)有的蟻群算法來搜索路徑,其進一步的細化請
參見圖2。在說明圖2的步驟之前,對蟻群算法的原理做一概述。
蟻群優(yōu)化(Ant Colony Optimization, ACO)算法源于模擬自然界中真實蟻群的覓
食行為,是20世紀90年代意大利的M.Dorigo等學者提出的。近10年來的研究
成果表明ACO作為隨機搜索算法,在組合優(yōu)化等領域很有潛力,具有如下優(yōu)點
(l)較強的魯棒性對基本蟻群算法模型稍加修改,便可以應用于其它問題;(2)
分布式計算蟻群算法是一種基于種群的進化算法,具有本質并行性,易于并行實
現(xiàn);(3)分布式計算蟻群算法是一種基于種群的進化算法,具有本質并行性,
易于并行實現(xiàn);(4)易于與其它方法給合蟻群算法很容易與多種啟發(fā)式算法結
合,以改善算法的性能;(5)在動態(tài)環(huán)境下,表現(xiàn)出高度的靈活性和健壯性。
為了弄清什么是螞蟻優(yōu)化算法,首先對自然界的蟻群覓食做一個簡短的說明。
螞蟻在覓食過程中能夠在所經(jīng)過的路徑上分泌一種稱為信息素的物(pheromone),
而且螞蟻在覓食過程中能夠感知這種物質的存在及其強度,并以此指導自己的運動
方向,它們傾向于朝著該物質強度高的方向移動。因此,由大量螞蟻組成的集體覓
食行為就表現(xiàn)出一種信息正反饋現(xiàn)象某一路徑越短,該路徑上走過的螞蟻就越多,
所留下的信息素(pheromone)強度也就越大,后來者選擇該路徑的概率因此也就
越大。螞蟻個體之間依賴其在網(wǎng)絡中的經(jīng)歷修改路由表,并選擇最短路徑以達到搜
索食物的目的。蟻群優(yōu)化算法就是模擬蟻群這一覓食行為的優(yōu)化算法。為了便于理解,以求解平面上n個城市的TSP問題為例。為了模擬實際螞蟻的行為,首先引進如下參數(shù)設m是蟻群中螞蟻的數(shù)量,*(^=1,2,...,11)表示城市1和城市j之間的距離,bi(t)表示t時刻位于城市i的螞蟻的個數(shù),則有
m
=2>(t)
i=l
Tij(t)表示t時刻在城市i, j連線上殘留的信息量。初始時刻,各條路徑上信息
量相等,設Tij(0^C(C為常數(shù))。螞蟻^1^=1,2,...,111)在運動過程中,根據(jù)各條路徑上
的信息量決定轉移方向。Pijk(t)表示在t時刻螞蟻k由城市i轉移到城市j的概率
h(麵
z闊U
0, y' e ta6
其中T!ij為先驗知識或稱為能見度,在TSP問題中為城市i轉移到城市j的啟發(fā)信息, 一般取Tl『l/dij; (X為在路徑ij上殘留信息的重要程度;P為啟發(fā)信息的重
要程度;與實際蟻群不同,人工蟻群系統(tǒng)具有記憶功能,tabuk(]^1, 2,...,m)用以記錄螞蟻k當前所走過的城市,稱為"禁忌表"(下一步不允許選擇的城市)。集合tabuk隨著進化過程作動態(tài)調整。經(jīng)過n個時刻,所有螞蟻都完成了一次周游。它們本次周游的"禁忌表"將滿,此時應清空,將當前螞蟻所在城市置入tabUk,準備下一次周游。這時計算每只螞蟻走過的路徑Lk,并保存最短路徑Lkmin(Lkmin=minLk,k=l,...,m)。隨著時間的推移,以前留下的信息逐漸消逝,用參數(shù)1-P表示信息消逝程度,即可以理解為是在模擬信息素(pheromone)隨時間揮發(fā)的過程。螞蟻完成一次循環(huán)以后,各路徑上的信息量要作調整
A《
A,當?shù)趉只螞蟻在時刻沐t+l之間經(jīng)過々對,
(0,其他
其中,A Tijk表示第k只螞蟻在本次循環(huán)中留在路徑ij上的信息量,A Tij表示本次
13循環(huán)中路徑ij上的信息量的增量,Q為常數(shù),U表示第k只螞蟻在本次循環(huán)中所走過的路徑的長度。 一般設置周游次數(shù)計數(shù)器NC,當達到設定值時結束,最短路徑為Lmin=minLkminl(l= 1,2,... ,NC)。
這里有幾個問題值得注意(1)在螞蟻的實際覓食過程中所經(jīng)過的地方都會
留下信息素(pheromone),但在AC0中,僅僅在"螞蟻"沿原路返回"蟻窩"(即起始點)時才會"留下人工信息素(pheromone)"(更新信息的重要程度);(2)螞蟻在覓食時, 一般不一定或不會完全按原路返回的,但在ACO中,"人工螞蟻"會沿原路返回;無論是自然界的蟻群覓食還是ACO,盡管存在差異,但都存在信息素的揮發(fā)問題。
基于上述的蟻群優(yōu)化算法的原理,結合圖2的流程,對蟻群算法搜索起點到終點的路徑的過程作進一步的描述。
步驟S200:初始化迭代次數(shù)NC,可初始化為0。
步驟S201:判斷迭代次數(shù)NC是否到達最大循環(huán)迭代次數(shù),例如判斷NC是否小于最大循環(huán)迭代次數(shù),如果NC小于最大循環(huán)迭代次數(shù)則進入步驟S202,否則轉入步驟S217。
步驟S202:設置參數(shù)值,初始化所有的螞蟻狀態(tài)為活動狀態(tài)(Running),將螞蟻已經(jīng)訪問的結點數(shù)置為1。
步驟S203:判斷是否有Running狀態(tài)的螞蟻,如果有則進入步驟S205,否則進入步驟S204。
步驟S204:更新信息素濃度和最優(yōu)路徑信息,迭代次數(shù)NC加1,然后返回步驟S201。
步驟S205:選擇一只Running狀態(tài)的螞蟻并將其編號為k,得到與螞蟻k當前位置相鄰的、未到達過的結點集合。
步驟S206:獲得螞蟻k到每一個相鄰點的距離,以及對應路徑上的信息素濃度,根據(jù)公式計算出螞蟻k到每一個相鄰點的概率。公式如下
14<formula>formula see original document page 15</formula>
其中參數(shù)表示螞蟻k由結點i轉移到結點j的概率,參數(shù)Tij(t)表示t時刻在結點i、 j連線上殘留的信息量,參數(shù)Tlij為結點i轉移到J的啟發(fā)信息,為先驗知
識或稱為能見度,參數(shù)a為在路徑ij上殘留信息的重要程度,參數(shù)P為啟發(fā)信息的重要程度,參數(shù)tabuk用以記錄螞蟻k當前所走過的城市。
步驟S207:判斷是否有可移動的結點。如有有則進入步驟S208,否則進入步驟S215。
步驟S208:選擇一個概率值最大的相鄰點作為螞蟻k要移動到的下一個結點。步驟S209:判斷是否存在兩個或者兩個以上的概率最大的相鄰點。如果存在則進入步驟S210,否則轉入步驟S211。
步驟S210:用隨機數(shù)確定螞蟻移動到的結點。步驟S211:螞蟻k移動到選定的概率最大的結點。
步驟S212:判斷螞蟻k所在的結點是否是終點。如果是則轉入步驟S216,否則進入步驟S213。
步驟S213:判斷螞蟻k經(jīng)過的路徑長度是否小于最大搜索范圍。如果是則返回步驟S203,否則進入步驟S214。
步驟S214:螞蟻k路徑搜索過程結束,返回步驟S203。步驟S215:將螞蟻k的狀態(tài)置為死亡(DEAD),然后返回步驟S203。步驟S216:將螞蟻k的狀態(tài)置為到達(REACH),然后返回步驟S203。步驟S217:結束對當前終點的路徑搜索,流程結束。
上述步驟中,步驟S204的進一步細化請參見圖3。下面結合圖3,對更新信
息素濃度和最優(yōu)路徑信息的過程作進一步的說明。
步驟S300:判斷是否有Running狀態(tài)的螞蟻。如果有則轉入步驟S306,否則進入步驟S301。
步驟S301:判斷是否存在未訪問過的REACH狀態(tài)的螞蟻,如果存在則進入步驟S302,否則轉入步驟S307。
步驟S302:計算螞蟻經(jīng)過的路徑長度。
步驟S303:比較步驟S302中計算出的路徑長度是否小于已有的最優(yōu)長度。如果是則進入步驟S304,否則轉入步驟S305。步驟S304:更新最優(yōu)路徑的信息。
步驟S305:根據(jù)公式更新螞蟻所經(jīng)過的路徑上的信息素濃度。
信息素更新的公式如下、(0 = 0-p)r,j(t)十/ Arij
k=l
l f A,當?shù)趉只螞蟻在時刻t和t+l之間經(jīng)過々'時,
A《=jLk
0,其他
其中參數(shù)(l-p)表示信息素消逝程度,即可理解為是在模擬信息素隨著時間揮發(fā)的過程,參數(shù)^(t)表示t時刻在結點i、 j連線上殘留的信息量,即為最新的信息素濃度,參數(shù)ATijk表示第k只螞蟻在本次循環(huán)中留在路徑ij上的信息量,參數(shù)
A Tij表示本次循環(huán)中路徑ij上的信息量的增量,參數(shù)Q為常數(shù),表示播撒信息素的總量,參數(shù)Lk表示第k只螞蟻在本次循環(huán)中所走過的路徑的長度。
步驟S306:選擇一只Running狀態(tài)的螞蟻將其編號為k,得到與螞蟻k當前位置相鄰的、未到達過的結點集合,該過程結束。
步驟S307:將NC加1,繼續(xù)下一次的迭代,該過程結束。
在具體實現(xiàn)時參數(shù)a、 0、 P的取值對程序運行的結果有很大的影響,應根據(jù)不同地圖的比例尺大小而進行更改。當a變大時則表明信息素在對螞蟻進行路徑尋找時的作用變大,而參數(shù)e則是表示路徑長度對螞蟻選擇路徑的影響。參數(shù)P是揮發(fā)比例,P過大,算法的多樣性越大,不穩(wěn)定性也越強,揮發(fā)的越少則算法的多樣性越少,尋找到的路徑比較單一,而且最優(yōu)率低。
基于上述的方法,本發(fā)明還揭示了一種多目標點路徑規(guī)劃裝置,裝置原理請參見圖4所示。
裝置包括地理信息數(shù)據(jù)模塊400、網(wǎng)絡層屬性數(shù)據(jù)讀取模塊401、初始化模塊402、接收請求模塊403、起點終點信息獲取模塊404、蟻群算法搜索模塊405、路
16徑查找判斷模塊406、搜索失敗反饋模塊407、最優(yōu)路徑信息記錄模塊408、下一 終點存在性判斷模塊409、路徑搜索結果反饋模塊410、終點信息更新模塊411。
地理信息數(shù)據(jù)模塊400存儲地理數(shù)據(jù)中網(wǎng)絡層的屬性數(shù)據(jù)集信息,該屬性數(shù)據(jù) 集中存儲了網(wǎng)絡層中的道路對象標識、路徑起始點和終止點的ID,路徑上的信息 素濃度等信息。其中,Trail (路徑上的信息素濃度)是為了適應蟻群算法的需要 而添加的。在進行數(shù)據(jù)處理時,需要借助Deskpro工具中的拓撲結構生成功能,產(chǎn) 生網(wǎng)絡層屬性數(shù)據(jù)集的各個數(shù)據(jù)。關于該圖層的屬性數(shù)據(jù)的結構請參考上述的表
網(wǎng)絡層屬性數(shù)據(jù)集讀取模塊401從地理信息數(shù)據(jù)模塊400中讀取地理數(shù)據(jù)中網(wǎng) 絡層的屬性數(shù)據(jù)集信息。初始化模塊402按定義的數(shù)據(jù)結構存儲數(shù)據(jù)并初始化各個 路徑上的信息素濃度。接收請求模塊403接收用戶路徑規(guī)劃的請求。起點終點信息 獲取模塊404獲取輸入的路徑規(guī)劃的起始點和所有的終止點的信息并加以存儲。蟻 群算法搜索模塊405通過蟻群算法搜索從起點到終點的路徑,其中起點的初始值是 起點終點信息獲取模塊404獲取到的路徑規(guī)劃的起始點,終點的初始值是起點終點 信息獲取模塊404獲取到的路徑規(guī)劃的所有終止點中的第一個。蟻群算法搜索模塊 404執(zhí)行如圖2和圖3所示的步驟。路徑査找判斷模塊406判斷是否搜索到路徑, 如果判斷出沒有搜索到路徑則由搜索失敗反饋模塊407反饋失敗信息。如果判斷出 搜索到路徑則由最優(yōu)路徑信息記錄模塊408記錄最優(yōu)路徑信息,并更新起點信息為 當前終點的信息。下一終點存在性判斷模塊判斷是否還存在下一個終止點,如果判 斷出不存在下一個終止點則由路徑搜索結果反饋模塊410反饋路徑搜索的結果,如 果判斷仍存在下一個終止點時則由終點信息更新模塊將終點信息更新為下一個終 止點,然后返回蟻群算法搜索模塊405進行運作。
總之,本發(fā)明借助蟻群優(yōu)化算法來搜索路徑,相對于傳統(tǒng)的路徑搜索算法具有 更強的魯棒性和靈活性,在城區(qū)和景區(qū)地圖的搜索過程中能較好的解決路徑搜索的 問題。
上述實施例是提供給本領域普通技術人員來實現(xiàn)或使用本發(fā)明的,本領域普通 技術人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對上述實施例做出種種修改或變 化,因而本發(fā)明的保護范圍并不被上述實施例所限,而應該是符合權利要求書提到的創(chuàng)新性特征的最大范圍。
權利要求
1、一種多目標點路徑規(guī)劃方法,包括(1)從地理信息數(shù)據(jù)中讀取地理數(shù)據(jù)中網(wǎng)絡層的屬性數(shù)據(jù)集信息,其中該屬性數(shù)據(jù)集信息包括各個路徑上的信息素濃度;(2)按定義的數(shù)據(jù)結構存儲數(shù)據(jù),同時初始化各個路徑上的信息素濃度;(3)接收用戶路徑規(guī)劃的請求;(4)獲取輸入的路徑規(guī)劃的起始點和所有的終止點的信息并存儲;(5)通過蟻群算法搜索從起點到終點的路徑,其中該起點的初始值是步驟(4)中輸入的該路徑規(guī)劃的起始點,該終點的初始值是步驟(4)輸入的該些終止點中的第一個;(6)判斷是否搜索到路徑,如果搜索到則進入步驟(7),否則轉入步驟(10);(7)記錄最優(yōu)路徑信息,并更新起點信息為當前終點的信息;(8)判斷是否存在下一個終止點,如果存在則進入步驟(9),否則轉入步驟(11);(9)更新終點信息為下一個終止點,返回步驟(5);(10)搜索失敗,反饋失敗的信息,流程結束;(11)搜索結束,反饋路徑搜索的結果。
2、 根據(jù)權利要求1所述的多目標點路徑規(guī)劃方法,其特征在于,步驟(5) 進一步包括(a) 初始化迭代次數(shù)NC;(b) 判斷迭代次數(shù)NC是否到達最大循環(huán)迭代次數(shù),如果未到最大循環(huán)迭代 次數(shù)則進入步驟(C),否則結束對當前終點的路徑搜索;(c) 設置蟻群算法中的參數(shù)值,初始化所有的螞蟻狀態(tài)為運行狀態(tài),螞蟻已 經(jīng)訪問的結點數(shù)置為1;(d) 判斷是否有運行狀態(tài)的螞蟻,如果有則進入步驟(e),否則更新信息 素濃度和最優(yōu)路徑信息,迭代次數(shù)NC加1,然后返回步驟(b);(e) 選擇一只運行狀態(tài)的螞蟻將其編號為k,得到與螞蟻k當前位置相鄰的、未到達過的結點集合;(f) 獲得螞蟻k到每一個相鄰點的距離以及對應路徑上的信息素濃度,計算 出螞蟻到每一個相鄰點的概率;(g) 判斷是否有可移動的結點,如果有則進入步驟(h),否則螞蟻k的狀 態(tài)置為死亡然后轉入步驟(d);(h) 選擇一個概率值最大的相鄰點作為螞蟻k要移動到的下一個結點;(i) 判斷是否存在兩個或者兩個以上的概率最大的相鄰點,如果存在則進入 步驟(j),否則進入步驟(k);(j)用隨機數(shù)確定螞蟻移動到的結點;(k)螞蟻k移動到選定的概率最大的結點;(1)判斷螞蟻k所在的結點是否為終點,如果不是終點則進入步驟(m), 否則將螞蟻k的狀態(tài)設為到達并轉入步驟(d);(m)判斷螞蟻經(jīng)過的路徑長度是否小于最大搜索范圍,如果小于最大搜索 范圍則返回步驟(f),否則螞蟻k的路徑搜索過程結束并返回步驟(d)。
3、根據(jù)權利要求2所述的多目標點路徑規(guī)劃方法,其特征在于,步驟(d) 中更新信息素濃度和最優(yōu)路徑信息并對迭代次數(shù)NC加1的過程進一步包括(d.l)判斷是否有運行狀態(tài)的螞蟻,如果有則進入步驟(d.2),否則進入步 驟(d.3);(d.2)選擇一只運行狀態(tài)的螞蟻將其編號為k,得到與螞蟻k當前位置相鄰 的、未到達過的結點集合,該過程結束;(d.3)判斷是否有沒有訪問過的到達狀態(tài)的螞蟻,如果沒有則進入步驟(d.4), 否則進入步驟(d.5);(d.4)將迭代次數(shù)NC的值加1,繼續(xù)下一次的迭代,該過程結束;(d.5)計算螞蟻經(jīng)過的路徑長度;(d.6)判斷該路徑長度是否小于已有的最優(yōu)長度,如果小于則進入步驟(d.7), 否則進入步驟(d.8);(d.7)更新最優(yōu)路徑的信息;(d.8)更新螞蟻所經(jīng)過的路徑上的信息素濃度。
4、 根據(jù)權利要求l所述的多目標路徑規(guī)劃方法,其特征在于,該屬性數(shù)據(jù)集 信息還包括網(wǎng)絡層中的道路對象標識、路徑起始點和終止點的標識。
5、 根據(jù)權利要求2所述的多目標路徑規(guī)劃方法,其特征在于,步驟(f)中螞蟻到每一個相鄰點的概率的計算公式為公式有所修改.[7〃 ] ) gS闊U附g /Cf6w,o,y e勵w其中參數(shù)Pijk表示螞蟻k由結點i轉移到結點j的概率,參數(shù)Tij(t)表示t時刻在結點i、 j連線上殘留的信息量,參數(shù)iiij為結點i轉移到j的啟發(fā)信息,參數(shù)a為 在路徑ij上殘留信息的重要程度,參數(shù)e為啟發(fā)信息的重要程度,參數(shù)tabuk用以 記錄螞蟻k當前所走過的城市。
6、根據(jù)權利要求3所述的多目標路徑規(guī)劃方法,其特征在于,步驟(d.8)中對螞蟻所經(jīng)過的路徑上的信息素濃度的更新公式為 ni(一(l-yO)rij(t) + pArijm k=l旦0,其他,當?shù)趉只螞蟻在時刻t和t+1之間經(jīng)過々'時,其中參數(shù)(1-p)表示信息素消逝程度,參數(shù)Ty(t)表示t時刻在結點i、 j連線 上殘留的信息量,參數(shù)A Tijk表示第k只螞蟻在本次循環(huán)中留在路徑ij上的信息量, 參數(shù)ATij表示本次循環(huán)中路徑ij上的信息量的增量,參數(shù)Q為常數(shù),參數(shù)U表示 第k只螞蟻在本次循環(huán)中所走過的路徑的長度。
7、 一種多目標點路徑規(guī)劃裝置,包括地理信息數(shù)據(jù)模塊,存儲地理數(shù)據(jù)中網(wǎng)絡層的屬性數(shù)據(jù)集信息,其中該屬性數(shù)據(jù)集信息包括各個路徑上的信息素濃度;網(wǎng)絡層屬性數(shù)據(jù)集讀取模塊,從該地理信息數(shù)據(jù)模塊中讀取地理數(shù)據(jù)中網(wǎng)絡層的屬性數(shù)據(jù)集信息;初始化模塊,按定義的數(shù)據(jù)結構存儲數(shù)據(jù)并初始化各個路徑上的信息素濃度;接收請求模塊,接收用戶路徑規(guī)劃的請求;起點終點信息獲取模塊,獲取輸入的路徑規(guī)劃的起始點和所有的終止點的信息并存儲;蟻群算法搜索模塊,通過蟻群算法搜索從起點到終點的路徑,其中該起點的初始值是該起點終點信息獲取模塊獲取到的該路徑規(guī)劃的起始點,該終點的初始值是該起點終點信息獲取模塊獲取到的該路徑規(guī)劃的所有終止點中的第一個;路徑查找判斷模塊,判斷是否搜索到路徑;搜索失敗反饋模塊,根據(jù)該路徑查找判斷模塊判斷出沒有搜索到路徑,反饋失敗的信息;最優(yōu)路徑信息記錄模塊,在該路徑査找判斷模塊判斷出搜索到路徑后,記錄最優(yōu)路徑信息,并更新起點信息為當前終點的信息;下一終點存在性判斷模塊,判斷是否存在下一個終止點;路徑搜索結果反饋模塊,根據(jù)該下一終點存在性判斷模塊判斷出不存在下一個終止點,反饋路徑搜索的結果;終點信息更新模塊,根據(jù)該下一終點存在性判斷模塊判斷出仍存在下一個終止點時,更新終點信息為下一個終止點,然后返回該蟻群算法搜索模塊進行運作。
8、根據(jù)權利要求7所述的多目標點路徑規(guī)劃裝置,其特征在于,該地理信息數(shù)據(jù)模塊中的屬性數(shù)據(jù)集信息還包括網(wǎng)絡層中的道路對象標識、路徑起始點和終止點的標識。
全文摘要
本發(fā)明公開了一種多目標點的路徑規(guī)劃方法和裝置,解決了自主導游中的單目標點和多目標點的路徑規(guī)劃問題。其技術方案為該方法包括1)讀取地理數(shù)據(jù)中網(wǎng)絡層的屬性數(shù)據(jù)集信息;2)按定義的數(shù)據(jù)結構存儲數(shù)據(jù),初始化信息素濃度;3)接收路徑規(guī)劃請求;4)獲取起始點和終止點并存儲;5)用蟻群算法搜索起點到終點的路徑;6)判斷是否搜索到路徑,如是則進入步驟7),否則轉入步驟10);7)記錄最優(yōu)路徑信息,并更新起點信息為當前終點信息;8)判斷是否存在下一個終止點,如是則進入步驟9),否則轉入步驟11);9)更新終點信息為下一個終止點,返回步驟5);10)反饋搜索失敗的信息,流程結束;11)反饋路徑搜索的結果。
文檔編號G01C21/26GK101493329SQ200810032948
公開日2009年7月29日 申請日期2008年1月23日 優(yōu)先權日2008年1月23日
發(fā)明者吳春元, 王麗蘋, 軍 董 申請人:華東師范大學