始める無料で始める

価値反復法の実装

価値反復法は、最適方策を求めるためのRLにおける重要な手法です。各状態の価値関数を収束するまで反復的に改善し、その結果として最適方策が得られます。ここでは、初期化済みの価値関数 Vpolicy から始めます(どちらも読み込み済みです)。その後、価値関数が収束するまでループで更新し、最終的な方策の挙動を確認します。

get_max_action_and_value(state, V) 関数はあらかじめ読み込まれています。

この演習はコースの一部です

Pythonで学ぶGymnasiumによるReinforcement Learning

コースを見る

演習の手順

  • 各状態について、Q値が最大となる行動(max_action)と、そのときの値(max_q_value)を求めます。
  • max_actionmax_q_value に基づいて、new_V 辞書と policy を更新します。
  • すべての状態で new_vV の差が threshold 未満かどうかを確認し、収束判定を行います。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

threshold = 0.001
while True:
  new_V = {}
  for state in range(num_states-1):
    # Get action with maximum Q-value and its value 
    max_action, max_q_value = ____
    # Update the value function and policy
    new_V[state] = ____
    policy[state] = ____
  # Test if change in state values is negligeable
  if all(abs(____ - ____) < ____ for state in ____):
    break
  V = new_V
render_policy(policy)
コードを編集して実行