強化學習路徑優(yōu)化:基于Q-learning算法的機器人路徑優(yōu)化(MATLAB)
一、強化學習之Q-learning算法
Q-learning算法是強化學習算法中的一種,該算法主要包含:Agent、狀態(tài)、動作、環(huán)境、回報和懲罰。Q-learning算法通過機器人與環(huán)境不斷地交換信息,來實現(xiàn)自我學習。Q-learning算法中的Q表是機器人與環(huán)境交互后的結(jié)果,因此在Q-learning算法中更新Q表就是機器人與環(huán)境的交互過程。機器人在當前狀態(tài)s(t)下,選擇動作a,通過環(huán)境的作用,形成新的狀態(tài)s(t+1),并產(chǎn)生回報或懲罰r(t+1),通過式(1)更新Q表后,若Q(s,a)值變小,則表明機器人處于當前位置時選擇該動作不是最優(yōu)的,當下次機器人再次處于該位置或狀態(tài)時,機器人能夠避免再次選擇該動作action. 重復相同的步驟,機器人與環(huán)境之間不停地交互,就會獲得到大量的數(shù)據(jù),直至Q表收斂。QL算法使用得到的數(shù)據(jù)去修正自己的動作策略,然后繼續(xù)同環(huán)境進行交互,進而獲得新的數(shù)據(jù)并且使用該數(shù)據(jù)再次改良它的策略,在多次迭代后,Agent最終會獲得最優(yōu)動作。在一個時間步結(jié)束后,根據(jù)上個時間步的信息和產(chǎn)生的新信息更新Q表格,Q(s,a)更新方式如式(1):

式中:st為當前狀態(tài);r(t+1)為狀態(tài)st的及時回報;a為狀態(tài)st的動作空間;α為學習速率,α∈[0,1];γ為折扣速率,γ∈[0,1]。當α=0時,表明機器人只向過去狀態(tài)學習,當α=1時,表明機器人只能學習接收到的信息。當γ=1時,機器人可以學習未來所有的獎勵,當γ=0時,機器人只能接受當前的及時回報。
每個狀態(tài)的最優(yōu)動作通過式(2)產(chǎn)生:

Q-learning算法的搜索方向為上下左右四個方向,如下圖所示:

Q-learning算法基本原理參考文獻:
[1]王付宇,張康,謝昊軒等.基于改進Q-learning算法的移動機器人路徑優(yōu)化[J].系統(tǒng)工程,2022,40(04):100-109.
二、Q-learning算法求解機器人路徑優(yōu)化
部分代碼:提供參考地圖,地圖數(shù)值可以修改(地圖中0代表障礙物,50代表通道 ,70代表起點 ,100代表終點),最大訓練次數(shù)等參數(shù)可根據(jù)自己需要修改。
地圖中綠色為通道,藍色為障礙物,紅線為得到的路徑,起始點均標注。
(1)第一次結(jié)果
機器人最終路徑:
??49???1
??48???1
??47???1
??47???2
??47???3
??48???3
??48???4
??48???5
??48???6
??48???7
??48???8
??47???8
??47???9
??47??10
??46??10
??45??10
??45??11
??45??12
??44??12
??43??12
??42??12
??42??13
??42??14
??42??15
??42??16
??42??17
??42??18
??42??19
??41??19
??41??20
??41??21
??41??22
??40??22
??40??23
??40??24
??40??25
??39??25
??38??25
??37??25
??36??25
??35??25
??34??25
??34??24
??33??24
??32??24
??31??24
??30??24
??30??25
??29??25
??28??25
??28??24
??27??24
??26??24
??25??24
??24??24
??24??25
??24??26
??24??27
??23??27
??22??27
??21??27
??21??28
??21??29
??21??30
??22??30
??22??31
??22??32
??22??33
??22??34
??21??34
??21??35
??21??36
??20??36
??19??36
??18??36
??17??36
??16??36
??15??36
??15??37
??15??38
??14??38
??14??39
??14??40
??14??41
??13??41
??12??41
??11??41
??10??41
???9??41
???8??41
???8??40
???7??40
???6??40
???5??40
???4??40
???4??41
???4??42
???4??43
???3??43
???2??43
???1??43
???1??44
???1??45
???1??46
???1??47
???2??47
???2??48
???1??48
機器人最終路徑長度為 107
機器人在最終路徑下的轉(zhuǎn)向及移動次數(shù)為 189


(2)第二次結(jié)果
機器人最終路徑:
??49???1
??48???1
??47???1
??47???2
??46???2
??45???2
??44???2
??44???3
??44???4
??43???4
??42???4
??42???5
??42???6
??42???7
??42???8
??42???9
??42??10
??41??10
??41??11
??41??12
??42??12
??42??13
??42??14
??42??15
??42??16
??42??17
??42??18
??42??19
??41??19
??41??20
??41??21
??41??22
??40??22
??40??23
??40??24
??40??25
??39??25
??38??25
??37??25
??36??25
??35??25
??34??25
??34??24
??33??24
??32??24
??31??24
??30??24
??30??25
??29??25
??28??25
??28??24
??27??24
??26??24
??25??24
??24??24
??24??25
??24??26
??24??27
??23??27
??22??27
??21??27
??21??28
??21??29
??21??30
??22??30
??22??31
??22??32
??22??33
??22??34
??21??34
??21??35
??21??36
??20??36
??19??36
??19??37
??18??37
??18??38
??17??38
??16??38
??15??38
??14??38
??14??39
??14??40
??14??41
??13??41
??12??41
??11??41
??10??41
???9??41
???8??41
???8??40
???7??40
???6??40
???5??40
???4??40
???4??41
???4??42
???4??43
???3??43
???2??43
???1??43
???1??44
???1??45
???1??46
???1??47
???1??48
機器人最終路徑長度為 105
機器人在最終路徑下的轉(zhuǎn)向及移動次數(shù)為 186


(3)第三次結(jié)果
機器人最終路徑:
??49???1
??48???1
??47???1
??47???2
??47???3
??48???3
??48???4
??48???5
??48???6
??48???7
??48???8
??47???8
??47???9
??47??10
??46??10
??45??10
??45??11
??44??11
??44??12
??43??12
??42??12
??42??13
??42??14
??42??15
??42??16
??42??17
??42??18
??42??19
??41??19
??41??20
??41??21
??41??22
??40??22
??40??23
??40??24
??40??25
??39??25
??38??25
??37??25
??36??25
??35??25
??34??25
??34??24
??33??24
??32??24
??31??24
??30??24
??30??25
??29??25
??28??25
??28??24
??27??24
??26??24
??25??24
??24??24
??24??25
??24??26
??24??27
??23??27
??22??27
??21??27
??21??28
??21??29
??21??30
??22??30
??22??31
??22??32
??22??33
??22??34
??21??34
??21??35
??21??36
??20??36
??19??36
??19??37
??18??37
??18??38
??17??38
??16??38
??15??38
??14??38
??14??39
??14??40
??14??41
??13??41
??12??41
??11??41
??10??41
???9??41
???8??41
???8??40
???7??40
???6??40
???5??40
???4??40
???4??41
???4??42
???4??43
???3??43
???2??43
???1??43
???1??44
???1??45
???1??46
???2??46
???2??47
???1??47
???1??48
機器人最終路徑長度為 107
機器人在最終路徑下的轉(zhuǎn)向及移動次數(shù)為 200

