icoxfog417 / baby-steps-of-rl-ja

Pythonで学ぶ強化学習 -入門から実践まで- サンプルコード
Apache License 2.0
429 stars 260 forks source link

DP/bellman_equation.pyのV("state_up_up_up_up_up")の値について #34

Closed ieyasu2017 closed 5 years ago

ieyasu2017 commented 5 years ago

指摘事項

疑問点があるので、質問させていただきます。

p. 35のbellman_equation.pyで状態state_up_up_up_up_upに対してVを計算すると、V("state_up_up_up_up_up")=gamma=0.99となります。"state_up_up_up_up_up"はhappy_end状態であり、next_stateは存在しないので、V("state_up_up_up_up_up")=1となるように思うのですが、この考えたかは間違っているのでしょうか?

よろしくお願いします。

指摘箇所

ページ番号: p35-37

実行環境

エラー内容

(例外のメッセージ、ログ、画面ショットなどを添付)

icoxfog417 commented 5 years ago

一回も行動しないでhappe_endになる(=スタート=ゴール)という状態は想定しないプログラムとなっています。state_up_up_up_up_upからup, downいずれかの行動をしてhappe_endに至るため、(R(state_up_up_up_up_up) = 0) + 0.99 * (max_V_on_next_state(state_up_up_up_up_up) = 1) = 0.99となります。

初期位置=ゴールを許容する場合、ご指摘の通り1になります。

ieyasu2017 commented 5 years ago

ご回答ありがとうございます。 state_up_up_up_up_upの状態=happy_endの状態と考えていましたが、この2つの状態は別物で、報酬はhappy_endの状態に与えられるということがわかり、コードの内容が理解できました。 ありがとうございました。