Implementando Monte Carlo de primeira visita
O objetivo dos algoritmos de Monte Carlo é estimar a Q-table para derivar uma política ótima. Neste exercício, você vai implementar o método Monte Carlo de Primeira Visita para estimar a função valor-ação Q e, em seguida, calcular a política ótima para resolver o ambiente customizado que você viu no exercício anterior. Sempre que calcular o retorno, assuma um fator de desconto igual a 1.
Os arrays do numpy Q, returns_sum e returns_count, que armazenam os valores de Q, a soma cumulativa das recompensas e a contagem de visitas para cada par estado-ação, respectivamente, já foram inicializados e pré-carregados para você.
Este exercício faz parte do curso
Reinforcement Learning com Gymnasium em Python
Instruções do exercício
- Defina a condição
ifque deve ser testada no algoritmo Monte Carlo de primeira visita. - Atualize os retornos (
returns_sum), suas contagens (returns_count) e ovisited_states.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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())