このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
createGridWorld
強化学習用の 2 次元グリッド ワールドの作成
説明
例
この例では、以下のルールをもつ 5 行 5 列のグリッド ワールドについて考えます。
境界線で囲まれた 5 行 5 列のグリッド ワールド。4 つのアクション (北 = 1、南 = 2、東 = 3、西 = 4) が可能。
エージェントはセル [2,1] (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)
入力引数
グリッド ワールドの行数。スカラーとして指定します。
グリッド ワールドの列数。スカラーとして指定します。
アクション名。'Standard'
または 'Kings'
のいずれかとして指定します。moves
の設定によって、以下のようになります。
'Standard'
の場合、アクションは['N';'S';'E';'W']
。'Kings'
の場合、アクションは['N';'S';'E';'W';'NE';'NW';'SE';'SW']
。
出力引数
2 次元グリッド ワールド。以下にリストされているプロパティをもつ GridWorld
オブジェクトとして返されます。詳細については、Create Custom Grid World Environmentsを参照してください。
グリッド ワールドのサイズ。[m,n]
ベクトルとして指定します。
現在の状態の名前。string として指定します。
アクション名。string ベクトルとして指定します。Actions
ベクトルの長さは、引数 moves
によって決まります。
Actions
は次の長さの string ベクトルです。
4 (
moves
が'Standard'
として指定されている場合)。8 (
moves
が'Kings'
として指定されている場合)。
状態遷移行列。環境内でエージェントが取り得る動きを決定する 3 次元配列として指定します。状態遷移行列 T
は、アクション a
を実行することによって、エージェントが現在の状態 s
から、考えられる次の状態 s'
に移行する可能性を示す確率行列です。T
は、次で与えられます。
T
は次のようになります。
K
×K
×4 の配列 (moves
が'Standard'
として指定されている場合)。ここで、K
=m
*n
。K
×K
×8 の配列 (moves
が'Kings'
として指定されている場合)。
報酬遷移行列は 3 次元配列として指定され、環境内でアクションを実行した後にエージェントが受け取る報酬の量を決定します。R
の形状とサイズは状態遷移行列 T
と同じです。報酬遷移行列 R
は、次で与えられます。
R
は次のようになります。
K
×K
×4 の配列 (moves
が'Standard'
として指定されている場合)。ここで、K
=m
*n
。K
×K
×8 の配列 (moves
が'Kings'
として指定されている場合)。
グリッド ワールド内で到達できない状態名。string ベクトルとして指定します。
グリッド ワールドでの終了状態名。string ベクトルとして指定します。
バージョン履歴
R2019a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)