一、強(qiáng)化學(xué)習(xí)之Q-learning算法
Q-learning算法是強(qiáng)化學(xué)習(xí)算法中的一種,該算法主要包含:Agent、狀態(tài)、動(dòng)作、環(huán)境、回報(bào)和懲罰。Q-learning算法通過(guò)機(jī)器人與環(huán)境不斷地交換信息,來(lái)實(shí)現(xiàn)自我學(xué)習(xí)。Q-learning算法中的Q表是機(jī)器人與環(huán)境交互后的結(jié)果,因此在Q-learning算法中更新Q表就是機(jī)器人與環(huán)境的交互過(guò)程。機(jī)器人在當(dāng)前狀態(tài)s(t)下,選擇動(dòng)作a,通過(guò)環(huán)境的作用,形成新的狀態(tài)s(t+1),并產(chǎn)生回報(bào)或懲罰r(t+1),通過(guò)式(1)更新Q表后,若Q(s,a)值變小,則表明機(jī)器人處于當(dāng)前位置時(shí)選擇該動(dòng)作不是最優(yōu)的,當(dāng)下次機(jī)器人再次處于該位置或狀態(tài)時(shí),機(jī)器人能夠避免再次選擇該動(dòng)作action. 重復(fù)相同的步驟,機(jī)器人與環(huán)境之間不停地交互,就會(huì)獲得到大量的數(shù)據(jù),直至Q表收斂。QL算法使用得到的數(shù)據(jù)去修正自己的動(dòng)作策略,然后繼續(xù)同環(huán)境進(jìn)行交互,進(jìn)而獲得新的數(shù)據(jù)并且使用該數(shù)據(jù)再次改良它的策略,在多次迭代后,Agent最終會(huì)獲得最優(yōu)動(dòng)作。在一個(gè)時(shí)間步結(jié)束后,根據(jù)上個(gè)時(shí)間步的信息和產(chǎn)生的新信息更新Q表格,Q(s,a)更新方式如式(1):
式中:st為當(dāng)前狀態(tài);r(t+1)為狀態(tài)st的及時(shí)回報(bào);a為狀態(tài)st的動(dòng)作空間;α為學(xué)習(xí)速率,α∈[0,1];γ為折扣速率,γ∈[0,1]。當(dāng)α=0時(shí),表明機(jī)器人只向過(guò)去狀態(tài)學(xué)習(xí),當(dāng)α=1時(shí),表明機(jī)器人只能學(xué)習(xí)接收到的信息。當(dāng)γ=1時(shí),機(jī)器人可以學(xué)習(xí)未來(lái)所有的獎(jiǎng)勵(lì),當(dāng)γ=0時(shí),機(jī)器人只能接受當(dāng)前的及時(shí)回報(bào)。
每個(gè)狀態(tài)的最優(yōu)動(dòng)作通過(guò)式(2)產(chǎn)生:
Q-learning算法的搜索方向?yàn)樯舷伦笥宜膫€(gè)方向,如下圖所示:
Q-learning算法基本原理參考文獻(xiàn):
[1]王付宇,張康,謝昊軒等.基于改進(jìn)Q-learning算法的移動(dòng)機(jī)器人路徑優(yōu)化[J].系統(tǒng)工程,2022,40(04):100-109.
二、Q-learning算法求解機(jī)器人路徑優(yōu)化
部分代碼:提供參考地圖,地圖數(shù)值可以修改(地圖中0代表障礙物,50代表通道 ,70代表起點(diǎn) ,100代表終點(diǎn)),最大訓(xùn)練次數(shù)等參數(shù)可根據(jù)自己需要修改。
close all
clear
clc
global maze2D;
global tempMaze2D;
NUM_ITERATIONS =700; % 最大訓(xùn)練次數(shù)(可以修改)
DISPLAY_FLAG = 0; % 是否顯示(1 顯示; 0 不顯示)注意:設(shè)置為0運(yùn)行速度更快
CurrentDirection = 4; % 當(dāng)前機(jī)器人的朝向(1-4具體指向如下)
% 1 - means robot facing up
% 2 - means robot facing left
% 3 - means robot facing right
% 4 - means robot facing down
maze2D=xlsread('10x10.xlsx');%%導(dǎo)入地圖(提供5個(gè)地圖,可以修改) maze2D中 0代表障礙物 50代表通道 70代表起點(diǎn) 100代表終點(diǎn)
[startX,startY]=find(maze2D==70);%獲取起點(diǎn)
[goalX,goalY] = find(maze2D==100);%獲取終點(diǎn)
orgMaze2D = maze2D;
tempMaze2D = orgMaze2D;
CorlorStr='jet';
地圖中綠色為通道,藍(lán)色為障礙物,紅線為得到的路徑,起始點(diǎn)均標(biāo)注。
(1)第一次結(jié)果
機(jī)器人最終路徑:
??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
機(jī)器人最終路徑長(zhǎng)度為 107
機(jī)器人在最終路徑下的轉(zhuǎn)向及移動(dòng)次數(shù)為 189
(2)第二次結(jié)果
機(jī)器人最終路徑:
??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
機(jī)器人最終路徑長(zhǎng)度為 105
機(jī)器人在最終路徑下的轉(zhuǎn)向及移動(dòng)次數(shù)為 186
(3)第三次結(jié)果
機(jī)器人最終路徑:
??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
機(jī)器人最終路徑長(zhǎng)度為 107
機(jī)器人在最終路徑下的轉(zhuǎn)向及移動(dòng)次數(shù)為 200
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-620679.html
三、完整MATLAB代碼
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-620679.html
到了這里,關(guān)于強(qiáng)化學(xué)習(xí)路徑優(yōu)化:基于Q-learning算法的機(jī)器人路徑優(yōu)化(MATLAB)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!