Main Content

createMDP

마르코프 결정 과정 모델 만들기

설명

예제

MDP = createMDP(states,actions)는 지정된 상태와 행동을 갖는 마르코프 결정 과정 모델을 만듭니다.

예제

모두 축소

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"];

입력 인수

모두 축소

모델 상태로, 다음 중 하나로 지정됩니다.

  • 양의 정수 — 모델 상태의 개수를 지정합니다. 이 경우 각 상태는 디폴트 이름을 가집니다(예: 첫 번째 상태의 경우 "s1").

  • string형 벡터 — 상태 이름을 지정합니다. 이 경우 총 상태 개수는 벡터의 길이와 같습니다.

모델 행동으로, 다음 중 하나로 지정됩니다.

  • 양의 정수 — 모델 행동의 개수를 지정합니다. 이 경우 각 행동은 디폴트 이름을 가집니다(예: 첫 번째 행동의 경우 "a1").

  • string형 벡터 — 행동 이름을 지정합니다. 이 경우 총 행동 개수는 벡터의 길이와 같습니다.

출력 인수

모두 축소

MDP 모델로, 다음 속성을 갖는 GenericMDP 객체로 반환됩니다.

현재 상태의 이름으로, string형으로 지정됩니다.

상태 이름으로, 상태 개수와 같은 길이의 string형 벡터로 지정됩니다.

행동 이름으로, 행동 개수와 같은 길이의 string형 벡터로 지정됩니다.

상태 천이 행렬로, 3차원 배열로 지정됩니다. 이는 환경에서 에이전트의 가능한 이동을 결정합니다. 상태 천이 행렬 T는 에이전트가 행동 a를 수행하여 현재 상태 s에서 가능한 다음 상태 s'으로 이동할 가능성을 나타내는 확률 행렬입니다. T는 S×S×A 배열입니다. 여기서 S는 상태 개수이고 A는 행동 개수입니다. 다음과 같이 표현됩니다.

T(s,s',a) = probability(s'|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];

보상 천이 행렬로, 3차원 배열로 지정됩니다. 이는 에이전트가 환경에서 행동을 수행한 후에 받는 보상의 양을 결정합니다. R의 크기와 형태는 상태 천이 행렬 T와 동일합니다. 행동 a를 수행하여 상태 s에서 상태 s'으로 이동할 때 얻는 보상은 다음과 같이 표현됩니다.

r = R(s,s',a).

그리드 월드의 종료 상태 이름으로, 상태 이름으로 구성된 string형 벡터로 지정됩니다.

버전 내역

R2019a에 개발됨