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 でなければなりません。したがって、ある状態からのすべての確率的遷移は同時に指定しなければなりません。
たとえば、アクション 4
の後の状態 1
が状態 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 コマンド ウィンドウに入力して実行してください。Web ブラウザーは 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)