このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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)