ComeçarComece de graça

Implementando Monte Carlo de todas as visitas

O método Monte Carlo de todas as visitas (Every-Visit) difere da variante de primeira visita (First-Visit) por atualizar os valores toda vez que um par estado-ação aparece, e não apenas no primeiro encontro. Embora essa abordagem forneça uma avaliação mais abrangente da política ao usar todas as informações disponíveis dos episódios, ela também pode introduzir mais variância nas estimativas de valor, pois inclui todas as amostras, independentemente de quando ocorrem no episódio. Sua tarefa é concluir a implementação da função every_visit_mc(), que estima a função valor de ação Q ao longo de num_episodes episódios.

Os dicionários returns_sum e returns_count, com pares estado-ação como chaves, foram inicializados e pré-carregados para você, junto com a função generate_episode().

Este exercício faz parte do curso

Reinforcement Learning com Gymnasium em Python

Ver curso

Instruções do exercício

  • Gere um episódio usando a função generate_episode().
  • Atualize os retornos e suas contagens para cada par estado-ação dentro de um episódio.
  • Calcule os valores Q estimados.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 e executar o código