亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種直線優(yōu)化的最短路徑搜索方法

文檔序號(hào):7929860閱讀:252來(lái)源:國(guó)知局
專利名稱:一種直線優(yōu)化的最短路徑搜索方法
技術(shù)領(lǐng)域
本發(fā)明涉及路徑搜索領(lǐng)域,具體涉及一種直線優(yōu)化的最短路徑搜 索方法。
背景技術(shù)
最短路徑法求解最為著名的是Dijkstra搜索方法。原始Dijkstra搜 索方法將網(wǎng)絡(luò)結(jié)點(diǎn)分為未標(biāo)記結(jié)點(diǎn)、臨時(shí)標(biāo)記結(jié)點(diǎn)和永久標(biāo)記結(jié)點(diǎn)三 種類型。網(wǎng)絡(luò)中所有結(jié)點(diǎn)首先初始化為未標(biāo)記結(jié)點(diǎn),在搜索過(guò)程中和 最短路徑結(jié)點(diǎn)相連通的結(jié)點(diǎn)為臨時(shí)標(biāo)記結(jié)點(diǎn),每一次循環(huán)都是從臨時(shí) 標(biāo)記結(jié)點(diǎn)中搜索距源點(diǎn)路徑長(zhǎng)度最短的結(jié)點(diǎn)作為永久標(biāo)記結(jié)點(diǎn),直至 找到目標(biāo)結(jié)點(diǎn)或者所有結(jié)點(diǎn)都成為永久標(biāo)記結(jié)點(diǎn)才結(jié)束搜索過(guò)程。
原始Dijkstra搜索過(guò)程中,由于臨時(shí)標(biāo)記結(jié)點(diǎn)無(wú)序地存儲(chǔ),因此 每次在臨時(shí)標(biāo)記結(jié)點(diǎn)中搜索路徑最短的結(jié)點(diǎn)時(shí),都要遍歷所有的臨時(shí) 標(biāo)記結(jié)點(diǎn)。減小算法中搜索的范圍,以盡快達(dá)到目標(biāo)結(jié)點(diǎn),是一種行 之有效的優(yōu)化方法。
從圖2中可以看出,原始Dijkstra搜索方法可以近似為以源結(jié)點(diǎn)為 圓心的 一 系列同心圓,搜索過(guò)程沒(méi)有考慮目標(biāo)結(jié)點(diǎn)所在的方向或者位 置,從源結(jié)點(diǎn)出發(fā)的搜索過(guò)程中,其他結(jié)點(diǎn)與目標(biāo)結(jié)點(diǎn)被搜索到的概 率是相同的。而直線優(yōu)化Dijkstra的搜索方法過(guò)程,可以近似為以源 結(jié)點(diǎn)和目標(biāo)結(jié)點(diǎn)為焦點(diǎn)的 一 系列同心橢圓。因?yàn)橛谰脴?biāo)記結(jié)點(diǎn)的選取 原則是當(dāng)前結(jié)點(diǎn)距離源結(jié)點(diǎn)的最短路徑距離與次結(jié)點(diǎn)到終點(diǎn)的直線 距離之和最小者被選取為永久標(biāo)記結(jié)點(diǎn),所以 一般來(lái)說(shuō)其搜索過(guò)程明 顯趨向于目標(biāo)結(jié)點(diǎn),搜索到的結(jié)點(diǎn)少于原始Dijkstm搜索方法,搜索 過(guò)程結(jié)東的時(shí)間也會(huì)明顯少于原始Dijikstra方法
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種直線優(yōu)化的最短路徑搜索方法,將臨時(shí) 標(biāo)記結(jié)點(diǎn)到源結(jié)點(diǎn)的最短路徑距離與該臨時(shí)結(jié)點(diǎn)到目標(biāo)結(jié)點(diǎn)的直線 距離之和作為從臨時(shí)結(jié)點(diǎn)集合中選取永久標(biāo)記結(jié)點(diǎn)的依據(jù),克服了現(xiàn) 有技術(shù)中遍歷的結(jié)點(diǎn)個(gè)數(shù)多、搜索速度慢的缺陷。
本發(fā)明提供的直線優(yōu)化的最短路徑搜索方法核心思想是在研究 的網(wǎng)絡(luò)可以看作平面網(wǎng)絡(luò)的條件下,將臨時(shí)標(biāo)記結(jié)點(diǎn)到源結(jié)點(diǎn)的最短 路徑距離與本臨時(shí)結(jié)點(diǎn)到目標(biāo)結(jié)點(diǎn)的直線距離之后作為從臨時(shí)結(jié)點(diǎn) 集合中選取永久標(biāo)記結(jié)點(diǎn)的依據(jù)(見圖l )。這種原則將使得搜索方法 職能地趨向目標(biāo)結(jié)點(diǎn),減少搜索中遍歷的結(jié)點(diǎn)個(gè)數(shù),從而提高搜索的 速度。
為了達(dá)到以上發(fā)明目的,本發(fā)明提供了 一種獲取兩地間最短路徑
的方法,所述獲取兩地間最短路徑的方法包括步驟
Sl,獲取兩地的起點(diǎn)、終點(diǎn)以及所述起點(diǎn)的相鄰點(diǎn);
S2 ,獲取所述相鄰點(diǎn)到起點(diǎn)之間的最短路徑距離;
S3,獲取上述各相鄰點(diǎn)與終點(diǎn)之間的直線距離;
S4,獲取上述最短路徑距離與直線距離之和的最小值以及取得該
最小值的點(diǎn);
S5,判斷上述取得最小值的點(diǎn)是否是終點(diǎn),如果是,則獲取上述 起點(diǎn)經(jīng)所述取得最小值的點(diǎn)到終點(diǎn)的路徑距離為起點(diǎn)與終點(diǎn)之間的 最短路徑距離;如果否,則獲取上述取得最小值的點(diǎn)的所有相鄰點(diǎn), 然后轉(zhuǎn)步驟S2,其中用所述取得最小值的點(diǎn)的相鄰點(diǎn)取代步驟S2中所 述的相鄰點(diǎn)。
其中,所述步驟S1中起點(diǎn)的相鄰點(diǎn)為與起點(diǎn)有路徑的點(diǎn)。 其中,所述步驟S5之前還包括
SA,判斷上述取得最小值的點(diǎn)是否有相鄰點(diǎn),如果沒(méi)有,則獲 取上述起點(diǎn)經(jīng)所述取得最小值的點(diǎn)到終點(diǎn)的路徑距離為起點(diǎn)與終點(diǎn) 之間的最短路徑距離,如果有,則轉(zhuǎn)步驟SBSB,判斷所述取得最小值的點(diǎn)的相鄰點(diǎn)是否被選取作過(guò)最小值 點(diǎn),如果是,則獲取上述起點(diǎn)經(jīng)所述取得最小值的點(diǎn)到終點(diǎn)的路徑距 離為起點(diǎn)與終點(diǎn)之間的最短路徑距離,如果否,則轉(zhuǎn)步驟S2。
本發(fā)明還提供了 一種獲取兩地間最短路徑的裝置,所述獲取兩地
間最短路徑的裝置包括
輸入單元,用于輸入兩地的起點(diǎn)、終點(diǎn)以及與所述起點(diǎn)的相鄰點(diǎn); 計(jì)算單元,與所述輸入單元相連,獲取上述各相鄰點(diǎn)到起點(diǎn)之間
的最短路徑距離、上述各相鄰點(diǎn)與終點(diǎn)的直線距離;以及上述最短路
徑距離與直線距離之和的最小值;
判斷單元,與所述計(jì)算單元相連,用于判斷使得起點(diǎn)與其所有相
鄰點(diǎn)的最短路徑距離及所述起點(diǎn)的相鄰點(diǎn)與終點(diǎn)的直線距離之和取
得最小值的點(diǎn);
輸出單元,與所述判斷單元相連,用于輸出所述最短路徑距離。 本發(fā)明所提供的直線優(yōu)化的最短路徑搜索方法,將臨時(shí)標(biāo)記結(jié)點(diǎn) 到源結(jié)點(diǎn)的最短路徑距離與本臨時(shí)結(jié)點(diǎn)到目標(biāo)結(jié)點(diǎn)的直線距離之后 作為從臨時(shí)結(jié)點(diǎn)集合中選取永久標(biāo)記結(jié)點(diǎn)的依據(jù),減少搜索中遍歷的 結(jié)點(diǎn)個(gè)數(shù),從而提高搜索的速度。


