A演算法簡介(AAlgorithmBrief).doc

上传人:hw****26 文档编号:3526186 上传时间:2019-06-02 格式:DOC 页数:3 大小:329KB
下载 相关 举报
A演算法簡介(AAlgorithmBrief).doc_第1页
第1页 / 共3页
A演算法簡介(AAlgorithmBrief).doc_第2页
第2页 / 共3页
A演算法簡介(AAlgorithmBrief).doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、A* 演算法簡介 (A* Algorithm Brief)2004/12/20 09:44 A* (A-Star) 演算法是在 Game 中通常用來解決 最短路徑(Shortest Path)問題的一種演算法. 相對於另一個知名的 Dijkstra 演算法來說, Dijkstra 演算法雖然可以保證找到一條最短的路徑, 但不如 A* 演算法這樣簡捷快速. 同時, Dijkstra 的搜尋深度在某些情形下也容易顯得不適用. A* 演算法便是為了這些情形而出現的, 可以算是 Dijkstra 演算法的一種改良.底下用幾張圖來表現 Dijkstra 演算法與 A* 演算法的不同:Dijkstra 演

2、算法 A* 演算法無障礙有障礙(圖片取自 Amits Thoughts on Path-Finding and A-Star)從以上的比較圖可以看出, A* 演算法的搜尋深度雖然不如 Dijkstra 演算法, 但其結果仍然是很令人滿意的. 為什麼 A* 演算法可以達到這樣的結果呢? 這是因為 A* 演算法採用了一套特殊的啟發式評價(Heuristic Estimate)公式將許多明顯為壞的路徑排除考慮, 進而快速計算出一條滿意的路徑 .公式如下:f(n) = g(n) + h(n)g(n): 從啟始點到目前節點的距離h(n): 預測目前節點到結束點的距離(此為 A* 演算法的主要評價公式)f

3、(n): 目前結點的評價分數其中, h(n) 主導著 A* 演算法的表現方式. 有以下幾種情形:1. h(n)=0: A* 演算法這時等同 Dijkstra 演算法, 並且保證能找到最短路徑2. h(n)目前節點到結束點的距離: 不保證能找到最短路徑, 但計算比較快5. h(n)與 g(n)高度相關: A* 演算法此時成為 BFS (Best-First Search)A* 演算法的虛擬碼如下 : Add START to OPEN listwhile OPEN not emptyget node n from OPEN that has the lowest f(n)if n is GOAL

4、 then return pathmove n to CLOSEDfor each n = CanMove(n, direction)g(n) = g(n) + 1calculate h(n)if n in OPEN list and new n is not better, continueif n in CLOSED list and new n is not better, continueremove any n from OPEN and CLOSEDadd n as ns parentadd n to OPENend forend whileif we get to here, t

5、hen there is No Solution以上虛擬碼適用於一般遊戲中方格圖(Grid Map)的情形. 當要在真實地圖的路網(Road Map)上使用 A* 演算法時, g(n)與 h(n)的計算方式便會有所不同.相關參考資料:網頁:Amits Thoughts on Path-Finding and A-StarCreating an A* algorithm Robot for QUT SoKoBan維基百科:Shortest Path ProblemA* Search AlgorithmDijkstra Algorithm書籍:Core Techniques and Algorithms in Game Programming (英文)大師談遊戲程式設計:核心技術與演算法 (中文)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。