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
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à listarewards_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))