機器人路徑優(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)境交互后的結果,因此在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)動作。在一個時間步結束后,根據(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)化
部分代碼:提供5個參考地圖,地圖數(shù)值可以修改,最大訓練次數(shù)等次數(shù)即可自己修改。
部分結果:
(1)6*6的地圖結果:地圖中綠色為通道,藍色為障礙物,黑線為得到的路徑,起始點均標注。
機器人最終路徑:
???1???1
???2???1
???2???2
???2???3
???2???4
???3???4
???4???4
???4???3
???5???3
???6???3
???6???4
???6???5
???6???6
機器人最終路徑長度為 12
機器人在最終路徑下的轉(zhuǎn)向及移動次數(shù)為 23


(2)7*7的地圖結果:地圖中綠色為通道,藍色為障礙物,黑線為得到的路徑,起始點均標注。
機器人最終路徑:
???3???2
???2???2
???2???3
???2???4
???3???4
???4???4
???5???4
???6???4
???6???5
???6???6
???7???6
機器人最終路徑長度為 10
機器人在最終路徑下的轉(zhuǎn)向及移動次數(shù)為 20


(3)8*8的地圖結果:地圖中綠色為通道,藍色為障礙物,黑線為得到的路徑,起始點均標注。
機器人最終路徑:
???2???1
???2???2
???2???3
???2???4
???3???4
???4???4
???5???4
???6???4
???7???4
???8???4
???8???5
???8???6
???8???7
???8???8
機器人最終路徑長度為 13
機器人在最終路徑下的轉(zhuǎn)向及移動次數(shù)為 20


(4)9*9的地圖結果:地圖中綠色為通道,藍色為障礙物,黑線為得到的路徑,起始點均標注。
機器人最終路徑:
???2???2
???2???3
???2???4
???3???4
???4???4
???4???5
???4???6
???4???7
???4???8
???5???8
???6???8
???6???7
???6???6
???7???6
???8???6
???8???7
???9???7
???9???8
???9???9
???8???9
機器人最終路徑長度為 19
機器人在最終路徑下的轉(zhuǎn)向及移動次數(shù)為 39


(5)10*10的地圖結果:地圖中綠色為可行通道,藍色為障礙物,黑線為得到的路徑,起始點均標注。
機器人最終路徑:
???1???1
???2???1
???2???2
???2???3
???2???4
???2???5
???2???6
???2???7
???2???8
???3???8
???4???8
???4???9
???4??10
???5??10
???6??10
???7??10
???8??10
???9??10
??10??10
機器人最終路徑長度為 18
機器人在最終路徑下的轉(zhuǎn)向及移動次數(shù)為 28


三、完整MATLAB代碼
Q-learning求解機器人路徑規(guī)劃的完整MATLAB代碼請?zhí)砑觰p主的主頁聯(lián)系方式。