SARSAの更新則を実装する
SARSAは、次の状態で実際に選択した行動に基づいて行動価値関数を更新するオンポリシーのアルゴリズムです。この方法により、現在の状態–行動の組だけでなく、その直後の組の価値も学習でき、将来の行動を考慮した方策を学ぶことができます。以下にSARSAの更新則を示します。あなたの課題は、この則に基づいてQテーブルを更新する関数を実装することです。
NumPyライブラリは np としてインポート済みです。

この演習はコースの一部です
Pythonで学ぶGymnasiumによるReinforcement Learning
演習の手順
- 指定された状態–行動の組の現在のQ値を取得します。
- 次の状態–行動の組のQ値を取得します。
- SARSAの式を用いて、現在の状態–行動の組のQ値を更新します。
- エージェントが状態
0で行動0を取り、報酬5を受け取り、状態1に遷移して行動1を行うとき、QテーブルQを更新します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
def update_q_table(state, action, reward, next_state, next_action):
# Get the old value of the current state-action pair
old_value = ____
# Get the value of the next state-action pair
next_value = ____
# Compute the new value of the current state-action pair
Q[(state, action)] = ____
alpha = 0.1
gamma = 0.8
Q = np.array([[10,0],[0,20]], dtype='float32')
# Update the Q-table for the ('state1', 'action1') pair
____
print(Q)