第五章 路徑規劃演算法之硬體電路設計
5.2 螞蟻演算法硬體電路設計
5.2.4 路徑建立模組
路徑建立模組包含追隨行為模組和探索行為模組。這兩個模組會分別依照轉 換規則產生格點,再將所產生的格點傳送至距離模組由亂數決定何者為下一個前 進的格點。
42
追隨行為模組的邏輯符號圖如圖 5- 9 所示,表 5- 4 為訊號腳位之說明。
Path building of exploitation module
iCLK iRst
best_node compare_pulse
next_node_dis transition
圖 5- 9 追隨行為模組訊號圖
表 5- 4 追隨行為模組訊號說明表
訊號名稱 傳輸方向 功能說明
iCLK_50 input 時脈訊號
iRst input 重置訊號
compare_pulse input 比較訊號
next_node_dis input 下一個格點
transition input 轉換值
best_node output 最佳格點
首先,先介紹追隨行為模組,硬體架構圖如圖 5- 10 所示,動作原理敘述如 下,當比較致能訊號 compare_pulse 上升後,開始接收轉換機率模組輸出格點的 轉換值 transition,並進行比較,若目前格點的轉換值優於前一個格點的轉換值,
則選擇目前格點為暫存最優解,依此類推,直到所有可行格點比較結束後,即可 挑選出下一個前進的格點。
43
Compare state machine
next_nose_dis transition
compare_pulse Transition
compare
best_transion
S E L
reg_best_node
best_node
建立路徑之追隨行為模組
圖 5- 10 追隨行為模組之硬體架構圖
比較方法如表 5- 5。先給最優解一預設值,此範例假設預設值為 100,下一 步可行格點有五個,依序將每個格點的轉換機率與最優解比較,格點 1 的轉換機 率為 25,小於最優解的預設值 100,所以最優解則被 25 取代。再將格點 2 的轉 換機率 14 與最優解 25 比較,格點 2 轉換機率小於格點 1,因此下一格點則換成 格點 2,以此類推,直到所有可行格點都比較結束所產生的最優解,就是螞蟻要 前進的下一個格點。
表 5- 5 追隨行為模組比較方法說明表
格點編號 轉換機率 最優解 (預設值=100) 最優解格點
1 25 (25<10) → 25 1
2 14 (14<25) → 14 2
3 39 (39>14) → 14 2
4 26 (26>14) → 14 2
5 57 (57>14) → 14 2
44
探索行為模組的邏輯符號圖如圖 5- 11 所示,表 5- 6 為訊號腳位之說明。
Path building of exploration module
iCLK iRst
final_next begin_rand
next_node_dis begin_pro
probability
圖 5- 11 探索行為模組訊號圖
表 5- 6 探索行為模組訊號說明表
訊號名稱 傳輸方向 功能說明
iCLK_50 input 時脈訊號
iRst input 重置訊號
begin_rand input 亂數致能訊號
next_node_dis input 下一個格點
begin_pro input 機率致能訊號
probability input 轉換機率資訊
final_next output 最佳格點
探索行為模組和追隨行為模組的功能都是為了找出下一個最適合螞蟻前進 的格點。主要的差別在於探索行為是利用隨機的過程,而不是直接選擇最優解。
硬體架構圖如圖 5- 12,利用轉換值 transition 和總和資訊 total_transition 計算出格 點的轉換機率 probability,藉由輪盤法挑選出下一個格點。以表 5- 7 為例,將每 個格點的轉換值除以總合資訊得到轉換機率,為了避免浮點數的問題,把轉換機 率放大 1000 倍,再由隨機亂數模組產生一個介於 1~1000 的隨機亂數 randvalue1。
假設產生的亂數為 232,介於格點 1 和格點 2 範圍之間,則選擇格點 2 為下一個 格點。若亂數為 653,螞蟻則選擇格點 5 前進。因此,轉換機率愈大的格點,被 挑選中的機率也就愈大。
45
表 5- 7 探索行為模組說明表
格點編號 轉換值 轉換機率 累加值
1 25 15.52% → 155 155 2 14 8.70% → 87 242 3 39 24.22% → 242 484 4 26 16.15% → 161 646 5 57 35.40% → 354 1000 Total 161
RandCompare state machine
compare
S E L
begin_rand total_transition
probability randvalue1
next_nose_dis
next
final_next
建立路徑之探索行為模組
transition
圖 5- 12 探索行為模組之硬體架構圖