ComeçarComece de graça

Resolvendo o Frozen Lake 8x8 com Q-learning

Neste exercício, você vai aplicar o algoritmo de Q-learning para aprender uma política ótima de navegação no ambiente Frozen Lake 8x8, agora com a condição "slippery" ativada. Esse desafio introduz transições estocásticas, tornando o movimento do agente imprevisível e simulando de forma mais realista cenários do mundo real.

Uma Q-table Q já foi inicializada e carregada para você, junto com a função update_q_table() do exercício anterior e uma lista vazia rewards_per_episode, que armazenará a recompensa total acumulada em cada episódio.

Este exercício faz parte do curso

Reinforcement Learning com Gymnasium em Python

Ver curso

Instruções do exercício

  • Para cada episódio, execute a ação selecionada e observe a recompensa e o próximo estado.
  • Atualize a Q-table.
  • Adicione o total_reward à lista rewards_per_episode.

Exercício interativo prático

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

for episode in range(10000):
    state, info = env.reset()
    total_reward = 0
    terminated = False
    while not terminated:
        action = env.action_space.sample()
        # Execute the action
        next_state, reward, terminated, truncated, info = ____
        # Update the Q-table
        ____
        state = next_state
        total_reward += reward
    # Append the total reward to the rewards list    
    rewards_per_episode.____(____)
print("Average reward per random episode: ", np.mean(rewards_per_episode))
Editar e executar o código