本發(fā)明專利技術(shù)涉及路徑搜索技術(shù)領(lǐng)域,公開(kāi)了一種最優(yōu)路徑搜索方法及系統(tǒng),該方法包括:設(shè)置地圖中角色可以通過(guò)的節(jié)點(diǎn)的權(quán)值;在進(jìn)行最優(yōu)路徑搜索時(shí),遍歷當(dāng)前節(jié)點(diǎn)周?chē)南噜徆?jié)點(diǎn),并根據(jù)所述相鄰節(jié)點(diǎn)的權(quán)值計(jì)算所述相鄰節(jié)點(diǎn)從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估計(jì)代價(jià);選取所述相鄰節(jié)點(diǎn)中估計(jì)代價(jià)最小的一個(gè)節(jié)點(diǎn)作為所述最優(yōu)路徑的下一個(gè)節(jié)點(diǎn)。利用本發(fā)明專利技術(shù),可以提高路徑搜索的靈活性及效率。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及路徑搜索技術(shù),具體涉及一種最優(yōu)路徑搜索方法及系統(tǒng)。
技術(shù)介紹
自動(dòng)尋路是網(wǎng)絡(luò)游戲內(nèi)玩家的一種基本需求,玩家只需要用鼠標(biāo)選擇地圖上的一個(gè)目標(biāo)節(jié)點(diǎn),計(jì)算機(jī)通過(guò)尋路算法,搜索到一條最短的路徑,引導(dǎo)角色通過(guò)這條路徑走到目標(biāo)節(jié)點(diǎn)。搜索最優(yōu)的路徑往往需要計(jì)算機(jī)進(jìn)行一段長(zhǎng)時(shí)間的計(jì)算。在現(xiàn)有技術(shù)中,常用的最短路徑搜索算法有深度優(yōu)先和廣度優(yōu)先兩種,它們的特點(diǎn)是在給定的空間中進(jìn)行窮舉,當(dāng)空間非常大時(shí),這兩種方法的效率就非常低,需要花費(fèi)很長(zhǎng)時(shí)間。網(wǎng)絡(luò)游戲中常用的是A-Star算法,它對(duì)每一個(gè)搜索的節(jié)點(diǎn)進(jìn)行評(píng)估,得到“最好的節(jié)點(diǎn)”,再?gòu)倪@個(gè)節(jié)點(diǎn)進(jìn)行搜索直到目標(biāo)。這樣可以省略大量無(wú)用的搜索路徑,提高了效率。A-Star算法的公式是:f (n) = g (n) +h (η),其中,f (η)是節(jié)點(diǎn)η從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估價(jià)函數(shù),g(n)是在狀態(tài)空間中從初始節(jié)點(diǎn)到節(jié)點(diǎn)η的實(shí)際代價(jià),h(n)是從節(jié)點(diǎn)η到目標(biāo)節(jié)點(diǎn)最佳路徑的估計(jì)代價(jià)。h(n)用權(quán)值來(lái)估算,若h (η)越小,f (η)就越小,則節(jié)點(diǎn)η越有可能是“最好節(jié)點(diǎn)”。現(xiàn)有A-Atar算法仍然存在以下缺點(diǎn):1.靈活性差:該算法直接固化在游戲程序中,所以對(duì)游戲內(nèi)所有地圖的處理都是一樣的。地圖中所有節(jié)點(diǎn)的權(quán)值只有兩種:連通(權(quán)值為O),阻擋(權(quán)值為I),O表示游戲角色行走時(shí)可以經(jīng)過(guò)這些節(jié)點(diǎn),I表示該節(jié)點(diǎn)有障礙,不能經(jīng)過(guò)。2.效率低:對(duì)于每一個(gè)權(quán)值為O的節(jié)點(diǎn),A-Star算法根據(jù)程序內(nèi)已經(jīng)寫(xiě)好的固定的估價(jià)函數(shù)對(duì)他們進(jìn)行評(píng)估,選擇最好節(jié)點(diǎn)。這樣要遍歷搜索的節(jié)點(diǎn)仍然很多,效率不高。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)實(shí)施例提供一種最優(yōu)路徑搜索方法及系統(tǒng),以提高路徑搜索的靈活性及效率。為此,本專利技術(shù)實(shí)施例提供如下技術(shù)方案:一種最優(yōu)路徑搜索方法,包括:設(shè)置地圖中角色可以通過(guò)的節(jié)點(diǎn)的權(quán)值;在進(jìn)行最優(yōu)路徑搜索時(shí),遍歷當(dāng)前節(jié)點(diǎn)周?chē)南噜徆?jié)點(diǎn),并根據(jù)所述相鄰節(jié)點(diǎn)的權(quán)值計(jì)算所述相鄰節(jié)點(diǎn)從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估計(jì)代價(jià);選取所述相鄰節(jié)點(diǎn)中估計(jì)代價(jià)最小的一個(gè)節(jié)點(diǎn)作為所述最優(yōu)路徑的下一個(gè)節(jié)點(diǎn)。優(yōu)選地,所述設(shè)置地圖中角色可以通過(guò)的節(jié)點(diǎn)的權(quán)值包括:控制所述地圖中角色移動(dòng)到所述角色可以通過(guò)的節(jié)點(diǎn)的位置;觸發(fā)所述節(jié)點(diǎn)的位置進(jìn)入編輯狀態(tài);根據(jù)所述節(jié)點(diǎn)的位置設(shè)置所述節(jié)點(diǎn)的權(quán)值;將所述節(jié)點(diǎn)的位置信息及權(quán)值信息映射到對(duì)應(yīng)所述地圖的阻擋圖中。優(yōu)選地,所述觸發(fā)所述節(jié)點(diǎn)的位置進(jìn)入編輯狀態(tài)包括:通過(guò)快捷鍵觸發(fā)所述節(jié)點(diǎn)的位置進(jìn)入編輯狀態(tài)。優(yōu)選地,所述阻擋圖為像素圖,所述地圖中的每個(gè)節(jié)點(diǎn)與對(duì)應(yīng)所述地圖的像素圖中的一個(gè)像素點(diǎn)對(duì)應(yīng),不同權(quán)值的節(jié)點(diǎn)對(duì)應(yīng)的像素點(diǎn)的顏色不同。可選地,所述根據(jù)所述節(jié)點(diǎn)的位置設(shè)置所述節(jié)點(diǎn)的權(quán)值包括:如果所述節(jié)點(diǎn)的位置在最優(yōu)路徑上,則將所述節(jié)點(diǎn)的權(quán)值設(shè)置為小于O ;否則,將所述節(jié)點(diǎn)的權(quán)值設(shè)置為O。可選地,所述權(quán)值小于O ;所述根據(jù)所述節(jié)點(diǎn)的位置設(shè)置所述節(jié)點(diǎn)的權(quán)值包括:如果所述節(jié)點(diǎn)的位置在最優(yōu)路徑上,則將所述節(jié)點(diǎn)的權(quán)值設(shè)置為最小。優(yōu)選地,所述根據(jù)所述相鄰節(jié)點(diǎn)的權(quán)值計(jì)算所述相鄰節(jié)點(diǎn)從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估計(jì)代價(jià)包括:根據(jù)所述初始節(jié)點(diǎn)到所述相鄰節(jié)點(diǎn)的實(shí)際代價(jià)、所述相鄰節(jié)點(diǎn)到所述目標(biāo)節(jié)點(diǎn)最佳路徑的估計(jì)代價(jià)、以及所述相鄰節(jié)點(diǎn)的權(quán)值計(jì)算所述相鄰節(jié)點(diǎn)從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估計(jì)代價(jià)。一種最優(yōu)路徑搜索系統(tǒng),包括:設(shè)置單元,用于設(shè)置地圖中角色可以通過(guò)的節(jié)點(diǎn)的權(quán)值;搜索單元,用于在進(jìn)行最優(yōu)路徑搜索時(shí),遍歷當(dāng)前節(jié)點(diǎn)周?chē)南噜徆?jié)點(diǎn),并根據(jù)所述相鄰節(jié)點(diǎn)的權(quán)值計(jì)算所述相鄰節(jié)點(diǎn)從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估計(jì)代價(jià);選取單元,用于選取所述搜索單元得到的所述相鄰節(jié)點(diǎn)中估計(jì)代價(jià)最小的一個(gè)節(jié)點(diǎn)作為所述最優(yōu)路徑的下一個(gè)節(jié)點(diǎn)。優(yōu)選地,所述設(shè)置單元包括:控制子單元,用于控制所述地圖中角色移動(dòng)到所述角色可以通過(guò)的節(jié)點(diǎn)的位置;觸發(fā)子單元,用于觸發(fā)所述節(jié)點(diǎn)的位置進(jìn)入編輯狀態(tài);編輯子單元,用于根據(jù)所述節(jié)點(diǎn)的位置設(shè)置所述節(jié)點(diǎn)的權(quán)值;映射子單元,用于將所述節(jié)點(diǎn)的位置信息及權(quán)值信息映射到對(duì)應(yīng)所述地圖的阻擋圖中。優(yōu)選地,所述觸發(fā)子單元,具體用于通過(guò)快捷鍵觸發(fā)所述節(jié)點(diǎn)的位置進(jìn)入編輯狀態(tài)。優(yōu)選地,所述阻擋圖為像素圖,所述地圖中的每個(gè)節(jié)點(diǎn)與對(duì)應(yīng)所述地圖的像素圖中的一個(gè)像素點(diǎn)對(duì)應(yīng),不同權(quán)值的節(jié)點(diǎn)對(duì)應(yīng)的像素點(diǎn)的顏色不同。可選地,所述編輯子單元,具體用于在所述節(jié)點(diǎn)的位置在最優(yōu)路徑上時(shí),將所述節(jié)點(diǎn)的權(quán)值設(shè)置為小于O ;否則,將所述節(jié)點(diǎn)的權(quán)值設(shè)置為O。可選地,所述權(quán)值小于O;編輯子單元,具體用于在所述節(jié)點(diǎn)的位置在最優(yōu)路徑上,將所述節(jié)點(diǎn)的權(quán)值設(shè)置為最小。優(yōu)選地,所述搜索單元,具體用于在進(jìn)行最優(yōu)路徑搜索時(shí),遍歷當(dāng)前節(jié)點(diǎn)周?chē)南噜徆?jié)點(diǎn),并根據(jù)所述初始節(jié)點(diǎn)到所述相鄰節(jié)點(diǎn)的實(shí)際代價(jià)、所述相鄰節(jié)點(diǎn)到所述目標(biāo)節(jié)點(diǎn)最佳路徑的估計(jì)代價(jià)、以及所述相鄰節(jié)點(diǎn)的權(quán)值計(jì)算所述相鄰節(jié)點(diǎn)從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估計(jì)代價(jià)。本專利技術(shù)實(shí)施例最優(yōu)路徑搜索方法及系統(tǒng),通過(guò)設(shè)置地圖中角色可以通過(guò)的節(jié)點(diǎn)的權(quán)值,使計(jì)算機(jī)在進(jìn)行最優(yōu)路徑搜索時(shí),遍歷當(dāng)前節(jié)點(diǎn)周?chē)南噜徆?jié)點(diǎn),并根據(jù)所述相鄰節(jié)點(diǎn)的權(quán)值計(jì)算所述相鄰節(jié)點(diǎn)從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估計(jì)代價(jià),選取所述相鄰節(jié)點(diǎn)中估計(jì)代價(jià)最小的一個(gè)節(jié)點(diǎn)作為所述最優(yōu)路徑的下一個(gè)節(jié)點(diǎn),也就是說(shuō),使計(jì)算機(jī)能得到正確的引導(dǎo),快速、高效地搜索到最優(yōu)路徑。附圖說(shuō)明圖1是現(xiàn)有游戲中的一張地圖的示意圖;圖2是利用現(xiàn)有A-Star算法在圖1所不地圖中得到的路徑不意圖;圖3是本專利技術(shù)實(shí)施例最優(yōu)路徑搜索方法的流程圖;圖4是本專利技術(shù)實(shí)施例最優(yōu)路徑搜索方法在圖1所示地圖中得到的路徑示意圖;圖5是本專利技術(shù)實(shí)施例中設(shè)置節(jié)點(diǎn)的權(quán)值的一種流程圖;圖6是本專利技術(shù)實(shí)施例最優(yōu)路徑搜索系統(tǒng)的一種結(jié)構(gòu)不意圖;圖7是本專利技術(shù)實(shí)施例中設(shè)置單元的一種結(jié)構(gòu)示意圖。具體實(shí)施例方式為了使本
的人員更好地理解本專利技術(shù)實(shí)施例的方案,下面結(jié)合附圖和實(shí)施方式對(duì)本專利技術(shù)實(shí)施例作進(jìn)一步的詳細(xì)說(shuō)明。 首先,對(duì)現(xiàn)有的A-Star尋路原理做簡(jiǎn)單說(shuō)明。假設(shè)圖1是游戲中的一張地圖,其中空白部分是游戲中的道路,游戲角色可以自由通過(guò),斜線填充的部分為游戲中的建筑物(即阻擋),游戲角色不可以自由通過(guò)。游戲角色需要從A點(diǎn)出發(fā),向東行走,然后向南拐彎一次,最終到達(dá)目標(biāo)節(jié)點(diǎn)D。在現(xiàn)有的A-Star算法中,系統(tǒng)會(huì)根據(jù)A-Star算法遍歷A點(diǎn)周?chē)陌藗€(gè)節(jié)點(diǎn),如圖2中所示的節(jié)點(diǎn)si s8,選擇接下來(lái)該走到哪一個(gè)節(jié)點(diǎn)。A-Star算法公式如下:f (n) = g (n) +h (η)(I)其中,f (η)是節(jié)點(diǎn)η從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估價(jià)函數(shù),g (η)是在狀態(tài)空間中從初始節(jié)點(diǎn)到節(jié)點(diǎn)η的實(shí)際代價(jià),h(n)是從節(jié)點(diǎn)η到目標(biāo)節(jié)點(diǎn)最佳路徑的估計(jì)代價(jià)。上述g(n)和h(n)可以是自定義函數(shù),具體可以根據(jù)節(jié)點(diǎn)η與初始節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)的距離來(lái)計(jì)算,也可以根據(jù)節(jié)點(diǎn)η的權(quán)值來(lái)計(jì)算。現(xiàn)有技術(shù)中,尋路過(guò)程如下:如圖2所示,根據(jù)上面的公式⑴。g(sl) g(s8)都為1,即A點(diǎn)到達(dá)節(jié)點(diǎn)si s8的實(shí)際代價(jià)都為1,但是h(sl) h(s8)中,顯然節(jié)點(diǎn)s4距離D點(diǎn)的直線距離比其他7個(gè)節(jié)點(diǎn)都要短,所以節(jié)點(diǎn)s4是所有八個(gè)節(jié)點(diǎn)中代價(jià)最小的。節(jié)點(diǎn)s4從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估價(jià)函數(shù)為: f (s4) = g(s4)+h(s4) = 1+h (s4) (2)經(jīng)過(guò)這樣一輪的計(jì)算后,系統(tǒng)會(huì)選擇節(jié)點(diǎn)s4作為下一步要到達(dá)的點(diǎn)。同理,對(duì)于節(jié)點(diǎn)s4,系統(tǒng)同樣需要遍歷它周?chē)陌吮疚臋n來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種最優(yōu)路徑搜索方法,其特征在于,包括:設(shè)置地圖中角色可以通過(guò)的節(jié)點(diǎn)的權(quán)值;在進(jìn)行最優(yōu)路徑搜索時(shí),遍歷當(dāng)前節(jié)點(diǎn)周?chē)南噜徆?jié)點(diǎn),并根據(jù)所述相鄰節(jié)點(diǎn)的權(quán)值計(jì)算所述相鄰節(jié)點(diǎn)從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估計(jì)代價(jià);選取所述相鄰節(jié)點(diǎn)中估計(jì)代價(jià)最小的一個(gè)節(jié)點(diǎn)作為所述最優(yōu)路徑的下一個(gè)節(jié)點(diǎn)。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:高經(jīng)緯,
申請(qǐng)(專利權(quán))人:北京金山軟件有限公司,北京金山數(shù)字娛樂(lè)科技有限公司,
類(lèi)型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。