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
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())