first-visit Monte Carlo の実装
Monte Carlo アルゴリズムの目的は、最適方策を導くために Q テーブルを推定することです。この演習では、First-Visit Monte Carlo 法を実装して行動価値関数 Q を推定し、前の演習で扱ったカスタム環境を解くための最適方策を計算します。リターンを計算する際は、割引率を 1 と仮定してください。
各状態–行動ペアに対する Q 値、報酬の累積和、訪問回数をそれぞれ保持する numpy 配列 Q、returns_sum、returns_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())