<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給AI研習社-譯站
      發送

      0

      關于 A*、Dijkstra、BFS 尋路算法的可視化解釋

      本文作者: AI研習社-譯站 2021-01-27 16:20
      導語:A*、Dijkstra、BFS 是3種非常經典的尋路算法,本文將詳細展示可視化它們的探索過程。

      譯者:AI研習社(季一帆

      雙語原文鏈接:Interactive pathfinding


      點此鏈接進入交互演示頁面:https://interactive-pathfinding.netlify.com/

      廣度優先搜索、Dijkstra和A*是圖上的三種典型路徑規劃算法。它們都可用于圖搜索,不同之處在于隊列和啟發式函數兩個參數。

      本項目探索并可視化不同算法如何根據選擇參數進行圖搜索。

      算法的一般性原理如下:

      將邊界初始化為包含起始節點的隊列。

      當邊界隊列不為空時,從隊列中“訪問”并刪除一個“當前”節點,同時將訪問節點的每個鄰居節點添加到隊列,其成本是到達當前節點的成本加上從當前節點訪問鄰居的成本再加上鄰居節點和目標節點的啟發式函數值。其中,啟發式函數是對兩個節點的路徑成本的估計。

      存儲訪問路徑(通常存儲在cameFrom圖中),以便后續重建路徑。如果鄰居節點已經在列表中,同時新路徑的成本較低,那么更改其成本。

      找到目標路徑(提前退出)或列表為空時,停止算法。

      BFS

      使用先進先出隊列實現BFS。這種隊列會忽略路徑中鏈接的開銷,并根據跳數進行擴展,因此可以確保找到最短路徑的跳數,而跳數相關的成本。啟發式函數的選擇是任意的,因為在這個過程中其并不起作用。

      使用數組可實現先進先出,即將元素附加到末尾并從頭刪除。

      關于 A*、Dijkstra、BFS 尋路算法的可視化解釋

      BFS演示動圖。注意邊界節點(黃色)是如何在網格中擴展為正方形的。在這里,正方形是相同“跳距”的節點集。

      Dijkstra

      在圖上使用優先級隊列和始終返回0的啟發式函數,便得到Dijkstra算法

      相比于BFS,Dijkstra最大的不同在于考慮了成本。通過該算法,可以根據節點到節點的成本找到最短路徑。

      優先級隊列使用數組實現,在每次插入新節點后對該數組進行排序。盡管實現優先級隊列還有其他更高效的方式,但在我們的場景中,數組是足夠快的,而且實現起來也簡單。

      關于 A*、Dijkstra、BFS 尋路算法的可視化解釋

      Dijkstra展示動畫,注意此時的邊界是一個圓。

      A*

      為實現A*算法,需要傳遞一個實際啟發式函數,例如兩個節點之間的歐式距離。通過“節點成本”+“節點到目標節點的估算成本”對節點進行加權,通過優先搜索更大可能的節點加快搜索速度。

      關于 A*、Dijkstra、BFS 尋路算法的可視化解釋

      借助啟發式方法,A*可以比Dijkstra或BFS更快地找到正確路徑。

      非允許的啟發式函數

      只有應用可允許啟發式函數,A*才能找到最短路徑,這也意味著算法永遠不會高估實際路徑長度。由于歐氏距離是兩點之間的最短距離/路徑,因此歐氏距離絕不會超出。

      但如果將其乘以常數k>0會怎樣呢?這樣會高估距離,成為非允許的啟發式函數。

      關于 A*、Dijkstra、BFS 尋路算法的可視化解釋

      k值越大,算法越容易到達目標,但同時準確性降低,導致生成的路徑并非總是最短的。

      算法實現

      本項目通過Javascript實現,以便讀者在Web上進行訪問。另外,我使用react渲染UI,使用react-konva渲染圖形。

      路徑發現是指接受隊列類型和啟發式函數,并返回另一個函數,即真實路徑發現(稱為currying)。

      這樣,用戶每次更改設置后,都會使用確定參數創建一個新的路徑發現函數,并將之用于圖搜索。

      為可視化路徑發現的步驟,我使用javascript生成器,這意味著函數返回一個迭代器,而不僅僅是一個值。因此,訪客在每一步都可以生成算法的整個狀態,并將其保存到數組,然后通過頁面頂部的滑塊顯示特定狀態。


      AI研習社是AI學術青年和AI開發者技術交流的在線社區。我們與高校、學術機構和產業界合作,通過提供學習、實戰和求職服務,為AI學術青年和開發者的交流互助和職業發展打造一站式平臺,致力成為中國最大的科技創新人才聚集地。

      如果,你也是位熱愛分享的AI愛好者。歡迎與譯站一起,學習新知,分享成長。

      關于 A*、Dijkstra、BFS 尋路算法的可視化解釋

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      關于 A*、Dijkstra、BFS 尋路算法的可視化解釋

      分享:
      相關文章

      知情人士

      AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 亚洲色情在线播放| 日本高清视频色片wwww| 亚洲女同精品久久女同| 野花国产精品入口| 精品1卡二卡三卡四卡老狼| 亚洲鲁丝片一区二区三区| 国产精品毛片一区二区| 鲁鲁美女影院| 在线毛片免费| 日韩一级亚洲一午夜免费观看中文版国语版 | 久久国模| 青青操影院| 亚洲最大无码中文字幕网站| 在线看免费无码av天堂| 99精品中文| 亚洲高清国产拍精品网络战| 亚洲中文日韩一区二区三区| 国产丝袜打飞机免费在线| 国产美女裸体无遮挡免费视频| 在线 欧美 中文 亚洲 精品| 暖暖视频日本在线观看| 大陆极品少妇内射aaaaa| 东京热大乱w姦| 国产av一区二区三区天堂综合网| 成人国产亚洲| 性欧美长视频免费观看不卡| 国产人妻人伦精品婷婷| 欧美熟妇高潮流白浆| 毛片免费试看| 人妻激情另类乱人伦人妻| 国产三级精品三级| 在线播放亚洲人成电影| 国产精品伦人视频免费看| 中文字幕人妻系列| 国产精品久久精品| 性欧美大战久久久久久久| 成人网站在线进入爽爽爽| 亚洲色偷偷色噜噜狠狠99| 国产精成人| 美日韩av一区二区三区| 久久人妻少妇嫩草av蜜桃|