始める無料で始める

Expected SARSA を適用する

ここでは、下図のカスタム環境で Expected SARSA アルゴリズムを適用します。目的は、エージェントをグリッド上でできるだけ速くゴールに到達させることです。これまでと同じルールが適用されます。ダイヤに到達すると +10、山を通過すると -2、その他のすべての状態は -1 の報酬を受け取ります。

new_cust_env.png

環境は env としてインポート済みです。

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

Pythonで学ぶGymnasiumによるReinforcement Learning

コースを見る

演習の手順

  • 各状態-行動の組に対して、Qテーブル Q をゼロで初期化します。
  • update_q_table() 関数を使ってQテーブルを更新します。
  • 学習済みのQテーブルから方策を辞書として抽出します。

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

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

# Initialize the Q-table with random values
Q = ____
for i_episode in range(num_episodes):
    state, info = env.reset()    
    done = False    
    while not done: 
        action = env.action_space.sample()               
        next_state, reward, done, truncated, info = env.step(action)
        # Update the Q-table
        ____
        state = next_state
# Derive policy from Q-table        
policy = {state: ____ for state in range(____)}
render_policy(policy)
コードを編集して実行