- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
资讯科学教育PRECALCULATEDPATHFINDING与ASTAR
A STAR 路徑搜尋演算法與PRECALCULATED路徑搜尋演算法之探討
學生: 廖永瀚 指導教授: 李昆翰
摘要
探討A STAR路徑搜尋演算法與PRECALCULATED路徑搜尋演算法路徑搜尋的差異,藉由兩演算法的理論基礎,在相同的遊戲場景中,同時以多種的遊戲內容,比較兩種演算法的路徑搜尋成本,並整理出兩演算法的時間複雜度。
關鍵字
A STAR路徑搜尋演算法PRECALCULATED路徑搜尋演算法路徑搜尋成本間複雜度
問題背景
研究主題選擇與路徑搜尋相關,乃因路徑尋找是遊戲最基本的功能之一,尤其AI遊戲更為注重路徑的搜尋。因為路徑搜尋功能設計不良,會讓整體遊戲進行起來不順暢、不自然。
許多遊戲都必須依靠路經搜尋以找到最佳的行徑路線,如:網路遊戲、角色扮演遊戲、即時戰略遊戲等。這些遊戲都必須有適合的路徑搜尋,遊戲角色才能從各種地形、各種阻礙物中,尋求適合且合理的路徑來行進。由於路徑搜尋方式有很多種,而哪些遊戲適合哪些路經搜尋必須要先定義好,否則當遊戲設計者使用了不適合的路徑搜尋,會造成路徑搜尋時間增加或是CPU執行效率不當。
目的:
根據兩個路徑搜尋:「A STAR路徑搜尋演算法」與「PRECALCULATED路徑搜尋演算法」進行探討。先從兩演算法了解他們的路經搜尋原理,再從同種遊戲場景比較這兩個演算法。三種遊戲模式:一、路徑尋找只有一次的情況。二、路徑尋找多次的情況但是遊戲場景未遭受破壞。三、路徑尋找多次的情況但是遊戲場景遭受破壞。藉此來看路徑搜尋和不同遊戲模式的影響。
二、理論基礎
A STAR路徑搜尋演算法
A STAR演算法第一次是由Hart, Nilsson, Raphael 在1968年提出。A* 演算法採用了一套特殊的啟發式評價(Heuristic Estimate)公式將許多明顯為「壞」的路徑一一刪除,就此找到一個適當的搜尋演算法。.
A方法介紹
把起始格加入「開啟列表」。
圖1 起始格加入「開啟列表」
綠色點為起點A,紅色點為目的點B,藍色為不可通過的方牆。從A走到B須通過一連串的中間節點才能到達目的地。圖1中我們以每個方格當作搜尋區域。
圖 2顯示尋找起點周圍所有可到達或者可通過的方格。
重複如下的工作:
圖 3方格左上角為F,方國左下角為G,方國右下角為H。
路徑評估(Path stimating)
選擇經過哪些方格的關鍵是底下這個等式:F = G + H,其中,G:代表從起點A,沿著產生的路徑,移動到網格上指定方格的移動代價(Movement ost)。 H:從網格上那個方格移動到終點B的預估移動代價。這個經常被稱為「錯誤嘗試(Heuristic)」尋找開啟列表中F值最低的格子。我們稱它為「當前格」
b. 存入「關閉列表」
從開啟列表中刪除點A,把它加入到一個「關閉列表(closed list)」,此列表將儲存所有不需要再次檢查的方格。
. 對相鄰的8格中的每一格:
? 如果它不可通過或者已經在關閉列表中,略過它。反之如下:
? 如果它不在開啟列表中,把它添加進去。把當前格作為這一格的父節點。記錄這一格的F, G和H值。
? 如果它已經在開啟列表中,拿G值當作參考,檢查新的路徑是否更好。更低的G值意味著更好的路徑。如果是這樣,就把這一格的父節點改成當前格,並且重新計算這一格的G和F值。如果你想讓開啟列表按F值排序,你可能需要在此步驟之後,重新對開啟列表排序。
d. 停止
? 把目標格加入關閉列表(參閱下文的註解),代表找到路徑了,或者:沒有找到目標格,開啟列表已經空了。這時,路徑不存在。
圖 4為A STAR路徑搜尋演算法已停著的情況(找到路徑)。
儲存路徑。從目標格開始,沿著每一格的父節點移動直到回到起始格。
圖 5 儲存的路徑
PRECALCULATED 路徑搜尋演算法 A STAR路徑搜尋演算法可用來搜尋點對點間障礙物的路徑搜尋,但就移動上的物體來看,使用A STAR演算法會讓遊戲執行不人性化可能發生的情形當搜尋物體走到目的物體目的物體已經偏離,此時必須再啟動A STAR程式就遊戲來說,還要重新路徑規劃一次,若是一直在改變中的物體,那麼就必須要能預測物體行進的方向。PRECALCULATED路徑搜尋演算法提供了解決方式。
PRECALCULATED PATHFINDING的重要概念
建立關鍵節點(route(A - E) = AB + route(B - E))
當在A節點時,不需要去煩惱怎麼從B走到D的最短路徑。只要去了解從A走到B需要怎麼走到就好我們唯
文档评论(0)