Implementando a regra de atualização do Q-learning
Q-learning é um algoritmo off-policy em Reinforcement Learning (RL) que busca encontrar a melhor ação a ser tomada dado o estado atual. Diferente do SARSA, que considera a próxima ação realmente executada, o Q-learning atualiza seus valores-Q usando a recompensa futura máxima, independentemente da ação tomada. Essa diferença permite que o Q-learning aprenda a política ótima enquanto segue uma política exploratória ou até aleatória. Sua tarefa é implementar uma função que atualiza uma Q-table com base na regra do Q-learning. A regra de atualização do Q-learning está abaixo, e sua tarefa é implementar uma função que atualiza uma Q-table seguindo essa regra.
A biblioteca NumPy já foi importada como np.

Este exercício faz parte do curso
Reinforcement Learning com Gymnasium em Python
Instruções do exercício
- Recupere o valor-Q atual para o par estado-ação fornecido.
- Determine o valor-Q máximo para o próximo estado entre todas as ações possíveis em
actions. - Atualize o valor-Q para o par estado-ação atual usando a fórmula do Q-learning.
- Atualize a Q-table
Q, considerando que um agente executa a ação0no estado0, recebe uma recompensa de5e vai para o estado1.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
actions = ['action1', 'action2']
def update_q_table(state, action, reward, next_state):
# Get the old value of the current state-action pair
old_value = ____
# Determine the maximum Q-value for the next state
next_max = ____
# Compute the new value of the current state-action pair
Q[state, action] = ____
alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)