Aan de slagGa gratis aan de slag

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

Cursus bekijken

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 de visited_states bij.

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())
Code bewerken en uitvoeren