今天做題遇到了一個算法題目,“請描述意思下A*算法,它是什麼類型的算法??”,當時我看的時候,隱約記得以前好像看過這個算法,因爲印象不是很深刻,就直接寫了深度優先,最短路徑算法。這個寫得不嚴謹,回來之後查了一下A*算法是啥東西。首先第一條出來的是百度百科,A*是一種靜態路由的中求解最有效的算法。我記得以前學習過路由算法就是深度優先,遍歷每個與他連接的節點,取最小權值的節點,把遍歷的節點保存到已經遍歷的對象中或者鏈表中,說明已經標誌過了,然後繼續遍歷未被訪問的對象。今天看了A*算法,也是類似這種型的算法。他的公式表示爲 f(n) = g(n)+h(n);其中f(n)表示從初始節點到目標節點的估價函數,g(n)是實際代價函數,h(n)是到達目標的估價。而廣度優先只有f(n)=g(n)沒有估價,就是沒有方向的意思。A*算法的優異程度取決於這個兩個函數的值,如果估價h(n)取得好,遍歷的節點就減少,那麼計算量就會大大的減少,少走彎路。所以h(n)是關鍵。那h(n)去多少合適呢。在路徑搜索中兩個節點的距離可以通過歐幾里得距離計算的出。這個就要說道啓發式算法,要做到最好,一項工夫可能不能,必須多備技能才行。什麼是啓發算法,我也是第一次聽說的,原諒我算法瞭解的少。不懂就網上查找唄,簡要說明一下什麼啓發式算法。他是爲最優解而提出的,在路徑一樣的情況,在可接受的花費情況下給出可行解,有點類似線性規劃的,最優解,但是是針對數學,我們要做的是遊俠算法,幫助我們的角色hero找到最好的路徑,完成任務。我看了幾個bloger寫得A*算法都是參照一個國外的人寫得,並且引用了裏面的圖片和代碼,說明這個算法學習難度還是有點大。只能說他是路徑搜索算法中最優的,非常有用。在遊戲中經常可以看到。
試題中的A*算法,什麼是A*算法??
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
芯片產業管理和營銷指北(3)—— 贏得客戶
zer0black
2024-06-09 14:34:09
【stars-one】 星念輕小說下載器
Stars-one
2024-06-09 14:22:28
shell編程相關的
shell腳本獲取腳本所在目錄 執行腳本的父目錄不一定是當前的工作目錄。 url=$(dirname $(readlink -f $0))
馬昌偉
2024-06-09 14:16:47
kvm鏈接克隆虛擬機遷移到openstack機器的實驗
馬昌偉
2024-06-09 14:16:47
【Python】DQN處理CartPole-v1
Dsp Tian
2024-06-09 14:14:07
P1355 神祕大三角(凸包)
SnowLove
2024-06-09 14:13:17
前端使用 Konva 實現可視化設計器(13)- 折線 - 最優路徑應用【思路篇】
xachary
2024-06-09 14:10:57
生產計劃範圍的擴展 - 工單的拆分與合併
kentzhang
2024-06-09 14:09:57
APS系統設計經驗分享(時間推導II - 2023.09)
kentzhang
2024-06-09 14:09:57
排程過程中任務鎖定的外延與內涵
kentzhang
2024-06-09 14:09:57
排程系統中關於任務優先級的需求延伸與設計構思
kentzhang
2024-06-09 14:09:57
從零手寫實現 nginx-11-文件處理邏輯與 range 範圍查詢合併
葉止水
2024-06-09 14:02:36
nginx快速分析日誌並找出攻擊IP
xiaobingch
2024-06-09 13:59:16
Vue CLI 4與項目構建實戰指南
Mifen
2024-06-09 13:40:15
24小時熱門文章