ComeçarComece de graça

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.

Image showing the mathematical formula of the Q-learning update rule.

Este exercício faz parte do curso

Reinforcement Learning com Gymnasium em Python

Ver curso

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ção 0 no estado 0, recebe uma recompensa de 5 e vai para o estado 1.

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