Implementera first-visit Monte Carlo
Målet med Monte Carlo-algoritmer är att uppskatta Q-tabellen för att härleda en optimal policy. I den här övningen implementerar du metoden First-Visit Monte Carlo för att uppskatta aktionsvärdefunktionen Q och beräknar sedan den optimala policyn för att lösa den anpassade miljö du såg i föregående övning. Anta en diskonteringsfaktor på 1 när du beräknar avkastningen.
numpy-arrayerna Q, returns_sum och returns_count, som lagrar Q-värdena, den kumulativa belöningssumman respektive antalet besök för varje tillstånds-åtgärdspar, har initierats och förinsatts åt dig.
Den här övningen är en del av kursen
Reinforcement Learning med Gymnasium i Python
Övningsinstruktioner
- Definiera det
if-villkor som ska testas i first-visit Monte Carlo-algoritmen. - Uppdatera avkastningarna (
returns_sum), deras antal (returns_count) ochvisited_states.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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())