createGridWorld
강화 학습을 위한 2차원 그리드 월드 만들기
설명
예제
그리드 월드 환경 만들기
이 예제에서는 다음 규칙을 갖는 5×5 그리드 월드가 있다고 가정해 보겠습니다.
테두리로 경계가 지어진 5×5 그리드 월드는 4가지 가능한 행동(북쪽 = 1, 남쪽 = 2, 동쪽 = 3, 서쪽 = 4)을 가집니다.
에이전트는 셀 [2,1](두 번째 행, 첫 번째 열)부터 시작합니다.
에이전트가 셀 [5,5](파란색)의 종료 상태에 도달하면 보상으로 +10을 받습니다.
환경에는 셀 [2,4]에서 셀 [4,4]로의 특별한 점프가 포함되어 있으며, 보상으로 +5가 주어집니다.
에이전트는 셀 [3,3], [3,4], [3,5] 및 [4,3](검은색 셀)에서 장애물로 막혀 있습니다.
다른 모든 행동에서는 보상으로 -1이 주어집니다.
먼저, createGridWorld
함수를 사용하여 GridWorld
객체를 만듭니다.
GW = createGridWorld(5,5)
GW = GridWorld with properties: GridSize: [5 5] CurrentState: "[1,1]" States: [25x1 string] Actions: [4x1 string] T: [25x25x4 double] R: [25x25x4 double] ObstacleStates: [0x1 string] TerminalStates: [0x1 string] ProbabilityTolerance: 8.8818e-16
이제 초기 상태, 종료 상태, 장애물 상태를 설정합니다.
GW.CurrentState = '[2,1]'; GW.TerminalStates = '[5,5]'; GW.ObstacleStates = ["[3,3]";"[3,4]";"[3,5]";"[4,3]"];
장애물 상태에 대한 상태 천이 행렬을 업데이트하고, 장애물 상태에 대해 점프 규칙을 설정합니다.
updateStateTranstionForObstacles(GW) GW.T(state2idx(GW,"[2,4]"),:,:) = 0; GW.T(state2idx(GW,"[2,4]"),state2idx(GW,"[4,4]"),:) = 1;
그런 다음, 보상 천이 행렬로 보상을 정의합니다.
nS = numel(GW.States); nA = numel(GW.Actions); GW.R = -1*ones(nS,nS,nA); GW.R(state2idx(GW,"[2,4]"),state2idx(GW,"[4,4]"),:) = 5; GW.R(:,state2idx(GW,GW.TerminalStates),:) = 10;
이제 rlMDPEnv
와 GridWorld
객체 GW
를 사용하여 그리드 월드 환경을 만듭니다.
env = rlMDPEnv(GW)
env = rlMDPEnv with properties: Model: [1x1 rl.env.GridWorld] ResetFcn: []
plot
함수를 사용하여 그리드 월드 환경을 시각화할 수 있습니다.
plot(env)
입력 인수
m
— 그리드 월드의 행 개수
스칼라
그리드 월드의 행 개수로, 스칼라로 지정됩니다.
n
— 그리드 월드의 열 개수
스칼라
그리드 월드의 열 개수로, 스칼라로 지정됩니다.
moves
— 행동 이름
'Standard'
(디폴트 값) | 'Kings'
행동 이름으로, 'Standard'
또는 'Kings'
로 지정됩니다. moves
가 다음과 같이 설정될 때, 행동은 다음과 같습니다.
'Standard'
로 설정된 경우 행동은['N';'S';'E';'W']
입니다.'Kings'
로 설정된 경우 행동은['N';'S';'E';'W';'NE';'NW';'SE';'SW']
입니다.
출력 인수
GW
— 2차원 그리드 월드
GridWorld
객체
2차원 그리드 월드로, 아래 나열된 속성을 갖는 GridWorld
객체로 반환됩니다. 자세한 내용은 Create Custom Grid World Environments 항목을 참조하십시오.
GridSize
— 그리드 월드의 크기
[m,n]
벡터
그리드 월드의 크기로, [m,n]
벡터로 지정됩니다.
CurrentState
— 현재 상태의 이름
string형
현재 상태의 이름으로, string형으로 지정됩니다.
Actions
— 행동 이름
string형 벡터
행동 이름으로, string형 벡터로 지정됩니다. Actions
벡터의 길이는 moves
인수에 의해 결정됩니다.
Actions
는 다음 길이의 string형 벡터입니다.
moves
가'Standard'
로 지정된 경우 4.moves
가'Kings'
로 지정된 경우 8.
T
— 상태 천이 행렬
3차원 배열
상태 천이 행렬로, 3차원 배열로 지정됩니다. 이는 환경에서 에이전트의 가능한 이동을 결정합니다. 상태 천이 행렬 T
는 에이전트가 행동 a
를 수행하여 현재 상태 s
에서 가능한 다음 상태 s'
으로 이동할 가능성을 나타내는 확률 행렬입니다. T
는 다음과 같이 지정됩니다.
T
는 다음과 같습니다.
moves
가'Standard'
로 지정된 경우K
×K
×4 배열. 여기서K
=m
*n
입니다.moves
가'Kings'
로 지정된 경우K
×K
×8 배열.
R
— 보상 천이 행렬
3차원 배열
보상 천이 행렬로, 3차원 배열로 지정됩니다. 이는 에이전트가 환경에서 행동을 수행한 후에 받는 보상의 양을 결정합니다. R
의 크기와 형태는 상태 천이 행렬 T
와 동일합니다. 보상 천이 행렬 R
은 다음과 같이 지정됩니다.
R
은 다음과 같습니다.
moves
가'Standard'
로 지정된 경우K
×K
×4 배열. 여기서K
=m
*n
입니다.moves
가'Kings'
로 지정된 경우K
×K
×8 배열.
ObstacleStates
— 그리드 월드에서 도달할 수 없는 상태 이름
string형 벡터
그리드 월드에서 도달할 수 없는 상태 이름으로, string형 벡터로 지정됩니다.
TerminalStates
— 그리드 월드의 종료 상태 이름
string형 벡터
그리드 월드의 종료 상태 이름으로, string형 벡터로 지정됩니다.
버전 내역
R2019a에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)