A 演算法筆記

2021-10-11 19:12:26 字數 698 閱讀 9598

a演算法筆記

如有錯誤,煩請指正,謝謝大家

a是一種尋路演算法,通常用來解決path finding problem,在a演算法中,我們把地圖劃分成乙個個小方格(其他圖形也可以)。地圖中包含起點、終點、障礙物等資訊。我們通過a演算法找出從起點到終點的路徑,通過小方格乙個位置乙個位置的移動來到達終點。每個方格都有兩個狀態:可走狀態和不可走狀態,那些被障礙物佔據的方格就成為不可走狀態。a*演算法中還包含openlist和closelist兩個元素。

演算法的大致過程

1、從起點開始,把起點和與起點相鄰且可達的方格加入到openlist當中

2、把起點設為這些方格的父親節點

3、把起點從openlist中移除,並把它加入到closelist之中

4、計算組成路徑方格,計算組成路徑方格主要靠f=g+h,其中g為移動到指定方格的移動代價,可以設橫豎移動代價為10,對角線移動代價為14(這樣操作可以加快計算機的運算速度)h可以用曼哈頓距離來估算出來(移動格仔的總數乘10)

5、把起點加入closelist中之後,我們選擇f值最小的那個格仔進行搜尋

6、把這個格仔從openlist中取出,檢查所有與他相鄰且可達的方格,若這些方格有在openlist中,則選擇f值最小的那個進行搜尋,若都不在,則把他們加入到openlist中去,

7、檢查當前路徑是否最優,即當前方格到所選方格g值是不是變小了,若沒有不做任何操作,若變小了,重新計算那個方格的f值和g值

《演算法筆記》Dijkstra演算法筆記

今日在華農終於接近完成閱讀演算法筆記,有點點成就感,做下dijkstra跟dfs演算法結合的筆記 簡單狀態 純dijkstra include include include define inf 1000000000 using namespace std const int maxn 1010 ...

回溯 皇后 演算法筆記 演算法筆記

分治演算法 線性時間選擇 o n 33 隨機線性選擇 偽 o n int partition type a,int p,int r return table n 1 w 1 main function else else lowcost i 0 for int i 1 i n i int temp ...

回溯 皇后 演算法筆記 演算法筆記

遞迴演算法 能夠用遞迴解決的問題需要滿足三個條件 原問題可以轉換為乙個或多個子問題來求解,而這些子問題的求解方法和原問題完全相同,只是規模不同 遞迴呼叫次數必須是有限的 必須有結束遞迴的條件 遞迴出口 來終止遞迴。設計遞迴演算法模式先求解問題的遞迴模型。在設計遞迴演算法的時候,如果糾結遞迴樹的每乙個...