ComenzarEmpieza gratis

Implementación de Monte Carlo de todas las visitas

El método Monte Carlo de todas las visitas se diferencia de la variante de primera visita en que actualiza los valores cada vez que aparece un par estado-acción, y no solo en el primer encuentro. Aunque este enfoque ofrece una evaluación más completa de la política al usar toda la información disponible de los episodios, también puede introducir más varianza en las estimaciones de valor porque incluye todas las muestras, independientemente de cuándo ocurran en el episodio. Tu tarea es completar la implementación de la función every_visit_mc(), que estima la función valor-acción Q a lo largo de num_episodes episodios.

Los diccionarios returns_sum y returns_count, con pares estado-acción como claves, se han inicializado y precargado para ti junto con la función generate_episode().

Este ejercicio forma parte del curso

Reinforcement Learning con Gymnasium en Python

Ver curso

Instrucciones del ejercicio

  • Genera un episodio usando la función generate_episode().
  • Actualiza los retornos y sus contadores para cada par estado-acción dentro de un episodio.
  • Calcula los valores Q estimados.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

Q = np.zeros((num_states, num_actions))
for i in range(100):
  # Generate an episode
  episode = ____
  # Update the returns and their counts
  for j, (state, action, reward) in ____:
    returns_sum[(state,  action)] += sum(____)
    returns_count[(state,  action)] += ____

# Update the Q-values for visited state-action pairs 
nonzero_counts = ____
Q[nonzero_counts] = ____
    
render_policy(get_policy())
Editar y ejecutar código