Implementar Monte Carlo de primera visita
El objetivo de los algoritmos de Monte Carlo es estimar la Q-table para derivar una política óptima. En este ejercicio, vas a implementar el método de Monte Carlo de primera visita para estimar la función valor-acción Q y, después, calcular la política óptima para resolver el entorno personalizado que viste en el ejercicio anterior. Al calcular el retorno, supone un factor de descuento igual a 1.
Los arrays de numpy Q, returns_sum y returns_count, que almacenan respectivamente los valores Q, la suma acumulada de recompensas y el número de visitas para cada par estado-acción, ya se han inicializado y cargado por ti.
Este ejercicio forma parte del curso
Reinforcement Learning con Gymnasium en Python
Instrucciones del ejercicio
- Define la condición
ifque debe comprobarse en el algoritmo de Monte Carlo de primera visita. - Actualiza los retornos (
returns_sum), sus contadores (returns_count) y losvisited_states.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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())