圖l是本發(fā)明最短路徑搜索方法中選取永久標(biāo)記結(jié)點(diǎn)的理論依據(jù) 示意圖2是原始Dijkstra搜索方法與本發(fā)明直線優(yōu)化最短路徑搜索方
法最大搜索范圍示意圖3是本發(fā)明直線優(yōu)化最短路徑搜索方法的流程示意圖4是本發(fā)明直線優(yōu)化最短路徑搜索裝置結(jié)構(gòu)示意圖5是本發(fā)明應(yīng)用于城巿間公路信息查詢系統(tǒng)的城巿間公路情況
示意圖。
具體實(shí)施方式
以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。 本發(fā)明提供了 一種獲取兩地間最短路徑的方法,所述方法包括步
驟Sl,獲取兩地的起點(diǎn)、終點(diǎn)以及所述起點(diǎn)的相鄰點(diǎn);S2,獲取所 述相鄰點(diǎn)到起點(diǎn)之間的最短路徑距離;S3,獲取上述各相鄰點(diǎn)與終點(diǎn) 的直線距離;S4,獲取上述最短路徑距離與直線距離之和的最小值以 及取得該最小值的點(diǎn);S5,判斷上述取得最小值的點(diǎn)是否是終點(diǎn),如 果是,則獲取上述起點(diǎn)經(jīng)所述取得最小值的點(diǎn)到終點(diǎn)的路徑距離為起 點(diǎn)與終點(diǎn)之間的最短路徑距離;如果否,則獲取上述取得最小值的點(diǎn)
的所有相鄰點(diǎn),然后轉(zhuǎn)步驟S2,其中用所述取得最小值的點(diǎn)的相鄰點(diǎn) 取代步驟S2中的相鄰點(diǎn)。其中,所述步驟S1中起點(diǎn)的相鄰點(diǎn)為與起點(diǎn) 有路徑的點(diǎn)。其中,所述步驟S5之前還包括SA,判斷上述取得最 小值的點(diǎn)是否有相鄰點(diǎn),如果沒(méi)有,則獲取上述起點(diǎn)經(jīng)所述取得最小 值的點(diǎn)到終點(diǎn)的路徑距離為起點(diǎn)與終點(diǎn)之間的最短路徑距離,如果 有,則轉(zhuǎn)步驟SB; SB,判斷所述取得最小值的點(diǎn)的相鄰點(diǎn)是否被選 取作過(guò)最小值點(diǎn),如果是,則獲取上述起點(diǎn)經(jīng)所述取得最小值的點(diǎn)到 終點(diǎn)的路徑距離為起點(diǎn)與終點(diǎn)之間的最短路徑距離,如果否,則轉(zhuǎn)步 驟S2。
本發(fā)明還提供了 一種獲取兩地間最短路徑的裝置,如圖4所示, 所述獲取兩地間最短路徑的裝置包括輸入單元,用于輸入兩地的起 點(diǎn)、終點(diǎn)以及與所述起點(diǎn)相鄰的點(diǎn);計(jì)算單元,與所述輸入單元相連, 獲取上述各相鄰點(diǎn)到起點(diǎn)之間的最短路徑距離、上述各相鄰點(diǎn)與終點(diǎn) 的直線距離;以及上述最短路徑距離與直線距離之和的最小值;判斷 單元,與所述計(jì)算單元相連,用于判斷使得起點(diǎn)與其所有相鄰點(diǎn)的最 短路徑距離及所述起點(diǎn)的相鄰點(diǎn)與終點(diǎn)的直線距離之和取得最小值 的點(diǎn);輸出單元,與所述判斷單元相連,用于輸出所述最短路徑距離。
作為對(duì)本發(fā)明技術(shù)方案的進(jìn)一步闡述,下面介紹本發(fā)明的一種實(shí) 施搜索方法,首先(1)建立永久標(biāo)記結(jié)點(diǎn)集合A和臨時(shí)標(biāo)記結(jié)點(diǎn)集合B; (2)將源結(jié)點(diǎn)s加入所述永久標(biāo)記結(jié)點(diǎn)集合A,將源結(jié)點(diǎn)s的相鄰 結(jié)點(diǎn)加入所述臨時(shí)標(biāo)記結(jié)點(diǎn)集合B;其次(3 )分別計(jì)算所述臨時(shí)標(biāo)記 結(jié)點(diǎn)集合B中的各臨時(shí)標(biāo)記結(jié)點(diǎn)到源結(jié)點(diǎn)s的最短路徑距離與所述臨 時(shí)標(biāo)記結(jié)點(diǎn)到目標(biāo)結(jié)點(diǎn)t的直線距離之和,并計(jì)算所述和的最小值; (4 )將取得上述最小值的臨時(shí)標(biāo)記結(jié)點(diǎn)k加入到永久標(biāo)記結(jié)點(diǎn)集合A 中,并調(diào)整永久標(biāo)記結(jié)點(diǎn)集合A中各結(jié)點(diǎn)的最短路徑距離;然后(5) 清空所述臨時(shí)標(biāo)記結(jié)點(diǎn)集合B,并把臨時(shí)標(biāo)記結(jié)點(diǎn)k的相鄰結(jié)點(diǎn)加入臨 時(shí)標(biāo)記結(jié)點(diǎn)集合B;重復(fù)步驟(3) - (5)直到所述臨時(shí)標(biāo)記結(jié)點(diǎn)k與 目標(biāo)結(jié)點(diǎn)t為同 一個(gè)結(jié)點(diǎn),或者所述臨時(shí)標(biāo)記結(jié)點(diǎn)k沒(méi)有相鄰結(jié)點(diǎn)或者 所述臨時(shí)標(biāo)記結(jié)點(diǎn)k的所有相鄰結(jié)點(diǎn)都在永久標(biāo)記結(jié)點(diǎn)集合A時(shí),獲 取源結(jié)點(diǎn)s與目標(biāo)結(jié)點(diǎn)t的最短路徑。
其中,步驟(4)中所述的調(diào)整永久結(jié)點(diǎn)集合A中最短路徑是由 于k的加入,可能使得各結(jié)點(diǎn)的最短路徑距離減小。對(duì)于任意的結(jié)點(diǎn)j, 若k加入后,使j的最短路徑距離SD[j]變小,則必定是由于存在一條從 s到j(luò)且包含k的更短路徑<s,……,k, j〉。且SD[j]減小的新路徑只 可能是由于路徑〈s,……,k〉和路徑〈k, j〉組成,所以當(dāng)SD[k] + w〈k, f小于SD[j]時(shí),應(yīng)該用SD[k] + w〈k, j〉的長(zhǎng)度來(lái)修改D(j]的值。w<k, p為路徑的權(quán)值。
下面參照附圖結(jié)合示例性實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。 以城巿間公路信息查詢?yōu)槔瑢?duì)本發(fā)明進(jìn)行詳細(xì)描述。圖5中,顯示 的abcde五個(gè)城巿間的公路情況,連線中數(shù)字是城巿間公路的里程數(shù), 旁邊小一號(hào)數(shù)字表示城巿間的直線距離數(shù)?,F(xiàn)要求求解城巿d到城巿e 間的最短路徑與最短距離。下面是利用本發(fā)明的搜索方法進(jìn)行求解的 步驟
第一步將源結(jié)點(diǎn)城市d加入永久標(biāo)記結(jié)點(diǎn)集合A。此時(shí)集合A中 只有一個(gè)結(jié)點(diǎn)A其到源結(jié)點(diǎn)最短路徑是A最短距離是0。
第二步與d相鄰的結(jié)點(diǎn)是"、c、 e,加入臨時(shí)結(jié)標(biāo)記點(diǎn)集合B。第三步分別計(jì)算集合B中仏C、 e到源結(jié)點(diǎn)的最短路徑距離與目 標(biāo)結(jié)點(diǎn)的直線距離之和 a:£fe + ae = 10 + 71 = 81
e:cfe + S = 100 + 0 = 100
第四步根據(jù)所得的結(jié)果值,選擇a結(jié)點(diǎn)加入集合A。
第五步調(diào)整集合A中各結(jié)點(diǎn)的最短路徑。A中有結(jié)點(diǎn)A仏其
中c/是源結(jié)點(diǎn),a的最短路徑是^。
第六步清空集合B,把與a相鄰的結(jié)點(diǎn)b,加入到集合A中。 第七步集合B中只有臨時(shí)結(jié)點(diǎn)b,選取加入到集合A中。 第八步調(diào)整集合A中各結(jié)點(diǎn)的最短路徑。A中有結(jié)點(diǎn)丄"、6,
其中d是源結(jié)點(diǎn),"的最短路徑還是&, 6的最短路徑是^/W。
第九步:清空集合B,把與6相鄰的結(jié)點(diǎn)c、 e,加入到集合B中。 第十步分別計(jì)算集合B中c、 e到源結(jié)點(diǎn)d的最短路徑距離與到目
標(biāo)結(jié)點(diǎn)e的直線距離之和
c: A + ce = & + W + + ce = 10 + 50 + 20 + 52 = 132
第十一步調(diào)整集合A中各結(jié)點(diǎn)的最短路徑,d是源結(jié)點(diǎn),a的最 短路徑還是c/a, 6的最短路徑是c/a6, e的最短路徑是^^e。
第十二步由于e是目標(biāo)結(jié)點(diǎn),搜索過(guò)程結(jié)東。
第十三步輸出結(jié)果,源結(jié)點(diǎn)d與目標(biāo)結(jié)點(diǎn)e的最短路徑是^^e。
以上通過(guò)一個(gè)實(shí)例描述了源結(jié)點(diǎn)與目標(biāo)結(jié)點(diǎn)間的最短路徑的求 解方法。
以上實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān) 技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下, 還可以做出各種變化,因此所有等同的技術(shù)方案也屬于本發(fā)明的范 疇,本發(fā)明的專利保護(hù)范圍應(yīng)由其權(quán)利要求限定。
權(quán)利要求
1、一種獲取兩地間最短路徑的方法,其特征在于,所述獲取兩地間最短路徑的方法包括步驟S1,獲取兩地的起點(diǎn)、終點(diǎn)以及所述起點(diǎn)的相鄰點(diǎn);S2,獲取所述相鄰點(diǎn)到起點(diǎn)之間的最短路徑距離;S3,獲取上述各相鄰點(diǎn)與終點(diǎn)之間的直線距離;S4,獲取上述最短路徑距離與直線距離之和的最小值以及取得該最小值的點(diǎn);S5,判斷上述取得最小值的點(diǎn)是否是終點(diǎn),如果是,則獲取上述起點(diǎn)經(jīng)所述取得最小值的點(diǎn)到終點(diǎn)的路徑距離為起點(diǎn)與終點(diǎn)之間的最短路徑距離;如果否,則獲取上述取得最小值的點(diǎn)的所有相鄰點(diǎn),然后轉(zhuǎn)步驟S2,其中用所述取得最小值的點(diǎn)的相鄰點(diǎn)取代步驟S2中所述的相鄰點(diǎn)。
2、 如權(quán)利要求l所述的獲取兩地間最短路徑的方法,其特征在于, 所述步驟S1中起點(diǎn)的相鄰點(diǎn)為與起點(diǎn)有路徑的點(diǎn)。
3、 如權(quán)利要求1所述的獲取兩地間最短路徑的方法,其特征在于, 所述步驟S5之前還包括SA,判斷上述取得最小值的點(diǎn)是否有相鄰點(diǎn),如果否,則獲取 上述起點(diǎn)經(jīng)所述取得最小值的點(diǎn)到終點(diǎn)的路徑距離為起點(diǎn)與終點(diǎn)之 間的最短路徑距離,如果是,則轉(zhuǎn)步驟SB;SB,判斷所述取得最小值的點(diǎn)的相鄰點(diǎn)是否被選取作過(guò)最小值 點(diǎn),如果是,則獲取上述起點(diǎn)經(jīng)所述取得最小值的點(diǎn)到終點(diǎn)的路徑距 離為起點(diǎn)與終點(diǎn)之間的最短路徑距離,如果否,則轉(zhuǎn)步驟S2。
4、 一種獲取兩地間最短路徑的裝置,其特征在于,所述獲取兩 地間最短路徑的裝置包括輸入單元,用于輸入兩地的起點(diǎn)、終點(diǎn)以及所述起點(diǎn)的相鄰點(diǎn); 計(jì)算單元,與所述輸入單元相連,獲取上述各相鄰點(diǎn)到起點(diǎn)之間的最短路徑距離、上述各相鄰點(diǎn)與終點(diǎn)的直線距離;以及上述最短路 徑距離與直線距離之和的最小值;判斷單元,與所述計(jì)算單元相連,用于判斷使得起點(diǎn)與其所有相 鄰點(diǎn)的最短路徑距離及所述起點(diǎn)的相鄰點(diǎn)與終點(diǎn)的直線距離之和取得最小值的點(diǎn);輸出單元,與所述判斷單元相連,用于輸出所述最短路徑距離。
全文摘要
本發(fā)明涉及一種直線優(yōu)化的最短路徑搜索方法。所述方法在研究的網(wǎng)絡(luò)可以看作平面網(wǎng)絡(luò)的條件下,將臨時(shí)標(biāo)記結(jié)點(diǎn)到源結(jié)點(diǎn)的最短路徑距離與本臨時(shí)結(jié)點(diǎn)到目標(biāo)結(jié)點(diǎn)的直線距離之后作為從臨時(shí)結(jié)點(diǎn)集合中選取永久標(biāo)記結(jié)點(diǎn)的依據(jù)。本發(fā)明所提供的最短路徑搜索方法,減少搜索中遍歷的結(jié)點(diǎn)個(gè)數(shù),從而提高搜索的速度。
文檔編號(hào)H04L12/56GK101447947SQ20081024685
公開日2009年6月3日 申請(qǐng)日期2008年12月26日 優(yōu)先權(quán)日2008年12月26日
發(fā)明者劉忠強(qiáng), 鋼 喻, 張方田, 王開義, 趙春江, 靜 隋 申請(qǐng)人:北京農(nóng)業(yè)信息技術(shù)研究中心
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1