始める無料で始める

first-visit Monte Carlo の実装

Monte Carlo アルゴリズムの目的は、最適方策を導くために Q テーブルを推定することです。この演習では、First-Visit Monte Carlo 法を実装して行動価値関数 Q を推定し、前の演習で扱ったカスタム環境を解くための最適方策を計算します。リターンを計算する際は、割引率を 1 と仮定してください。

各状態–行動ペアに対する Q 値、報酬の累積和、訪問回数をそれぞれ保持する numpy 配列 Qreturns_sumreturns_count は、すでに初期化済みで読み込まれています。

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

Pythonで学ぶGymnasiumによるReinforcement Learning

コースを見る

演習の手順

  • first-visit Monte Carlo アルゴリズムで評価すべき if 条件を定義してください。
  • リターン(returns_sum)、そのカウント(returns_count)、および visited_states を更新してください。

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

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

for i in range(100):
  episode = generate_episode()
  visited_states = set()
  for j, (state, action, reward) in enumerate(episode):
    # Define the first-visit condition
    if ____ not in ____:
      # Update the returns, their counts and the visited states
      returns_sum[state, action] += ____([____ for ____ in ____])
      returns_count[state, action] += ____
      visited_states.____(____)

nonzero_counts = returns_count != 0

Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())
コードを編集して実行