価値反復法の実装
価値反復法は、最適方策を求めるためのRLにおける重要な手法です。各状態の価値関数を収束するまで反復的に改善し、その結果として最適方策が得られます。ここでは、初期化済みの価値関数 V と policy から始めます(どちらも読み込み済みです)。その後、価値関数が収束するまでループで更新し、最終的な方策の挙動を確認します。
get_max_action_and_value(state, V) 関数はあらかじめ読み込まれています。
この演習はコースの一部です
Pythonで学ぶGymnasiumによるReinforcement Learning
演習の手順
- 各状態について、Q値が最大となる行動(
max_action)と、そのときの値(max_q_value)を求めます。 max_actionとmax_q_valueに基づいて、new_V辞書とpolicyを更新します。- すべての状態で
new_vとVの差が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)