始める無料で始める

SARSAの更新則を実装する

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

NumPyライブラリは np としてインポート済みです。

Image showing the mathematical formula of the SARSA update rule.

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

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)
コードを編集して実行