【技術實現步驟摘要】
本專利技術涉及多目標點的圖搜索,具體涉及一種基于圖搜索技術的多目標點搜索方法。
技術介紹
1、圖搜索技術應用廣泛,通常用來解決從a點到b點的最優路徑問題。常用的圖搜索算法有a*算法、dijkstra算法等,在路徑規劃問題中,以a*算法為例,圖搜索算法的基本流程為將搜索空間建模成圖結構,創建一個容器來存儲要訪問的節點,一般用openlist表示;創建一個容器來存儲訪問過的節點,一般用closelist來表示;將起點加入openlist,然后開始循環:循環過程為從openlist中選取一個節點,獲取該節點可以到達的節點,判斷到達的節點是否在openlist和closelist中,如果該節點是一個新的節點即未在openlist和closelist中,則將該節點添加到openlist中;如果該節點已經存在于openlist或closelist中,則判斷從起點到達該節點的路徑的代價是否小于已存在的節點的代價,如果小于,則將該節點替換之前的節點并添加到openlist中,循環跳出的條件為判斷是否到達終點或者openlist為空?;诖丝傻玫揭粭l從起點到終點的最優路徑或次優路徑。
2、然而現有的圖搜索算法無法實現多目標點的搜索問題,在面臨多目標點搜索時,如起點為s,目標點集為[a,b,c]時,往往是先搜索到s到a的路徑,然后將a當做起點搜索到b的路徑,如此反復,最終路徑為s→a→b→c,該路徑中相鄰節點的路徑為最優,但是無法保證獲取一條到達所有目標點的路徑或串聯所有目標點的路徑最優。通常解決這個問題的方法是人為指定目標點的先后順序
技術實現思路
1、針對現有技術存在的上述問題,本專利技術提供了一種基于圖搜索技術的多目標點搜索方法。
2、本專利技術采用以下的技術方案:
3、一種基于圖搜索技術的多目標點搜索方法,包括以下步驟:
4、步驟1:創建圖結構搜索空間,圖結構搜索空間中的節點使用圖節點結構體表示,確定可聯通的圖節點的邊的代價;
5、步驟2:確定起點位置所屬圖節點s,確定所有的目標圖節點;創建搜索節點s,設置搜索節點s中實際代價的值為0,搜索節點中圖節點指針指向起點,搜索節點中的前序搜索節點指針設置為空;創建兩個搜索節點容器openlist和closelist,openlist用來存放要訪問的搜索節點,closelist用來存放已經訪問過的搜索節點;將搜索節點s放入openlist中;
6、步驟3:判斷openlist是否為空,如果為空則搜索失敗退出,不為空則執行步驟4;
7、步驟4:從openlist中挑選cost的值最小的搜索節點,用best表示;
8、步驟5:判斷搜索節點best是否完成搜索任務,完成搜索任務是指搜索節點best的回溯路徑中包含所有的目標圖節點,完成搜索任務則退出,最優路徑為搜索節點best的回溯路徑,未完成搜索任務則執行步驟6;
9、步驟6:獲得搜索節點best指向的圖節點能到達的所有圖節點的集合subs;
10、步驟7:判斷subs是否為空,為空則跳至步驟3,不為空執行步驟8;
11、步驟8:從subs中取得一個圖節點sub,求經由搜索節點best到達圖節點sub的實際代價值g;
12、步驟9:判斷openlist和closelist中是否有搜索節點指向圖節點sub,如沒有,則跳至步驟10;如果有,則跳至步驟11;
13、步驟10:新建一個搜索節點n,搜索節點n的圖節點指針指向圖節點sub,n的前序搜索節點指針指向best,計算搜索節點n的cost的值,然后將搜索節點n插入到openlist中,跳至步驟7;
14、步驟11:將openlist和closelist中指向圖節點sub的搜索節點集合記為searchnodeset;
15、步驟12:判斷searchnodeset是否為空,為空則跳至步驟7,不為空執行步驟13;
16、步驟13:從searchnodeset中取得一個搜索節點search_node,判斷搜索節點search_node的回溯路徑和搜索節點best的回溯路徑是否穿過了相同的目標圖節點,如果是,則執行步驟14,如果不是執行步驟16;
17、步驟14:比較搜索節點search_node中記錄的實際代價g(search_node)與步驟8中的實際代價值g的大小,如果g<g(search_node),則執行步驟15,否則跳至步驟12;
18、步驟15:如果搜索節點search_node存在于openlist中,更新搜索節點search_node的實際代價g(search_node)=g,將search_node的前序搜索節點指針指向搜索節點best,計算search_node的cost的值;如果搜索節點search_node存在于closelist中,更新搜索節點search_node的實際代價g(search_node)=g,將search_node的前序搜索節點指針指向best,計算search_node的cost的值,將搜索節點search_node添加到openlist中,從closelist中刪除搜索節點search_node,跳至步驟12;
19、步驟16:新建一個搜索節點m,m的圖節點指針指向圖節點sub,m的前序搜索節點指針指向搜索節點best,計算搜索節點m的cost的值,將m節點插入到openlist中,跳至步驟12。
20、優選地,任一搜索節點x的cost的值為cost=g(x)+h(x),其中,g(x)表示從起點圖節點s到達搜索節點x所指向的圖節點的實際代價,即圖節點s到x指向的圖節點的距離;
21、h(x)定義為任務完成進度,h(x)=max-i/n*max+dis(x,nearest_goal),其中,max為預設的一個常量值,n為目標圖節點的個數,i為從圖節點s到搜索節點x所指向的圖節點的路徑中包含的目標圖節點個數,dis(x,nearest_goal)為當前搜索節點x指向的圖節點到最近的未經過的目標圖節點的距離。
22、優選地,步驟8中,搜索節點best到達圖節點sub的實際代價值g為:
23、g=g(best)+c(best.node,sub);
24、g(best)表示從起點圖節點s到達搜索節點best所指向的圖節點的實際代價,即圖節點s到best指向的圖節點的距離;c(best.node,sub)表示搜索節點best指向的圖節點與圖節點sub的邊的值,即best指向的圖節點與圖節點sub的距離。
25、本專利技術具有的有益效果是:
26、相較于傳統的圖搜索方法只能在一次搜索過程中搜索一個目標點,本專利技術可在一次搜索過程中獲取串聯多個目標點的最優路徑。本專利技術通過判斷到達本文檔來自技高網...
【技術保護點】
1.一種基于圖搜索技術的多目標點搜索方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于圖搜索技術的多目標點搜索方法,其特征在于,任一搜索節點X的cost的值為cost=g(X)+h(X),其中,g(X)表示從起點圖節點s到達搜索節點X所指向的圖節點的實際代價,即圖節點s到X指向的圖節點的距離;
3.根據權利要求1所述的一種基于圖搜索技術的多目標點搜索方法,其特征在于,步驟8中,搜索節點Best到達圖節點sub的實際代價值g為:
【技術特征摘要】
1.一種基于圖搜索技術的多目標點搜索方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于圖搜索技術的多目標點搜索方法,其特征在于,任一搜索節點x的cost的值為cost=g(x)+h(x),其中,g(x)表示從...
【專利技術屬性】
技術研發人員:張銳,王琪,
申請(專利權)人:青島鋼鐵俠科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。