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.

Este ejercicio forma parte del curso
Reinforcement Learning con Gymnasium en Python
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ón0en el estado0, recibe una recompensa de5y pasa al estado1.
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)