今回も数式に具体例を当てはめることで理解したつもりになっていくことにする.
報酬が現在の状態のみで決まる場合()のBellman Equationは以下となる.
を求めるにはが求まっている必要があり,の計算にはが必要で……という感じで,全ての値が計算済である必要がある.
全ての計算を行うのは困難なことがある.動的計画法ではに適当な値を入れておいて,複数回計算を繰り返すことで値の精度を上げていくものである.
動的計画法により各状態の価値を計算する方法が価値反復法(Value Iteration)である.
Bellman Equationを以下のように書き直す.
は前回の計算結果を使って求められる.
これを繰り返し,となった時点で計算を終了する.
なお,と初期化しておく.
具体例にて計算してみよう.
例題は前回の記事と同様のものを用いる.
yuri-processing-club.hatenablog.com
遷移図は以下のような感じだ.
の時,に注意して計算すると,
同様にして,,である.
全部は書かないが,こんな感じになる.
再度同じ計算をしよう.
の時
上記において,の取り得る値はかであり,その状態での報酬の期待値なので結果は相変わらずである.
同様に,,である.
値は更新されるのか不安になりつつ,今度は以下を計算してみる.
の時
同様に,の時
よって,
次に,
の時
の時も同様に.
よって,
の時
ここで,すでに求まっているはどういう値になるだろう.
の次の状態は存在しないので,である.
よって何度計算をしてもである.
同様に,
の時
の時も同様.
よって,.
さて,
の時
の時は省略.
.
こんな感じで,報酬がもらえる状態に近いところから順番に求まっていっている.
動的計画法ではこのように全ての状態について繰り返し計算することで精度を高めていくものである.
*1:R(s)はs'やaによらないので(1)式と同様に外に出してもいいと思うが,参考にした書籍がこのように書いてあるのでとりあえずそれに倣う.