Implementare la regola di aggiornamento SARSA
SARSA è un algoritmo on-policy nell'RL che aggiorna la funzione valore-azione in base all'azione effettuata e all'azione selezionata nello stato successivo. Questo metodo aiuta a imparare il valore non solo della coppia stato-azione corrente ma anche di quella successiva, permettendo di apprendere politiche che considerano le azioni future. Di seguito trovi la regola di aggiornamento di SARSA: il tuo compito è implementare una funzione che aggiorni una Q-table seguendo questa regola.
La libreria NumPy è stata importata come np.

Questo esercizio fa parte del corso
Reinforcement Learning con Gymnasium in Python
Istruzioni dell'esercizio
- Recupera il valore Q corrente per la coppia stato-azione indicata.
- Trova il valore Q per la coppia stato-azione successiva.
- Aggiorna il valore Q della coppia stato-azione corrente usando la formula SARSA.
- Aggiorna la Q-table
Q, sapendo che un agente esegue l'azione0nello stato0, riceve una ricompensa di5, passa allo stato1ed esegue l'azione1.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)