First-visit Monte Carlo implementeren
Het doel van Monte Carlo-algoritmen is om de Q-tabel te schatten om zo een optimale strategie af te leiden. In deze oefening implementeer je de First-Visit Monte Carlo-methode om de actie-waardefunctie Q te schatten en bereken je daarna de optimale strategie om de aangepaste omgeving op te lossen die je in de vorige oefening hebt gezien. Ga bij het berekenen van de return uit van een discontovoet van 1.
De numpy-arrays Q, returns_sum en returns_count, die respectievelijk de Q-waarden, de cumulatieve som van beloningen en het aantal bezoeken per status-actie-paar opslaan, zijn al voor je geïnitialiseerd en ingeladen.
Deze oefening maakt deel uit van de cursus
Reinforcement Learning met Gymnasium in Python
Oefeninstructies
- Definieer de
if-voorwaarde die getest moet worden in het first-visit Monte Carlo-algoritme. - Werk de returns (
returns_sum), hun tellingen (returns_count) en devisited_statesbij.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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())