ComenzarEmpieza gratis

Implementar la regla de actualización de Q-learning

Q-learning es un algoritmo off-policy en reinforcement learning (RL) que busca la mejor acción a tomar dado el estado actual. A diferencia de SARSA, que considera la siguiente acción realmente tomada, Q-learning actualiza sus valores Q usando la recompensa futura máxima, independientemente de la acción realizada. Esta diferencia permite a Q-learning aprender la política óptima mientras sigue una política exploratoria o incluso aleatoria. Tu tarea es implementar una función que actualice una tabla Q basándose en la regla de Q-learning. La regla de actualización de Q-learning se muestra a continuación; tu objetivo es implementar una función que actualice una Q-table siguiendo esta regla.

La biblioteca NumPy ya se ha importado como np.

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

Este ejercicio forma parte del curso

Reinforcement Learning con Gymnasium en Python

Ver curso

Instrucciones del ejercicio

  • Recupera el valor Q actual para el par estado-acción dado.
  • Determina el valor Q máximo para el siguiente estado entre todas las acciones posibles en actions.
  • Actualiza el valor Q del par estado-acción actual usando la fórmula de Q-learning.
  • Actualiza la Q-table Q, dado que un agente realiza la acción 0 en el estado 0, recibe una recompensa de 5 y pasa al estado 1.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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 y ejecutar código