ComeçarComece de graça

Implementando a regra de atualização do SARSA

SARSA é um algoritmo on-policy em RL que atualiza a função valor-ação com base na ação executada e na ação selecionada no próximo estado. Esse método ajuda a aprender o valor não só do par estado-ação atual, mas também do seguinte, possibilitando aprender políticas que consideram ações futuras. A regra de atualização do SARSA está abaixo, e sua tarefa é implementar uma função que atualize uma Q-table com base nessa regra.

A biblioteca NumPy já foi importada como np.

Image showing the mathematical formula of the SARSA 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 dado.
  • Encontre o valor-Q para o próximo par estado-ação.
  • Atualize o valor-Q do par estado-ação atual usando a fórmula do SARSA.
  • Atualize a Q-table Q, dado que um agente executa a ação 0 no estado 0, recebe uma recompensa de 5, vai para o estado 1 e realiza a ação 1.

Exercício interativo prático

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

def update_q_table(state, action, reward, next_state, next_action):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Get the value of the next state-action pair
    next_value = ____
    # Compute the new value of the current state-action pair
    Q[(state, action)] = ____

alpha = 0.1
gamma  = 0.8
Q = np.array([[10,0],[0,20]], dtype='float32')
# Update the Q-table for the ('state1', 'action1') pair
____
print(Q)
Editar e executar o código