createMDP
마르코프 결정 과정 모델 만들기
설명
예제
MDP 모델 만들기
8개의 상태와 2개의 가능한 행동을 갖는 MDP 모델을 만듭니다.
MDP = createMDP(8,["up";"down"]);
상태 천이와 관련 보상을 지정합니다.
% State 1 Transition and Reward MDP.T(1,2,1) = 1; MDP.R(1,2,1) = 3; MDP.T(1,3,2) = 1; MDP.R(1,3,2) = 1; % State 2 Transition and Reward MDP.T(2,4,1) = 1; MDP.R(2,4,1) = 2; MDP.T(2,5,2) = 1; MDP.R(2,5,2) = 1; % State 3 Transition and Reward MDP.T(3,5,1) = 1; MDP.R(3,5,1) = 2; MDP.T(3,6,2) = 1; MDP.R(3,6,2) = 4; % State 4 Transition and Reward MDP.T(4,7,1) = 1; MDP.R(4,7,1) = 3; MDP.T(4,8,2) = 1; MDP.R(4,8,2) = 2; % State 5 Transition and Reward MDP.T(5,7,1) = 1; MDP.R(5,7,1) = 1; MDP.T(5,8,2) = 1; MDP.R(5,8,2) = 9; % State 6 Transition and Reward MDP.T(6,7,1) = 1; MDP.R(6,7,1) = 5; MDP.T(6,8,2) = 1; MDP.R(6,8,2) = 1; % State 7 Transition and Reward MDP.T(7,7,1) = 1; MDP.R(7,7,1) = 0; MDP.T(7,7,2) = 1; MDP.R(7,7,2) = 0; % State 8 Transition and Reward MDP.T(8,8,1) = 1; MDP.R(8,8,1) = 0; MDP.T(8,8,2) = 1; MDP.R(8,8,2) = 0;
모델의 종료 상태를 지정합니다.
MDP.TerminalStates = ["s7";"s8"];
입력 인수
states
— 모델 상태
양의 정수 | string형 벡터
모델 상태로, 다음 중 하나로 지정됩니다.
양의 정수 — 모델 상태의 개수를 지정합니다. 이 경우 각 상태는 디폴트 이름을 가집니다(예: 첫 번째 상태의 경우
"s1"
).string형 벡터 — 상태 이름을 지정합니다. 이 경우 총 상태 개수는 벡터의 길이와 같습니다.
actions
— 모델 행동
양의 정수 | string형 벡터
모델 행동으로, 다음 중 하나로 지정됩니다.
양의 정수 — 모델 행동의 개수를 지정합니다. 이 경우 각 행동은 디폴트 이름을 가집니다(예: 첫 번째 행동의 경우
"a1"
).string형 벡터 — 행동 이름을 지정합니다. 이 경우 총 행동 개수는 벡터의 길이와 같습니다.
출력 인수
MDP
— MDP 모델
GenericMDP
객체
MDP 모델로, 다음 속성을 갖는 GenericMDP
객체로 반환됩니다.
CurrentState
— 현재 상태의 이름
string형
현재 상태의 이름으로, string형으로 지정됩니다.
States
— 상태 이름
string형 벡터
상태 이름으로, 상태 개수와 같은 길이의 string형 벡터로 지정됩니다.
Actions
— 행동 이름
string형 벡터
행동 이름으로, 행동 개수와 같은 길이의 string형 벡터로 지정됩니다.
T
— 상태 천이 행렬
3차원 배열
상태 천이 행렬로, 3차원 배열로 지정됩니다. 이는 환경에서 에이전트의 가능한 이동을 결정합니다. 상태 천이 행렬 T
는 에이전트가 행동 a
를 수행하여 현재 상태 s
에서 가능한 다음 상태 s'
으로 이동할 가능성을 나타내는 확률 행렬입니다. T
는 S×S×A 배열입니다. 여기서 S는 상태 개수이고 A는 행동 개수입니다. 다음과 같이 표현됩니다.
어떤 행동 뒤에 종료가 아닌 상태 s
로부터 천이하는 확률은 그 총합이 1이어야 합니다. 따라서, 주어진 상태로부터 발생하는 모든 확률적 천이를 동시에 지정해야 합니다.
예를 들어, 상태 1
에서 행동 4
를 선택하여 상태 2
또는 상태 3
으로 이동할 확률이 동일함을 나타내려면 다음을 사용하십시오.
MDP.T(1,[2 3],4) = [0.5 0.5];
또한 어떤 행동 다음에 동일한 상태에 남아 있을 확률을 지정할 수도 있습니다. 예를 들면 다음과 같습니다.
MDP.T(1,[1 2 3 4],1) = [0.25 0.25 0.25 0.25];
R
— 보상 천이 행렬
3차원 배열
보상 천이 행렬로, 3차원 배열로 지정됩니다. 이는 에이전트가 환경에서 행동을 수행한 후에 받는 보상의 양을 결정합니다. R
의 크기와 형태는 상태 천이 행렬 T
와 동일합니다. 행동 a
를 수행하여 상태 s
에서 상태 s'
으로 이동할 때 얻는 보상은 다음과 같이 표현됩니다.
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)