Main Content

rlMDPEnv

強化学習のためのマルコフ決定過程環境の作成

説明

マルコフ決定過程 (MDP) は、離散時間の確率的制御プロセスです。これは、結果が部分的にランダムであり、部分的に判定者の制御下にある状況での判定をモデル化するための数学的なフレームワークを提供します。MDP は、強化学習を使用して解決された最適化問題を研究するのに役立ちます。rlMDPEnv を使用し、MATLAB® で強化学習のためのマルコフ決定過程環境を作成します。

作成

説明

env = rlMDPEnv(MDP) は、指定された MDP モデルを使用して、強化学習環境 env を作成します。

入力引数

すべて展開する

マルコフ決定過程モデル。次のいずれかとして指定します。

  • createGridWorld を使用して作成された GridWorld オブジェクト。

  • createMDP を使用して作成された GenericMDP オブジェクト。

プロパティ

すべて展開する

マルコフ決定過程モデル。GridWorld オブジェクトまたは GenericMDP オブジェクトとして指定します。

リセット関数。関数ハンドルとして指定します。

オブジェクト関数

getActionInfoObtain action data specifications from reinforcement learning environment, agent, or experience buffer
getObservationInfoObtain observation data specifications from reinforcement learning environment, agent, or experience buffer
simSimulate trained reinforcement learning agents within specified environment
trainTrain reinforcement learning agents within a specified environment
validateEnvironmentValidate custom reinforcement learning environment

すべて折りたたむ

この例では、以下のルールをもつ 5 行 5 列のグリッド ワールドについて考えます。

  1. 境界線で囲まれた 5 行 5 列のグリッド ワールド。4 つのアクション (北 = 1、南 = 2、東 = 3、西 = 4) が可能。

  2. エージェントはセル [2,1] (2 行目の 1 列目) から開始する。

  3. セル [5,5] (青) の終了状態に到達すると、エージェントは報酬 +10 を受け取る。

  4. 環境には、セル [2,4] からセル [4,4] への、+5 の報酬を伴う特別なジャンプが含まれる。

  5. エージェントは、セル [3,3]、[3,4]、[3,5]、および [4,3] (黒いセル) の障害物によってブロックされる。

  6. 他のすべてのアクションは報酬が -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)

バージョン履歴

R2019a で導入